Merge pull request #961 from gravitl/bugfix_v0.12.2_valid_mq_ids

added test and changed how strings were generated for make random string
This commit is contained in:
dcarns 2022-03-25 09:11:14 -04:00 committed by GitHub
commit 1239bb3cd7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 33 additions and 10 deletions

View file

@ -572,7 +572,13 @@ func ServerAddrSliceContains(slice []models.ServerAddr, item models.ServerAddr)
// MakeRandomString - generates a random string of len n
func MakeRandomString(n int) string {
const validChars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
result := make([]byte, n)
rand.Reader.Read(result)
if _, err := rand.Reader.Read(result); err != nil {
return ""
}
for i, b := range result {
result[i] = validChars[b%byte(len(validChars))]
}
return string(result)
}

View file

@ -1,15 +1,32 @@
package ncutils
import "testing"
import (
"strings"
"testing"
"github.com/stretchr/testify/assert"
)
func TestMakeRandomString(t *testing.T) {
for testCase := 0; testCase < 100; testCase++ {
for size := 2; size < 2058; size++ {
if length := len(MakeRandomString(size)); length != size {
t.Fatalf("expected random string of size %d, got %d instead", size, length)
}
}
}
for testCase := 0; testCase < 100; testCase++ {
for size := 2; size < 2058; size++ {
if length := len(MakeRandomString(size)); length != size {
t.Fatalf("expected random string of size %d, got %d instead", size, length)
}
}
}
}
func TestMakeRandomStringValid(t *testing.T) {
lengthStr := MakeRandomString(10)
assert.Equal(t, len(lengthStr), 10)
validMqID := MakeRandomString(23)
assert.False(t, strings.Contains(validMqID, "#"))
assert.False(t, strings.Contains(validMqID, "!"))
assert.False(t, strings.Contains(validMqID, "\""))
assert.False(t, strings.Contains(validMqID, "\\"))
assert.False(t, strings.Contains(validMqID, "+"))
assert.False(t, strings.Contains(validMqID, "-"))
assert.False(t, strings.Contains(validMqID, "{"))
assert.False(t, strings.Contains(validMqID, "}"))
}