From b1f7b2984864ef9ce01bbedfc2c2ca228bb7ecf4 Mon Sep 17 00:00:00 2001 From: Evgenii Stratonikov Date: Wed, 1 Mar 2023 17:10:30 +0300 Subject: [PATCH] [TrueCloudLab#22] datagen: Use local randomness source `math/rand.Read` is deprecated. Signed-off-by: Evgenii Stratonikov --- internal/datagen/generator.go | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/internal/datagen/generator.go b/internal/datagen/generator.go index e30841e..ff8a85b 100644 --- a/internal/datagen/generator.go +++ b/internal/datagen/generator.go @@ -22,6 +22,7 @@ type ( Generator struct { vu modules.VU size int + rand *rand.Rand buf []byte offset int } @@ -35,10 +36,6 @@ type ( // TailSize specifies number of extra random bytes in the buffer tail. const TailSize = 1024 -func init() { - rand.Seed(time.Now().UnixNano()) -} - func NewGenerator(vu modules.VU, size int) Generator { if size <= 0 { panic("size should be positive") @@ -46,6 +43,7 @@ func NewGenerator(vu modules.VU, size int) Generator { return Generator{ vu: vu, size: size, + rand: rand.New(rand.NewSource(time.Now().UnixNano())), buf: make([]byte, size+TailSize), } } @@ -66,7 +64,7 @@ func (g *Generator) GenPayload(calcHash bool) GenPayloadResponse { func (g *Generator) nextSlice() []byte { if g.offset >= TailSize { g.offset = 0 - rand.Read(g.buf) // Per docs, err is always nil here + g.rand.Read(g.buf) // Per docs, err is always nil here } result := g.buf[g.offset : g.offset+g.size]