mirror of
https://github.com/golang/go
synced 2024-11-26 03:07:57 -07:00
crypto/rand: improve TestReadLoops
As suggested by Russ Cox, making sure we see all byte values doesn't take long and is a superset of the existing test. Change-Id: Ifc7f18ca4189c89a3d06d0408150a2464ce5e590 Reviewed-on: https://go-review.googlesource.com/c/go/+/608397 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Roland Shoemaker <roland@golang.org> Reviewed-by: Daniel McCarney <daniel@binaryparadox.net> Reviewed-by: Michael Knyszek <mknyszek@google.com>
This commit is contained in:
parent
ef14ba3e68
commit
55b930eb07
@ -49,27 +49,20 @@ func testRead(t *testing.T, Read func([]byte) (int, error)) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestReadLoops(t *testing.T) {
|
func TestReadByteValues(t *testing.T) {
|
||||||
testReadAndReader(t, testReadLoops)
|
testReadAndReader(t, testReadByteValues)
|
||||||
}
|
}
|
||||||
|
|
||||||
func testReadLoops(t *testing.T, Read func([]byte) (int, error)) {
|
func testReadByteValues(t *testing.T, Read func([]byte) (int, error)) {
|
||||||
b := make([]byte, 1)
|
b := make([]byte, 1)
|
||||||
|
v := make(map[byte]bool)
|
||||||
for {
|
for {
|
||||||
n, err := Read(b)
|
n, err := Read(b)
|
||||||
if n != 1 || err != nil {
|
if n != 1 || err != nil {
|
||||||
t.Fatalf("Read(b) = %d, %v", n, err)
|
t.Fatalf("Read(b) = %d, %v", n, err)
|
||||||
}
|
}
|
||||||
if b[0] == 42 {
|
v[b[0]] = true
|
||||||
break
|
if len(v) == 256 {
|
||||||
}
|
|
||||||
}
|
|
||||||
for {
|
|
||||||
n, err := Read(b)
|
|
||||||
if n != 1 || err != nil {
|
|
||||||
t.Fatalf("Read(b) = %d, %v", n, err)
|
|
||||||
}
|
|
||||||
if b[0] == 0 {
|
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user