PFFFT APM wrapper: unit test fix.

This CL replaces death tests placed inside a loop with a parametric test.
A better option is to mock Pffft::IsValidFftSize and test CreatePffftWrapper
when the former returns false. However, that would require to define an
interface for the PFFFT wrapper.

Bug: webrtc:10426
Change-Id: I3c49f1b271c8bf0099a4846014bef021676ef3e0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128862
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27260}
diff --git a/modules/audio_processing/utility/pffft_wrapper_unittest.cc b/modules/audio_processing/utility/pffft_wrapper_unittest.cc
index 8ec2208..70c5ce5 100644
--- a/modules/audio_processing/utility/pffft_wrapper_unittest.cc
+++ b/modules/audio_processing/utility/pffft_wrapper_unittest.cc
@@ -122,17 +122,42 @@
 }
 
 #if !defined(NDEBUG) && GTEST_HAS_DEATH_TEST && !defined(WEBRTC_ANDROID)
-TEST(PffftTest, DoNotCreateWrapperWithInvalidSize) {
-  for (size_t fft_size = 0; fft_size < kMaxValidSizeCheck; ++fft_size) {
-    SCOPED_TRACE(fft_size);
-    if (!Pffft::IsValidFftSize(fft_size, Pffft::FftType::kReal)) {
-      EXPECT_DEATH(CreatePffftWrapper(fft_size, Pffft::FftType::kReal), "");
-    }
-    if (!Pffft::IsValidFftSize(fft_size, Pffft::FftType::kComplex)) {
-      EXPECT_DEATH(CreatePffftWrapper(fft_size, Pffft::FftType::kComplex), "");
-    }
-  }
+
+class PffftInvalidSizeTest : public testing::Test,
+                             public ::testing::WithParamInterface<size_t> {};
+
+TEST_P(PffftInvalidSizeTest, DoNotCreateRealWrapper) {
+  size_t fft_size = GetParam();
+  ASSERT_FALSE(Pffft::IsValidFftSize(fft_size, Pffft::FftType::kReal));
+  EXPECT_DEATH(CreatePffftWrapper(fft_size, Pffft::FftType::kReal), "");
 }
+
+TEST_P(PffftInvalidSizeTest, DoNotCreateComplexWrapper) {
+  size_t fft_size = GetParam();
+  ASSERT_FALSE(Pffft::IsValidFftSize(fft_size, Pffft::FftType::kComplex));
+  EXPECT_DEATH(CreatePffftWrapper(fft_size, Pffft::FftType::kComplex), "");
+}
+
+INSTANTIATE_TEST_SUITE_P(PffftTest,
+                         PffftInvalidSizeTest,
+                         ::testing::Values(17,
+                                           33,
+                                           65,
+                                           97,
+                                           129,
+                                           161,
+                                           193,
+                                           257,
+                                           289,
+                                           385,
+                                           481,
+                                           513,
+                                           577,
+                                           641,
+                                           801,
+                                           865,
+                                           1025));
+
 #endif
 
 // TODO(https://crbug.com/webrtc/9577): Enable once SIMD is always enabled.