github.com/mattn/go@v0.0.0-20171011075504-07f7db3ea99f/src/crypto/rand/rand_linux_test.go (about) 1 // Copyright 2014 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package rand 6 7 import ( 8 "bytes" 9 "testing" 10 ) 11 12 func TestBatched(t *testing.T) { 13 fillBatched := batched(func(p []byte) bool { 14 for i := range p { 15 p[i] = byte(i) 16 } 17 return true 18 }, 5) 19 20 p := make([]byte, 13) 21 if !fillBatched(p) { 22 t.Fatal("batched function returned false") 23 } 24 expected := []byte{0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2} 25 if !bytes.Equal(expected, p) { 26 t.Errorf("incorrect batch result: got %x, want %x", p, expected) 27 } 28 } 29 30 func TestBatchedError(t *testing.T) { 31 b := batched(func(p []byte) bool { return false }, 5) 32 if b(make([]byte, 13)) { 33 t.Fatal("batched function should have returned false") 34 } 35 } 36 37 func TestBatchedEmpty(t *testing.T) { 38 b := batched(func(p []byte) bool { return false }, 5) 39 if !b(make([]byte, 0)) { 40 t.Fatal("empty slice should always return true") 41 } 42 }