From f453b3e9185f7409240a66199b3b1fb69897bc09 Mon Sep 17 00:00:00 2001 From: HFO4 <912394456@qq.com> Date: Sat, 9 Nov 2019 19:47:26 +0800 Subject: [PATCH] Fix: rand seeding error / Test: conf/version and util --- main.go | 4 ++++ pkg/conf/version_test.go | 27 +++++++++++++++++++++++++++ pkg/util/common.go | 2 -- pkg/util/common_test.go | 27 +++++++++++++++++++++++++++ 4 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 pkg/conf/version_test.go create mode 100644 pkg/util/common_test.go diff --git a/main.go b/main.go index 3e05eed..b2bc505 100644 --- a/main.go +++ b/main.go @@ -5,12 +5,16 @@ import ( "cloudreve/pkg/conf" "cloudreve/routers" "github.com/gin-gonic/gin" + "math/rand" + "time" ) func init() { conf.Init("conf/conf.ini") model.Init() + rand.Seed(time.Now().UnixNano()) + // Debug 关闭时,切换为生产模式 if !conf.SystemConfig.Debug { gin.SetMode(gin.ReleaseMode) diff --git a/pkg/conf/version_test.go b/pkg/conf/version_test.go new file mode 100644 index 0000000..db485e7 --- /dev/null +++ b/pkg/conf/version_test.go @@ -0,0 +1,27 @@ +package conf + +import ( + "github.com/stretchr/testify/assert" + "io/ioutil" + "os" + "testing" +) + +func TestWriteVersionLock(t *testing.T) { + asserts := assert.New(t) + + // 清理残余文件 + if _, err := os.Stat("version.lock"); !os.IsNotExist(err) { + err = os.Remove("version.lock") + asserts.NoError(err) + } + + err := WriteVersionLock() + defer func() { err = os.Remove("version.lock") }() + writtenVersion, err := ioutil.ReadFile("version.lock") + + // 写入的版本应与当前版本相同 + asserts.NoError(err) + asserts.Equal(string(writtenVersion), BackendVersion) + +} diff --git a/pkg/util/common.go b/pkg/util/common.go index 5124156..ff4c772 100644 --- a/pkg/util/common.go +++ b/pkg/util/common.go @@ -2,14 +2,12 @@ package util import ( "math/rand" - "time" ) // RandStringRunes 返回随机字符串 func RandStringRunes(n int) string { var letterRunes = []rune("1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ") - rand.Seed(time.Now().UnixNano()) b := make([]rune, n) for i := range b { b[i] = letterRunes[rand.Intn(len(letterRunes))] diff --git a/pkg/util/common_test.go b/pkg/util/common_test.go new file mode 100644 index 0000000..b279fd4 --- /dev/null +++ b/pkg/util/common_test.go @@ -0,0 +1,27 @@ +package util + +import ( + "github.com/stretchr/testify/assert" + "testing" +) + +func TestRandStringRunes(t *testing.T) { + asserts := assert.New(t) + + // 0 长度字符 + randStr := RandStringRunes(0) + asserts.Len(randStr, 0) + + // 16 长度字符 + randStr = RandStringRunes(16) + asserts.Len(randStr, 16) + + // 32 长度字符 + randStr = RandStringRunes(32) + asserts.Len(randStr, 32) + + //相同长度字符 + sameLenStr1 := RandStringRunes(32) + sameLenStr2 := RandStringRunes(32) + asserts.NotEqual(sameLenStr1, sameLenStr2) +}