fixed the same value always generated for 256-divisor chars
This commit is contained in:
parent
1b691aeab2
commit
28e216136a
@ -56,7 +56,7 @@ func NewLenChars(length int, chars []byte) string {
|
|||||||
panic("error reading from random source: " + err.Error())
|
panic("error reading from random source: " + err.Error())
|
||||||
}
|
}
|
||||||
for _, c := range r {
|
for _, c := range r {
|
||||||
if c > maxrb {
|
if maxrb > 0 && c > maxrb {
|
||||||
// Skip this number to avoid modulo bias.
|
// Skip this number to avoid modulo bias.
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
@ -50,4 +50,9 @@ func TestNewLenChars(t *testing.T) {
|
|||||||
}
|
}
|
||||||
// Check that only allowed characters are present
|
// Check that only allowed characters are present
|
||||||
validateChars(t, u, chars)
|
validateChars(t, u, chars)
|
||||||
|
// Check that two generated strings are different
|
||||||
|
u2 := NewLenChars(length, chars)
|
||||||
|
if u == u2 {
|
||||||
|
t.Fatalf("not unique: %q and %q", u, u2)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user