Files
gorush/storage/redis/redis_test.go
Bo-Yi Wu c2136fffc7 chore(storage): storage performance issues (#500)
* chore(storage): storage performance issues

1. close storage connection before shutdown the service
2. update windows image

https://github.com/appleboy/gorush/issues/393

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2020-04-23 15:39:24 +08:00

75 lines
1.4 KiB
Go

package redis
import (
"sync"
"testing"
c "github.com/appleboy/gorush/config"
"github.com/stretchr/testify/assert"
)
func TestRedisServerError(t *testing.T) {
config, _ := c.LoadConf("")
config.Stat.Redis.Addr = "redis:6370"
redis := New(config)
err := redis.Init()
assert.Error(t, err)
}
func TestRedisEngine(t *testing.T) {
var val int64
config, _ := c.LoadConf("")
config.Stat.Redis.Addr = "redis:6379"
redis := New(config)
err := redis.Init()
assert.Nil(t, err)
redis.Reset()
redis.AddTotalCount(10)
val = redis.GetTotalCount()
assert.Equal(t, int64(10), val)
redis.AddTotalCount(10)
val = redis.GetTotalCount()
assert.Equal(t, int64(20), val)
redis.AddIosSuccess(20)
val = redis.GetIosSuccess()
assert.Equal(t, int64(20), val)
redis.AddIosError(30)
val = redis.GetIosError()
assert.Equal(t, int64(30), val)
redis.AddAndroidSuccess(40)
val = redis.GetAndroidSuccess()
assert.Equal(t, int64(40), val)
redis.AddAndroidError(50)
val = redis.GetAndroidError()
assert.Equal(t, int64(50), val)
// test reset db
redis.Reset()
val = redis.GetAndroidError()
assert.Equal(t, int64(0), val)
// test concurrency issues
var wg sync.WaitGroup
for i := 0; i < 10; i++ {
wg.Add(1)
go func() {
redis.AddTotalCount(1)
wg.Done()
}()
}
wg.Wait()
val = redis.GetTotalCount()
assert.Equal(t, int64(10), val)
assert.NoError(t, redis.Close())
}