From bbfccfd9e0bae82a2b542dea6b7ab09c3e65608f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Per=20=C3=85hgren?= Date: Wed, 21 Feb 2018 00:24:05 +0100 Subject: [PATCH] Added unittest to the AEC3 BlockProcessor class that tests longer calls MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: webrtc:8671 Change-Id: I64c416af5b0269e7bbe59702199b30b6b20b6807 Reviewed-on: https://webrtc-review.googlesource.com/55861 Reviewed-by: Gustaf Ullberg Commit-Queue: Per Ã…hgren Cr-Commit-Position: refs/heads/master@{#22136} --- .../aec3/block_processor_unittest.cc | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/modules/audio_processing/aec3/block_processor_unittest.cc b/modules/audio_processing/aec3/block_processor_unittest.cc index 29b249b3b6..7baf93f842 100644 --- a/modules/audio_processing/aec3/block_processor_unittest.cc +++ b/modules/audio_processing/aec3/block_processor_unittest.cc @@ -35,15 +35,17 @@ using testing::_; // Verifies that the basic BlockProcessor functionality works and that the API // methods are callable. -void RunBasicSetupAndApiCallTest(int sample_rate_hz) { +void RunBasicSetupAndApiCallTest(int sample_rate_hz, int num_iterations) { std::unique_ptr block_processor( BlockProcessor::Create(EchoCanceller3Config(), sample_rate_hz)); std::vector> block(NumBandsForRate(sample_rate_hz), - std::vector(kBlockSize, 0.f)); + std::vector(kBlockSize, 1000.f)); - block_processor->BufferRender(block); - block_processor->ProcessCapture(false, false, &block); - block_processor->UpdateEchoLeakageStatus(false); + for (int k = 0; k < num_iterations; ++k) { + block_processor->BufferRender(block); + block_processor->ProcessCapture(false, false, &block); + block_processor->UpdateEchoLeakageStatus(false); + } } #if RTC_DCHECK_IS_ON && GTEST_HAS_DEATH_TEST && !defined(WEBRTC_ANDROID) @@ -193,10 +195,14 @@ TEST(BlockProcessor, DISABLED_SubmoduleIntegration) { TEST(BlockProcessor, BasicSetupAndApiCalls) { for (auto rate : {8000, 16000, 32000, 48000}) { SCOPED_TRACE(ProduceDebugText(rate)); - RunBasicSetupAndApiCallTest(rate); + RunBasicSetupAndApiCallTest(rate, 1); } } +TEST(BlockProcessor, TestLongerCall) { + RunBasicSetupAndApiCallTest(16000, 20 * kNumBlocksPerSecond); +} + #if RTC_DCHECK_IS_ON && GTEST_HAS_DEATH_TEST && !defined(WEBRTC_ANDROID) // TODO(gustaf): Re-enable the test once the issue with memory leaks during // DEATH tests on test bots has been fixed.