func BenchmarkUnixConnection(b *testing.B) { assert := audit.NewTestingAssertion(b, true) conn, restore := connectDatabase(assert, redis.UnixConnection("", 0)) defer restore() for i := 0; i < b.N; i++ { result, err := conn.Do("ping") assert.Nil(err) assertEqualString(assert, result, 0, "+PONG") } }
func TestUnixSocketConnection(t *testing.T) { assert := audit.NewTestingAssertion(t, true) conn, restore := connectDatabase(assert, redis.UnixConnection("", 0)) defer restore() result, err := conn.Do("echo", "Hello, World!") assert.Nil(err) assertEqualString(assert, result, 0, "Hello, World!") result, err = conn.Do("ping") assert.Nil(err) assertEqualString(assert, result, 0, "+PONG") }
func TestOptions(t *testing.T) { assert := audit.NewTestingAssertion(t, true) db, err := redis.Open(redis.UnixConnection("", 0), redis.PoolSize(5)) assert.Nil(err) defer db.Close() options := db.Options() assert.Equal(options.Address, "/tmp/redis.sock") assert.Equal(options.Network, "unix") assert.Equal(options.Timeout, 30*time.Second) assert.Equal(options.Index, 0) assert.Equal(options.Password, "") assert.Equal(options.PoolSize, 5) assert.Equal(options.Logging, false) assert.Equal(options.Monitoring, false) }
func TestConcurrency(t *testing.T) { assert := audit.NewTestingAssertion(t, true) db, err := redis.Open(redis.UnixConnection("", 0), redis.PoolSize(5)) assert.Nil(err) defer db.Close() for i := 0; i < 500; i++ { go func() { conn, err := db.Connection() assert.Nil(err) defer conn.Return() result, err := conn.Do("ping") assert.Nil(err) assertEqualString(assert, result, 0, "+PONG") time.Sleep(10 * time.Millisecond) }() } }