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