From 9b1288c8ecd615d6875218cce5c5f80d2ad33438 Mon Sep 17 00:00:00 2001 From: Alessio Bazzica Date: Mon, 25 Mar 2019 09:56:30 +0100 Subject: [PATCH] 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 Commit-Queue: Alessio Bazzica Cr-Commit-Position: refs/heads/master@{#27260} --- .../utility/pffft_wrapper_unittest.cc | 45 ++++++++++++++----- 1 file changed, 35 insertions(+), 10 deletions(-) diff --git a/modules/audio_processing/utility/pffft_wrapper_unittest.cc b/modules/audio_processing/utility/pffft_wrapper_unittest.cc index 8ec2208f98..70c5ce52f2 100644 --- a/modules/audio_processing/utility/pffft_wrapper_unittest.cc +++ b/modules/audio_processing/utility/pffft_wrapper_unittest.cc @@ -122,17 +122,42 @@ TEST(PffftTest, CreateWrapperWithValidSize) { } #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 {}; + +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.