runner: Fix up how hpke and kyber get their test data runner/hpke's test data can just be embedded directly without worrying about where the files are when the test is run. runner/kyber is trickier because its in a different directory, but give it a command-line flag so a build file can easily redirect it. Change-Id: I05dc76633ddd35ee09e9eb8d9a45364d0dea72b9 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/71447 Reviewed-by: Bob Beck <bbe@google.com> Commit-Queue: David Benjamin <davidben@google.com> Commit-Queue: Bob Beck <bbe@google.com> Auto-Submit: David Benjamin <davidben@google.com>
diff --git a/ssl/test/runner/hpke/hpke_test.go b/ssl/test/runner/hpke/hpke_test.go index 35503be..782dfdd 100644 --- a/ssl/test/runner/hpke/hpke_test.go +++ b/ssl/test/runner/hpke/hpke_test.go
@@ -18,13 +18,11 @@ "bytes" _ "crypto/sha256" _ "crypto/sha512" + _ "embed" "encoding/hex" "encoding/json" "errors" - "flag" "fmt" - "os" - "path/filepath" "testing" ) @@ -32,9 +30,8 @@ exportOnlyAEAD uint16 = 0xffff ) -var ( - testDataDir = flag.String("testdata", "testdata", "The path to the test vector JSON file.") -) +//go:embed testdata/test-vectors.json +var testVectorsJSON []byte // Simple round-trip test for fixed inputs. func TestRoundTrip(t *testing.T) { @@ -98,15 +95,8 @@ // TestVectors checks all relevant test vectors in test-vectors.json. func TestVectors(t *testing.T) { - jsonStr, err := os.ReadFile(filepath.Join(*testDataDir, "test-vectors.json")) - if err != nil { - t.Errorf("error reading test vectors: %s", err) - return - } - var testVectors []HpkeTestVector - err = json.Unmarshal(jsonStr, &testVectors) - if err != nil { + if err := json.Unmarshal(testVectorsJSON, &testVectors); err != nil { t.Errorf("error parsing test vectors: %s", err) return }
diff --git a/ssl/test/runner/kyber/kyber_test.go b/ssl/test/runner/kyber/kyber_test.go index 6ff33e9..fccbaf7 100644 --- a/ssl/test/runner/kyber/kyber_test.go +++ b/ssl/test/runner/kyber/kyber_test.go
@@ -18,14 +18,18 @@ "bufio" "bytes" "encoding/hex" - "golang.org/x/crypto/sha3" + "flag" "os" "strings" "testing" + + "golang.org/x/crypto/sha3" ) +var testVectorsPath = flag.String("test-vectors", "../../../../crypto/kyber/kyber_tests.txt", "The path to the test vectors to use") + func TestVectors(t *testing.T) { - in, err := os.Open("../../../../crypto/kyber/kyber_tests.txt") + in, err := os.Open(*testVectorsPath) if err != nil { t.Error(err) return