Add unittest to function util

Signed-off-by: dragondriver <jiquan.long@zilliz.com>
pull/4973/head^2
dragondriver 2021-03-31 18:22:17 +08:00 committed by yefu.chen
parent c10b36f188
commit 6796c7bfe7
2 changed files with 108 additions and 0 deletions

View File

@ -0,0 +1,43 @@
package funcutil
import (
"encoding/json"
"strconv"
"testing"
"github.com/stretchr/testify/assert"
)
func TestCheckPortAvailable(t *testing.T) {
num := 10
for i := 0; i < num; i++ {
port := GetAvailablePort()
assert.Equal(t, CheckPortAvailable(port), true)
}
}
func TestParseIndexParamsMap(t *testing.T) {
num := 10
keys := make([]string, 0)
values := make([]string, 0)
params := make(map[string]string)
for i := 0; i < num; i++ {
keys = append(keys, "key"+strconv.Itoa(i))
values = append(values, "value"+strconv.Itoa(i))
params[keys[i]] = values[i]
}
paramsBytes, err := json.Marshal(params)
assert.Equal(t, err, nil)
paramsStr := string(paramsBytes)
parsedParams, err := ParseIndexParamsMap(paramsStr)
assert.Equal(t, err, nil)
assert.Equal(t, parsedParams, params)
invalidStr := "invalid string"
_, err = ParseIndexParamsMap(invalidStr)
assert.NotEqual(t, err, nil)
}

View File

@ -0,0 +1,65 @@
package retry
import (
"errors"
"testing"
"time"
"github.com/stretchr/testify/assert"
)
func TestImpl(t *testing.T) {
attempts := 10
sleep := time.Millisecond * 1
maxSleepTime := time.Millisecond * 16
var err error
naiveF := func() error {
return nil
}
err = Impl(attempts, sleep, naiveF, maxSleepTime)
assert.Equal(t, err, nil)
errorF := func() error {
return errors.New("errorF")
}
err = Impl(attempts, sleep, errorF, maxSleepTime)
assert.NotEqual(t, err, nil)
begin := 0
stop := 2
interruptF := func() error {
if begin >= stop {
return NoRetryError(errors.New("interrupt here"))
}
begin++
return errors.New("interruptF")
}
err = Impl(attempts, sleep, interruptF, maxSleepTime)
assert.NotEqual(t, err, nil)
begin = 0
stop = attempts / 2
untilSucceedF := func() error {
if begin >= stop {
return nil
}
begin++
return errors.New("untilSucceedF")
}
err = Impl(attempts, sleep, untilSucceedF, maxSleepTime)
assert.Equal(t, err, nil)
begin = 0
stop = attempts * 2
noRetryF := func() error {
if begin >= stop {
return nil
}
begin++
return errors.New("noRetryF")
}
err = Impl(attempts, sleep, noRetryF, maxSleepTime)
assert.NotEqual(t, err, nil)
}