mirror of
https://github.com/gravitl/netmaker.git
synced 2024-09-20 23:36:18 +08:00
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:
commit
1239bb3cd7
|
@ -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)
|
||||
}
|
||||
|
|
|
@ -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, "}"))
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue