diff --git a/arangodb/arangodb_test.go b/arangodb/arangodb_test.go index 9f25b201..9ce6ae67 100644 --- a/arangodb/arangodb_test.go +++ b/arangodb/arangodb_test.go @@ -11,7 +11,7 @@ var testStore = New(Config{ Reset: true, }) -func Test_ARANGODB_Set(t *testing.T) { +func Test_ArangoDB_Set(t *testing.T) { var ( key = "john" val = []byte("doe") @@ -21,7 +21,7 @@ func Test_ARANGODB_Set(t *testing.T) { require.NoError(t, err) } -func Test_ARANGODB_Upsert(t *testing.T) { +func Test_ArangoDB_Upsert(t *testing.T) { var ( key = "john" val = []byte("doe") @@ -34,7 +34,7 @@ func Test_ARANGODB_Upsert(t *testing.T) { require.NoError(t, err) } -func Test_ARANGODB_Get(t *testing.T) { +func Test_ArangoDB_Get(t *testing.T) { var ( key = "john" val = []byte("doe") @@ -48,7 +48,7 @@ func Test_ARANGODB_Get(t *testing.T) { require.Equal(t, val, result) } -func Test_ARANGODB_Set_Expiration(t *testing.T) { +func Test_ArangoDB_Set_Expiration(t *testing.T) { var ( key = "john" val = []byte("doe") @@ -61,7 +61,7 @@ func Test_ARANGODB_Set_Expiration(t *testing.T) { time.Sleep(1100 * time.Millisecond) } -func Test_ARANGODB_Get_Expired(t *testing.T) { +func Test_ArangoDB_Get_Expired(t *testing.T) { key := "john" result, err := testStore.Get(key) @@ -69,13 +69,13 @@ func Test_ARANGODB_Get_Expired(t *testing.T) { require.Zero(t, len(result)) } -func Test_ARANGODB_Get_NotExist(t *testing.T) { +func Test_ArangoDB_Get_NotExist(t *testing.T) { result, err := testStore.Get("notexist") require.NoError(t, err) require.Zero(t, len(result)) } -func Test_ARANGODB_Delete(t *testing.T) { +func Test_ArangoDB_Delete(t *testing.T) { var ( key = "john" val = []byte("doe") @@ -92,7 +92,7 @@ func Test_ARANGODB_Delete(t *testing.T) { require.Zero(t, len(result)) } -func Test_ARANGODB_Reset(t *testing.T) { +func Test_ArangoDB_Reset(t *testing.T) { val := []byte("doe") err := testStore.Set("john1", val, 0) @@ -113,7 +113,7 @@ func Test_ARANGODB_Reset(t *testing.T) { require.Zero(t, len(result)) } -func Test_ARANGODB_Non_UTF8(t *testing.T) { +func Test_ArangoDB_Non_UTF8(t *testing.T) { val := []byte("0xF5") err := testStore.Set("0xF6", val, 0) @@ -124,10 +124,50 @@ func Test_ARANGODB_Non_UTF8(t *testing.T) { require.Equal(t, val, result) } -func Test_ARANGODB_Close(t *testing.T) { +func Test_ArangoDB_Close(t *testing.T) { require.Nil(t, testStore.Close()) } -func Test_ARANGODB_Conn(t *testing.T) { +func Test_ArangoDB_Conn(t *testing.T) { require.True(t, testStore.Conn() != nil) } + +func Benchmark_ArangoDB_Set(b *testing.B) { + b.ReportAllocs() + b.ResetTimer() + + var err error + for i := 0; i < b.N; i++ { + err = testStore.Set("john", []byte("doe"), 0) + } + + require.NoError(b, err) +} + +func Benchmark_ArangoDB_Get(b *testing.B) { + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + _, err = testStore.Get("john") + } + + require.NoError(b, err) +} + +func Benchmark_ArangoDB_Delete(b *testing.B) { + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + err = testStore.Delete("john") + } + + require.NoError(b, err) +} diff --git a/azureblob/azureblob_test.go b/azureblob/azureblob_test.go index b1f92a0e..9138cb6c 100644 --- a/azureblob/azureblob_test.go +++ b/azureblob/azureblob_test.go @@ -135,3 +135,47 @@ func Test_AzureBlob_Close(t *testing.T) { testStore := newStore() require.Nil(t, testStore.Close()) } + +func Benchmark_AzureBlob_Set(b *testing.B) { + testStore := newStore() + + b.ReportAllocs() + b.ResetTimer() + + var err error + for i := 0; i < b.N; i++ { + err = testStore.Set("john", []byte("doe"), 0) + } + + require.NoError(b, err) +} + +func Benchmark_AzureBlob_Get(b *testing.B) { + testStore := newStore() + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + _, err = testStore.Get("john") + } + + require.NoError(b, err) +} + +func Benchmark_AzureBlob_Delete(b *testing.B) { + testStore := newStore() + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + err = testStore.Delete("john") + } + + require.NoError(b, err) +} diff --git a/badger/badger_test.go b/badger/badger_test.go index 267ab4e5..8d06861f 100644 --- a/badger/badger_test.go +++ b/badger/badger_test.go @@ -118,3 +118,43 @@ func Test_Badger_Close(t *testing.T) { func Test_Badger_Conn(t *testing.T) { require.True(t, testStore.Conn() != nil) } + +func Benchmark_Badger_Set(b *testing.B) { + b.ReportAllocs() + b.ResetTimer() + + var err error + for i := 0; i < b.N; i++ { + err = testStore.Set("john", []byte("doe"), 0) + } + + require.NoError(b, err) +} + +func Benchmark_Badger_Get(b *testing.B) { + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + _, err = testStore.Get("john") + } + + require.NoError(b, err) +} + +func Benchmark_Badger_Delete(b *testing.B) { + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + err = testStore.Delete("john") + } + + require.NoError(b, err) +} diff --git a/bbolt/bbolt_test.go b/bbolt/bbolt_test.go index 3a776d95..8a66027a 100644 --- a/bbolt/bbolt_test.go +++ b/bbolt/bbolt_test.go @@ -96,3 +96,43 @@ func Test_Bbolt_Close(t *testing.T) { func Test_Bbolt_Conn(t *testing.T) { require.True(t, testStore.Conn() != nil) } + +func Benchmark_Bbolt_Set(b *testing.B) { + b.ReportAllocs() + b.ResetTimer() + + var err error + for i := 0; i < b.N; i++ { + err = testStore.Set("john", []byte("doe"), 0) + } + + require.NoError(b, err) +} + +func Benchmark_Bbolt_Get(b *testing.B) { + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + _, err = testStore.Get("john") + } + + require.NoError(b, err) +} + +func Benchmark_Bbolt_Delete(b *testing.B) { + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + err = testStore.Delete("john") + } + + require.NoError(b, err) +} diff --git a/coherence/coherence_test.go b/coherence/coherence_test.go index 666aba81..aa8a24b0 100644 --- a/coherence/coherence_test.go +++ b/coherence/coherence_test.go @@ -17,6 +17,18 @@ var ( value2 = []byte("value2") ) +// newTestStore returns a new Coherence Store and ensures it is reset. +func newTestStore(t testing.TB, config ...Config) (*Storage, error) { + t.Helper() + + testStore, err := New(config...) + utils.AssertEqual(t, err, nil) + + err = testStore.Reset() + + return testStore, err +} + func Test_Coherence_Set_And_Get(t *testing.T) { var val []byte @@ -196,12 +208,50 @@ func Test_Coherence_With_Scope(t *testing.T) { utils.AssertEqual(t, testStore2.Close(), nil) } -// newTestStore returns a new Coherence Store and ensures it is reset. -func newTestStore(t *testing.T, config ...Config) (*Storage, error) { - testStore, err := New(config...) - utils.AssertEqual(t, err, nil) +func Benchmark_Coherence_Set(b *testing.B) { + testStore, err := newTestStore(b) + utils.AssertEqual(b, nil, err) - err = testStore.Reset() + b.ReportAllocs() + b.ResetTimer() - return testStore, err + for i := 0; i < b.N; i++ { + err = testStore.Set("john", []byte("doe"), 0) + } + + utils.AssertEqual(b, nil, err) +} + +func Benchmark_Coherence_Get(b *testing.B) { + testStore, err := newTestStore(b) + utils.AssertEqual(b, nil, err) + + err = testStore.Set("john", []byte("doe"), 0) + utils.AssertEqual(b, nil, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + _, err = testStore.Get("john") + } + + utils.AssertEqual(b, nil, err) +} + +func Benchmark_Coherence_Delete(b *testing.B) { + testStore, err := newTestStore(b) + utils.AssertEqual(b, nil, err) + + err = testStore.Set("john", []byte("doe"), 0) + utils.AssertEqual(b, nil, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + err = testStore.Delete("john") + } + + utils.AssertEqual(b, nil, err) } diff --git a/couchbase/couchbase_test.go b/couchbase/couchbase_test.go index 40d02842..3877ce1c 100644 --- a/couchbase/couchbase_test.go +++ b/couchbase/couchbase_test.go @@ -127,3 +127,64 @@ func TestGetConn_ReturnsNotNill(t *testing.T) { }) require.True(t, testStorage.Conn() != nil) } + +func Benchmark_Couchbase_Set(b *testing.B) { + testStore := New(Config{ + Username: "admin", + Password: "123456", + Host: "127.0.0.1:8091", + Bucket: "fiber_storage", + }) + + b.ReportAllocs() + b.ResetTimer() + + var err error + for i := 0; i < b.N; i++ { + err = testStore.Set("john", []byte("doe"), 0) + } + + require.NoError(b, err) +} + +func Benchmark_Couchbase_Get(b *testing.B) { + testStore := New(Config{ + Username: "admin", + Password: "123456", + Host: "127.0.0.1:8091", + Bucket: "fiber_storage", + }) + + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + _, err = testStore.Get("john") + } + + require.NoError(b, err) +} + +func Benchmark_Couchbase_Delete(b *testing.B) { + testStore := New(Config{ + Username: "admin", + Password: "123456", + Host: "127.0.0.1:8091", + Bucket: "fiber_storage", + }) + + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + err = testStore.Delete("john") + } + + require.NoError(b, err) +} diff --git a/etcd/etcd_test.go b/etcd/etcd_test.go index d747dd30..1ca5b5e0 100644 --- a/etcd/etcd_test.go +++ b/etcd/etcd_test.go @@ -108,3 +108,55 @@ func TestGetConn_ReturnsNotNill(t *testing.T) { require.True(t, testStorage.Conn() != nil) } + +func Benchmark_Etcd_Set(b *testing.B) { + testStore := New(Config{ + Endpoints: []string{"localhost:2379"}, + }) + + b.ReportAllocs() + b.ResetTimer() + + var err error + for i := 0; i < b.N; i++ { + err = testStore.Set("john", []byte("doe"), 0) + } + + require.NoError(b, err) +} + +func Benchmark_Etcd_Get(b *testing.B) { + testStore := New(Config{ + Endpoints: []string{"localhost:2379"}, + }) + + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + _, err = testStore.Get("john") + } + + require.NoError(b, err) +} + +func Benchmark_Etcd_Delete(b *testing.B) { + testStore := New(Config{ + Endpoints: []string{"localhost:2379"}, + }) + + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + err = testStore.Delete("john") + } + + require.NoError(b, err) +} diff --git a/memcache/memcache_test.go b/memcache/memcache_test.go index 98b88e96..08035b1f 100644 --- a/memcache/memcache_test.go +++ b/memcache/memcache_test.go @@ -118,3 +118,43 @@ func Test_Memcache_Close(t *testing.T) { func Test_Memcache_Conn(t *testing.T) { require.True(t, testStore.Conn() != nil) } + +func Benchmark_Memcache_Set(b *testing.B) { + b.ReportAllocs() + b.ResetTimer() + + var err error + for i := 0; i < b.N; i++ { + err = testStore.Set("john", []byte("doe"), 0) + } + + require.NoError(b, err) +} + +func Benchmark_Memcache_Get(b *testing.B) { + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + _, err = testStore.Get("john") + } + + require.NoError(b, err) +} + +func Benchmark_Memcache_Delete(b *testing.B) { + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + err = testStore.Delete("john") + } + + require.NoError(b, err) +} diff --git a/memory/memory_test.go b/memory/memory_test.go index 64e59124..bcb100e1 100644 --- a/memory/memory_test.go +++ b/memory/memory_test.go @@ -147,3 +147,43 @@ func Benchmark_Storage_Memory(b *testing.B) { } }) } + +func Benchmark_Memory_Set(b *testing.B) { + b.ReportAllocs() + b.ResetTimer() + + var err error + for i := 0; i < b.N; i++ { + err = testStore.Set("john", []byte("doe"), 0) + } + + require.NoError(b, err) +} + +func Benchmark_Memory_Get(b *testing.B) { + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + _, err = testStore.Get("john") + } + + require.NoError(b, err) +} + +func Benchmark_Memory_Delete(b *testing.B) { + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + err = testStore.Delete("john") + } + + require.NoError(b, err) +} diff --git a/minio/minio_test.go b/minio/minio_test.go index 07fb0724..20848c06 100644 --- a/minio/minio_test.go +++ b/minio/minio_test.go @@ -182,3 +182,43 @@ func Test_Reset(t *testing.T) { func Test_Close(t *testing.T) { require.NoError(t, testStore.Close()) } + +func Benchmark_Minio_Set(b *testing.B) { + b.ReportAllocs() + b.ResetTimer() + + var err error + for i := 0; i < b.N; i++ { + err = testStore.Set("john", []byte("doe"), 0) + } + + require.NoError(b, err) +} + +func Benchmark_Minio_Get(b *testing.B) { + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + _, err = testStore.Get("john") + } + + require.NoError(b, err) +} + +func Benchmark_Minio_Delete(b *testing.B) { + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + err = testStore.Delete("john") + } + + require.NoError(b, err) +} diff --git a/mongodb/mongodb_test.go b/mongodb/mongodb_test.go index 0bfb28c2..5b7027e6 100644 --- a/mongodb/mongodb_test.go +++ b/mongodb/mongodb_test.go @@ -120,3 +120,43 @@ func Test_MongoDB_Close(t *testing.T) { func Test_MongoDB_Conn(t *testing.T) { require.True(t, testStore.Conn() != nil) } + +func Benchmark_MongoDB_Set(b *testing.B) { + b.ReportAllocs() + b.ResetTimer() + + var err error + for i := 0; i < b.N; i++ { + err = testStore.Set("john", []byte("doe"), 0) + } + + require.NoError(b, err) +} + +func Benchmark_MongoDB_Get(b *testing.B) { + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + _, err = testStore.Get("john") + } + + require.NoError(b, err) +} + +func Benchmark_MongoDB_Delete(b *testing.B) { + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + err = testStore.Delete("john") + } + + require.NoError(b, err) +} diff --git a/mssql/mssql_test.go b/mssql/mssql_test.go index b1c86588..6cdf1783 100644 --- a/mssql/mssql_test.go +++ b/mssql/mssql_test.go @@ -173,3 +173,43 @@ func Test_MSSQL_Close(t *testing.T) { func Test_MSSQL_Conn(t *testing.T) { require.True(t, testStore.Conn() != nil) } + +func Benchmark_MSSQL_Set(b *testing.B) { + b.ReportAllocs() + b.ResetTimer() + + var err error + for i := 0; i < b.N; i++ { + err = testStore.Set("john", []byte("doe"), 0) + } + + require.NoError(b, err) +} + +func Benchmark_MSSQL_Get(b *testing.B) { + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + _, err = testStore.Get("john") + } + + require.NoError(b, err) +} + +func Benchmark_MSSQL_Delete(b *testing.B) { + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + err = testStore.Delete("john") + } + + require.NoError(b, err) +} diff --git a/mysql/mysql_test.go b/mysql/mysql_test.go index 003ec9f1..57932fb5 100644 --- a/mysql/mysql_test.go +++ b/mysql/mysql_test.go @@ -189,3 +189,43 @@ func Test_MYSQL_Close(t *testing.T) { func Test_MYSQL_Conn(t *testing.T) { require.True(t, testStore.Conn() != nil) } + +func Benchmark_MYSQL_Set(b *testing.B) { + b.ReportAllocs() + b.ResetTimer() + + var err error + for i := 0; i < b.N; i++ { + err = testStore.Set("john", []byte("doe"), 0) + } + + require.NoError(b, err) +} + +func Benchmark_MYSQL_Get(b *testing.B) { + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + _, err = testStore.Get("john") + } + + require.NoError(b, err) +} + +func Benchmark_MYSQL_Delete(b *testing.B) { + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + err = testStore.Delete("john") + } + + require.NoError(b, err) +} diff --git a/pebble/pebble_test.go b/pebble/pebble_test.go index 5397d050..d17ac708 100644 --- a/pebble/pebble_test.go +++ b/pebble/pebble_test.go @@ -105,3 +105,43 @@ func Test_Pebble_Close(t *testing.T) { func Test_Pebble_Conn(t *testing.T) { require.True(t, testStore.Conn() != nil) } + +func Benchmark_Pebble_Set(b *testing.B) { + b.ReportAllocs() + b.ResetTimer() + + var err error + for i := 0; i < b.N; i++ { + err = testStore.Set("john", []byte("doe"), 0) + } + + require.NoError(b, err) +} + +func Benchmark_Pebble_Get(b *testing.B) { + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + _, err = testStore.Get("john") + } + + require.NoError(b, err) +} + +func Benchmark_Pebble_Delete(b *testing.B) { + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + err = testStore.Delete("john") + } + + require.NoError(b, err) +} diff --git a/postgres/postgres_test.go b/postgres/postgres_test.go index 3ad85a1c..6057e721 100644 --- a/postgres/postgres_test.go +++ b/postgres/postgres_test.go @@ -170,3 +170,43 @@ func Test_Postgres_Conn(t *testing.T) { func Test_Postgres_Close(t *testing.T) { require.Nil(t, testStore.Close()) } + +func Benchmark_Postgres_Set(b *testing.B) { + b.ReportAllocs() + b.ResetTimer() + + var err error + for i := 0; i < b.N; i++ { + err = testStore.Set("john", []byte("doe"), 0) + } + + require.NoError(b, err) +} + +func Benchmark_Postgres_Get(b *testing.B) { + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + _, err = testStore.Get("john") + } + + require.NoError(b, err) +} + +func Benchmark_Postgres_Delete(b *testing.B) { + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + err = testStore.Delete("john") + } + + require.NoError(b, err) +} diff --git a/redis/redis_test.go b/redis/redis_test.go index 0c2d2488..9ecbb92d 100644 --- a/redis/redis_test.go +++ b/redis/redis_test.go @@ -414,3 +414,43 @@ func Test_Redis_Cluster(t *testing.T) { require.Nil(t, testStoreUniversal.Close()) } + +func Benchmark_Redis_Set(b *testing.B) { + b.ReportAllocs() + b.ResetTimer() + + var err error + for i := 0; i < b.N; i++ { + err = testStore.Set("john", []byte("doe"), 0) + } + + require.NoError(b, err) +} + +func Benchmark_Redis_Get(b *testing.B) { + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + _, err = testStore.Get("john") + } + + require.NoError(b, err) +} + +func Benchmark_Redis_Delete(b *testing.B) { + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + err = testStore.Delete("john") + } + + require.NoError(b, err) +} diff --git a/ristretto/ristretto_test.go b/ristretto/ristretto_test.go index 94df2917..b1a6fc08 100644 --- a/ristretto/ristretto_test.go +++ b/ristretto/ristretto_test.go @@ -152,3 +152,43 @@ func Test_Ristretto_Close(t *testing.T) { func Test_Ristretto_Conn(t *testing.T) { require.True(t, testStore.Conn() != nil) } + +func Benchmark_Ristretto_Set(b *testing.B) { + b.ReportAllocs() + b.ResetTimer() + + var err error + for i := 0; i < b.N; i++ { + err = testStore.Set("john", []byte("doe"), 0) + } + + require.NoError(b, err) +} + +func Benchmark_Ristretto_Get(b *testing.B) { + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + _, err = testStore.Get("john") + } + + require.NoError(b, err) +} + +func Benchmark_Ristretto_Delete(b *testing.B) { + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + err = testStore.Delete("john") + } + + require.NoError(b, err) +} diff --git a/rueidis/rueidis_test.go b/rueidis/rueidis_test.go index 933424cb..b78cd936 100644 --- a/rueidis/rueidis_test.go +++ b/rueidis/rueidis_test.go @@ -237,3 +237,43 @@ func Test_Rueidis_Cluster(t *testing.T) { require.NoError(t, err) require.Nil(t, store.Close()) } + +func Benchmark_Rueidis_Set(b *testing.B) { + b.ReportAllocs() + b.ResetTimer() + + var err error + for i := 0; i < b.N; i++ { + err = testStore.Set("john", []byte("doe"), 0) + } + + require.NoError(b, err) +} + +func Benchmark_Rueidis_Get(b *testing.B) { + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + _, err = testStore.Get("john") + } + + require.NoError(b, err) +} + +func Benchmark_Rueidis_Delete(b *testing.B) { + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + err = testStore.Delete("john") + } + + require.NoError(b, err) +} diff --git a/s3/s3_test.go b/s3/s3_test.go index 3a3e49e5..e8b0977c 100644 --- a/s3/s3_test.go +++ b/s3/s3_test.go @@ -94,3 +94,43 @@ func Test_S3_Close(t *testing.T) { func Test_S3_Conn(t *testing.T) { require.True(t, testStore.Conn() != nil) } + +func Benchmark_S3_Set(b *testing.B) { + b.ReportAllocs() + b.ResetTimer() + + var err error + for i := 0; i < b.N; i++ { + err = testStore.Set("john", []byte("doe"), 0) + } + + require.NoError(b, err) +} + +func Benchmark_S3_Get(b *testing.B) { + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + _, err = testStore.Get("john") + } + + require.NoError(b, err) +} + +func Benchmark_S3_Delete(b *testing.B) { + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + err = testStore.Delete("john") + } + + require.NoError(b, err) +} diff --git a/sqlite3/sqlite3_test.go b/sqlite3/sqlite3_test.go index 08efce1e..6d790628 100644 --- a/sqlite3/sqlite3_test.go +++ b/sqlite3/sqlite3_test.go @@ -155,3 +155,43 @@ func Test_SQLite3_Close(t *testing.T) { func Test_SQLite3_Conn(t *testing.T) { require.True(t, testStore.Conn() != nil) } + +func Benchmark_SQLite3_Set(b *testing.B) { + b.ReportAllocs() + b.ResetTimer() + + var err error + for i := 0; i < b.N; i++ { + err = testStore.Set("john", []byte("doe"), 0) + } + + require.NoError(b, err) +} + +func Benchmark_SQLite3_Get(b *testing.B) { + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + _, err = testStore.Get("john") + } + + require.NoError(b, err) +} + +func Benchmark_SQLite3_Delete(b *testing.B) { + err := testStore.Set("john", []byte("doe"), 0) + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + err = testStore.Delete("john") + } + + require.NoError(b, err) +}