From c2cc5598f5666fc67c9737c8c82804256b38d026 Mon Sep 17 00:00:00 2001
From: Alex Converse <aconverse@google.com>
Date: Thu, 27 Mar 2014 14:58:43 -0700
Subject: [PATCH] Automatically count test vectors and make the tables const.

Change-Id: I742b0f26b7d735e75c3653a3e52bd4f4fc198d3d
---
 test/external_frame_buffer_test.cc | 4 +++-
 test/test_vector_test.cc           | 8 ++++++--
 test/test_vectors.cc               | 8 ++++++--
 test/test_vectors.h                | 9 ++++-----
 4 files changed, 19 insertions(+), 10 deletions(-)

diff --git a/test/external_frame_buffer_test.cc b/test/external_frame_buffer_test.cc
index 6e8ab24226..54c79e9034 100644
--- a/test/external_frame_buffer_test.cc
+++ b/test/external_frame_buffer_test.cc
@@ -462,5 +462,7 @@ TEST_F(ExternalFrameBufferTest, SetAfterDecode) {
 }
 
 VP9_INSTANTIATE_TEST_CASE(ExternalFrameBufferMD5Test,
-                          ::testing::ValuesIn(libvpx_test::kVP9TestVectors));
+                          ::testing::ValuesIn(libvpx_test::kVP9TestVectors,
+                                              libvpx_test::kVP9TestVectors +
+                                              libvpx_test::kNumVP9TestVectors));
 }  // namespace
diff --git a/test/test_vector_test.cc b/test/test_vector_test.cc
index 53b7636b63..9ba18daef8 100644
--- a/test/test_vector_test.cc
+++ b/test/test_vector_test.cc
@@ -89,8 +89,12 @@ TEST_P(TestVectorTest, MD5Match) {
 }
 
 VP8_INSTANTIATE_TEST_CASE(TestVectorTest,
-                          ::testing::ValuesIn(libvpx_test::kVP8TestVectors));
+                          ::testing::ValuesIn(libvpx_test::kVP8TestVectors,
+                                              libvpx_test::kVP8TestVectors +
+                                              libvpx_test::kNumVP8TestVectors));
 VP9_INSTANTIATE_TEST_CASE(TestVectorTest,
-                          ::testing::ValuesIn(libvpx_test::kVP9TestVectors));
+                          ::testing::ValuesIn(libvpx_test::kVP9TestVectors,
+                                              libvpx_test::kVP9TestVectors +
+                                              libvpx_test::kNumVP9TestVectors));
 
 }  // namespace
diff --git a/test/test_vectors.cc b/test/test_vectors.cc
index c7a0c71fcb..175151eaff 100644
--- a/test/test_vectors.cc
+++ b/test/test_vectors.cc
@@ -12,8 +12,10 @@
 
 namespace libvpx_test {
 
+#define NELEMENTS(x) static_cast<int>(sizeof(x) / sizeof(x[0]))
+
 #if CONFIG_VP8_DECODER
-const char *kVP8TestVectors[kNumVP8TestVectors] = {
+const char *const kVP8TestVectors[] = {
   "vp80-00-comprehensive-001.ivf",
   "vp80-00-comprehensive-002.ivf", "vp80-00-comprehensive-003.ivf",
   "vp80-00-comprehensive-004.ivf", "vp80-00-comprehensive-005.ivf",
@@ -47,9 +49,10 @@ const char *kVP8TestVectors[kNumVP8TestVectors] = {
   "vp80-05-sharpness-1440.ivf", "vp80-05-sharpness-1443.ivf",
   "vp80-06-smallsize.ivf"
 };
+const int kNumVP8TestVectors = NELEMENTS(kVP8TestVectors);
 #endif  // CONFIG_VP8_DECODER
 #if CONFIG_VP9_DECODER
-const char *kVP9TestVectors[kNumVP9TestVectors] = {
+const char *const kVP9TestVectors[] = {
   "vp90-2-00-quantizer-00.webm", "vp90-2-00-quantizer-01.webm",
   "vp90-2-00-quantizer-02.webm", "vp90-2-00-quantizer-03.webm",
   "vp90-2-00-quantizer-04.webm", "vp90-2-00-quantizer-05.webm",
@@ -163,6 +166,7 @@ const char *kVP9TestVectors[kNumVP9TestVectors] = {
   "vp90-2-12-droppable_2.ivf", "vp90-2-12-droppable_3.ivf",
   "vp91-2-04-yv444.webm"
 };
+const int kNumVP9TestVectors = NELEMENTS(kVP9TestVectors);
 #endif  // CONFIG_VP9_DECODER
 
 }  // namespace libvpx_test
diff --git a/test/test_vectors.h b/test/test_vectors.h
index de961deea4..8e1aabb326 100644
--- a/test/test_vectors.h
+++ b/test/test_vectors.h
@@ -16,14 +16,13 @@
 namespace libvpx_test {
 
 #if CONFIG_VP8_DECODER
-const int kNumVP8TestVectors = 62;
-extern const char *kVP8TestVectors[kNumVP8TestVectors];
+extern const int kNumVP8TestVectors;
+extern const char *const kVP8TestVectors[];
 #endif
 
 #if CONFIG_VP9_DECODER
-const int kNumVP9TestVectors = 223;
-
-extern const char *kVP9TestVectors[kNumVP9TestVectors];
+extern const int kNumVP9TestVectors;
+extern const char *const kVP9TestVectors[];
 #endif  // CONFIG_VP9_DECODER
 
 }  // namespace libvpx_test
-- 
GitLab