]> Cypherpunks repositories - gostls13.git/commitdiff
crypto/internal/fips140deps: fix test for running in FIPS snapshot
authorRuss Cox <rsc@golang.org>
Wed, 20 Nov 2024 14:51:27 +0000 (09:51 -0500)
committerRuss Cox <rsc@golang.org>
Thu, 21 Nov 2024 10:40:09 +0000 (10:40 +0000)
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 <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Roland Shoemaker <roland@golang.org>
Reviewed-by: Filippo Valsorda <filippo@golang.org>
src/crypto/internal/fips140deps/fipsdeps_test.go

index 488cc1caa58cccf096010a236bbb8c7d2d7671f4..2c3bc8184e71bc3fdb5414581f78ffbc74e505e7 100644 (file)
@@ -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
                }