Deduplicate some code to compute test vector paths

Change-Id: Ieeb734ff1f17bb2b6bc8161d50c3137c98d62e32
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/85510
Commit-Queue: Rudolf Polzer <rpolzer@google.com>
Reviewed-by: Rudolf Polzer <rpolzer@google.com>
Auto-Submit: David Benjamin <davidben@google.com>
diff --git a/crypto/cipher/aead_test.cc b/crypto/cipher/aead_test.cc
index 183c494..d8012cc 100644
--- a/crypto/cipher/aead_test.cc
+++ b/crypto/cipher/aead_test.cc
@@ -78,6 +78,10 @@
   const EVP_AEAD *(*func)(void);
   const char *test_vectors;
   uint32_t flags;
+
+  std::string TestVectorPath() const {
+    return std::string("crypto/cipher/test/") + test_vectors;
+  }
 };
 
 static const struct KnownAEAD kAEADs[] = {
@@ -189,9 +193,7 @@
 //   CT: 5294265a60
 //   TAG: 1d45758621762e061368e68868e2f929
 TEST_P(PerAEADTest, TestVector) {
-  std::string test_vectors = "crypto/cipher/test/";
-  test_vectors += GetParam().test_vectors;
-  FileTestGTest(test_vectors.c_str(), [&](FileTest *t) {
+  FileTestGTest(GetParam().TestVectorPath().c_str(), [&](FileTest *t) {
     std::vector<uint8_t> key, nonce, in, ad, ct, tag;
     ASSERT_TRUE(t->GetBytes(&key, "KEY"));
     ASSERT_TRUE(t->GetBytes(&nonce, "NONCE"));
@@ -291,9 +293,7 @@
     return;
   }
 
-  const std::string test_vectors =
-      "crypto/cipher/test/" + std::string(aead_config.test_vectors);
-  FileTestGTest(test_vectors.c_str(), [&](FileTest *t) {
+  FileTestGTest(GetParam().TestVectorPath().c_str(), [&](FileTest *t) {
     if (t->HasAttribute("NO_SEAL") ||  //
         t->HasAttribute("FAILS") ||    //
         (aead_config.flags & kNondeterministic)) {
@@ -337,10 +337,8 @@
 }
 
 TEST_P(PerAEADTest, TestVectorScatterGather) {
-  std::string test_vectors = "crypto/cipher/test/";
   const KnownAEAD &aead_config = GetParam();
-  test_vectors += aead_config.test_vectors;
-  FileTestGTest(test_vectors.c_str(), [&](FileTest *t) {
+  FileTestGTest(aead_config.TestVectorPath().c_str(), [&](FileTest *t) {
     std::vector<uint8_t> key, nonce, in, ad, ct, tag;
     ASSERT_TRUE(t->GetBytes(&key, "KEY"));
     ASSERT_TRUE(t->GetBytes(&nonce, "NONCE"));
@@ -592,9 +590,7 @@
     return;
   }
 
-  std::string test_vectors = "crypto/cipher/test/";
-  test_vectors += aead_config.test_vectors;
-  FileTestGTest(test_vectors.c_str(), [&](FileTest *t) {
+  FileTestGTest(aead_config.TestVectorPath().c_str(), [&](FileTest *t) {
     std::vector<uint8_t> key, nonce, in, ad, ct, tag;
     ASSERT_TRUE(t->GetBytes(&key, "KEY"));
     ASSERT_TRUE(t->GetBytes(&nonce, "NONCE"));
@@ -665,9 +661,7 @@
     return;
   }
 
-  std::string test_vectors = "crypto/cipher/test/";
-  test_vectors += aead_config.test_vectors;
-  FileTestGTest(test_vectors.c_str(), [&](FileTest *t) {
+  FileTestGTest(aead_config.TestVectorPath().c_str(), [&](FileTest *t) {
     std::vector<uint8_t> key, nonce, in, ad, ct, tag;
     ASSERT_TRUE(t->GetBytes(&key, "KEY"));
     ASSERT_TRUE(t->GetBytes(&nonce, "NONCE"));
@@ -789,9 +783,7 @@
     return;
   }
 
-  std::string test_vectors = "crypto/cipher/test/";
-  test_vectors += aead_config.test_vectors;
-  FileTestGTest(test_vectors.c_str(), [&](FileTest *t) {
+  FileTestGTest(aead_config.TestVectorPath().c_str(), [&](FileTest *t) {
     std::vector<uint8_t> key, nonce, in, ad, ct, tag;
     ASSERT_TRUE(t->GetBytes(&key, "KEY"));
     ASSERT_TRUE(t->GetBytes(&nonce, "NONCE"));