From 28f4e14ebe281d8e46cba430bfd123ce21fcd0cc Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Wed, 20 Nov 2024 09:51:27 -0500 Subject: [PATCH] crypto/internal/fips140deps: fix test for running in FIPS snapshot In a FIPS snapshot, the import paths have a snapshot version number. Remove that version in the test before proceeding with the usual checks. Change-Id: I15c9d11dcac6d33330b334b8e5056c215bffa75c Reviewed-on: https://go-review.googlesource.com/c/go/+/629977 LUCI-TryBot-Result: Go LUCI Reviewed-by: Dmitri Shuralyov Reviewed-by: Roland Shoemaker Reviewed-by: Filippo Valsorda --- src/crypto/internal/fips140deps/fipsdeps_test.go | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/crypto/internal/fips140deps/fipsdeps_test.go b/src/crypto/internal/fips140deps/fipsdeps_test.go index 488cc1caa58..2c3bc8184e7 100644 --- a/src/crypto/internal/fips140deps/fipsdeps_test.go +++ b/src/crypto/internal/fips140deps/fipsdeps_test.go @@ -40,9 +40,19 @@ func TestImports(t *testing.T) { {{range .XTestImports -}} {{$path}} {{.}} {{end -}}`, "crypto/internal/fips140/...") - out, err := cmd.CombinedOutput() + bout, err := cmd.CombinedOutput() if err != nil { - t.Fatalf("go list: %v\n%s", err, out) + t.Fatalf("go list: %v\n%s", err, bout) + } + out := string(bout) + + // In a snapshot, all the paths are crypto/internal/fips140/v1.2.3/... + // Determine the version number and remove it for the test. + _, v, _ := strings.Cut(out, "crypto/internal/fips140/") + v, _, _ = strings.Cut(v, "/") + v, _, _ = strings.Cut(v, " ") + if strings.HasPrefix(v, "v") && strings.Count(v, ".") == 2 { + out = strings.ReplaceAll(out, "crypto/internal/fips140/"+v, "crypto/internal/fips140") } allPackages := make(map[string]bool) @@ -50,7 +60,7 @@ func TestImports(t *testing.T) { // importCheck is the set of packages that import crypto/internal/fips140/check. importCheck := make(map[string]bool) - for _, line := range strings.Split(string(out), "\n") { + for _, line := range strings.Split(out, "\n") { if line == "" { continue }