From 1a3e73cb84fd7ccb4f061f95507357cc63b6eb0e Mon Sep 17 00:00:00 2001 From: James Hewitt Date: Sun, 27 Aug 2023 11:06:16 +0100 Subject: [PATCH] Handle rand deprecations in go 1.20 Signed-off-by: James Hewitt --- .github/workflows/build.yml | 2 +- dockerfiles/lint.Dockerfile | 2 +- registry/api/v2/routes_test.go | 2 -- registry/proxy/proxyblobstore_test.go | 5 +++-- registry/storage/driver/s3-aws/s3_test.go | 2 +- registry/storage/driver/testsuites/testsuites.go | 3 ++- registry/storage/filereader_test.go | 3 ++- testutil/tarfile.go | 3 ++- 8 files changed, 12 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a5bfbf78..d967624c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -27,7 +27,7 @@ jobs: matrix: go: - 1.20.7 - - 1.21 + - 1.21.0 steps: - name: Checkout diff --git a/dockerfiles/lint.Dockerfile b/dockerfiles/lint.Dockerfile index 613f3801..54656e69 100644 --- a/dockerfiles/lint.Dockerfile +++ b/dockerfiles/lint.Dockerfile @@ -2,7 +2,7 @@ ARG GO_VERSION=1.20.7 ARG ALPINE_VERSION=3.18 -ARG GOLANGCI_LINT_VERSION=v1.52 +ARG GOLANGCI_LINT_VERSION=v1.54.2 ARG BUILDTAGS="include_gcs" FROM golangci/golangci-lint:${GOLANGCI_LINT_VERSION}-alpine AS golangci-lint diff --git a/registry/api/v2/routes_test.go b/registry/api/v2/routes_test.go index bdd0ef48..b2a0c830 100644 --- a/registry/api/v2/routes_test.go +++ b/registry/api/v2/routes_test.go @@ -9,7 +9,6 @@ import ( "reflect" "strings" "testing" - "time" "github.com/gorilla/mux" ) @@ -221,7 +220,6 @@ func TestRouterWithBadCharacters(t *testing.T) { // with random UTF8 characters not in the 128 bit ASCII range. // These are not valid characters for the router and we expect // 404s on every test. - rand.Seed(time.Now().UTC().UnixNano()) tests := make([]routeTestCase, 1000) for idx := range tests { tests[idx] = routeTestCase{ diff --git a/registry/proxy/proxyblobstore_test.go b/registry/proxy/proxyblobstore_test.go index 1531ba38..d90d2384 100644 --- a/registry/proxy/proxyblobstore_test.go +++ b/registry/proxy/proxyblobstore_test.go @@ -21,6 +21,7 @@ import ( ) var sbsMu sync.Mutex +var randSource rand.Rand type statsBlobStore struct { stats map[string]int @@ -189,13 +190,13 @@ func makeTestEnv(t *testing.T, name string) *testEnv { func makeBlob(size int) []byte { blob := make([]byte, size) for i := 0; i < size; i++ { - blob[i] = byte('A' + rand.Int()%48) + blob[i] = byte('A' + randSource.Int()%48) } return blob } func init() { - rand.Seed(42) + randSource = *rand.New(rand.NewSource(42)) } func populate(t *testing.T, te *testEnv, blobCount, size, numUnique int) { diff --git a/registry/storage/driver/s3-aws/s3_test.go b/registry/storage/driver/s3-aws/s3_test.go index 0330eafc..060ed2d8 100644 --- a/registry/storage/driver/s3-aws/s3_test.go +++ b/registry/storage/driver/s3-aws/s3_test.go @@ -2,9 +2,9 @@ package s3 import ( "bytes" + "crypto/rand" "errors" "fmt" - "math/rand" "os" "path" "reflect" diff --git a/registry/storage/driver/testsuites/testsuites.go b/registry/storage/driver/testsuites/testsuites.go index 8e54be32..2ee46f5d 100644 --- a/registry/storage/driver/testsuites/testsuites.go +++ b/registry/storage/driver/testsuites/testsuites.go @@ -3,6 +3,7 @@ package testsuites import ( "bytes" "context" + crand "crypto/rand" "crypto/sha256" "io" "math/rand" @@ -1232,7 +1233,7 @@ func randomFilename(length int64) string { var randomBytes = make([]byte, 128<<20) func init() { - _, _ = rand.Read(randomBytes) // always returns len(randomBytes) and nil error + _, _ = crand.Read(randomBytes) // always returns len(randomBytes) and nil error } func randomContents(length int64) []byte { diff --git a/registry/storage/filereader_test.go b/registry/storage/filereader_test.go index 51c88c36..3f05582e 100644 --- a/registry/storage/filereader_test.go +++ b/registry/storage/filereader_test.go @@ -2,6 +2,7 @@ package storage import ( "bytes" + crand "crypto/rand" "io" mrand "math/rand" "testing" @@ -14,7 +15,7 @@ import ( func TestSimpleRead(t *testing.T) { ctx := context.Background() content := make([]byte, 1<<20) - n, err := mrand.Read(content) + n, err := crand.Read(content) if err != nil { t.Fatalf("unexpected error building random data: %v", err) } diff --git a/testutil/tarfile.go b/testutil/tarfile.go index e0782b73..2b30a24d 100644 --- a/testutil/tarfile.go +++ b/testutil/tarfile.go @@ -3,6 +3,7 @@ package testutil import ( "archive/tar" "bytes" + crand "crypto/rand" "fmt" "io" mrand "math/rand" @@ -45,7 +46,7 @@ func CreateRandomTarFile() (rs io.ReadSeeker, dgst digest.Digest, err error) { randomData := make([]byte, fileSize) // Fill up the buffer with some random data. - n, err := mrand.Read(randomData) + n, err := crand.Read(randomData) if n != len(randomData) { return nil, "", fmt.Errorf("short read creating random reader: %v bytes != %v bytes", n, len(randomData))