diff options
Diffstat (limited to 'webrtc/modules/audio_processing/test/audio_processing_unittest.cc')
-rw-r--r-- | webrtc/modules/audio_processing/test/audio_processing_unittest.cc | 45 |
1 files changed, 34 insertions, 11 deletions
diff --git a/webrtc/modules/audio_processing/test/audio_processing_unittest.cc b/webrtc/modules/audio_processing/test/audio_processing_unittest.cc index eff791d129..b6b94f0fce 100644 --- a/webrtc/modules/audio_processing/test/audio_processing_unittest.cc +++ b/webrtc/modules/audio_processing/test/audio_processing_unittest.cc @@ -388,7 +388,8 @@ class ApmTest : public ::testing::Test { int AnalyzeReverseStreamChooser(Format format); void ProcessDebugDump(const std::string& in_filename, const std::string& out_filename, - Format format); + Format format, + int max_size_bytes); void VerifyDebugDumpTest(Format format); const std::string output_path_; @@ -1711,7 +1712,8 @@ TEST_F(ApmTest, SplittingFilter) { #ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP void ApmTest::ProcessDebugDump(const std::string& in_filename, const std::string& out_filename, - Format format) { + Format format, + int max_size_bytes) { FILE* in_file = fopen(in_filename.c_str(), "rb"); ASSERT_TRUE(in_file != NULL); audioproc::Event event_msg; @@ -1739,7 +1741,8 @@ void ApmTest::ProcessDebugDump(const std::string& in_filename, if (first_init) { // StartDebugRecording() writes an additional init message. Don't start // recording until after the first init to avoid the extra message. - EXPECT_NOERR(apm_->StartDebugRecording(out_filename.c_str())); + EXPECT_NOERR( + apm_->StartDebugRecording(out_filename.c_str(), max_size_bytes)); first_init = false; } @@ -1812,34 +1815,54 @@ void ApmTest::VerifyDebugDumpTest(Format format) { test::OutputPath(), std::string("ref") + format_string + "_aecdump"); const std::string out_filename = test::TempFilename( test::OutputPath(), std::string("out") + format_string + "_aecdump"); + const std::string limited_filename = test::TempFilename( + test::OutputPath(), std::string("limited") + format_string + "_aecdump"); + const size_t logging_limit_bytes = 100000; + // We expect at least this many bytes in the created logfile. + const size_t logging_expected_bytes = 95000; EnableAllComponents(); - ProcessDebugDump(in_filename, ref_filename, format); - ProcessDebugDump(ref_filename, out_filename, format); + ProcessDebugDump(in_filename, ref_filename, format, -1); + ProcessDebugDump(ref_filename, out_filename, format, -1); + ProcessDebugDump(ref_filename, limited_filename, format, logging_limit_bytes); FILE* ref_file = fopen(ref_filename.c_str(), "rb"); FILE* out_file = fopen(out_filename.c_str(), "rb"); + FILE* limited_file = fopen(limited_filename.c_str(), "rb"); ASSERT_TRUE(ref_file != NULL); ASSERT_TRUE(out_file != NULL); + ASSERT_TRUE(limited_file != NULL); rtc::scoped_ptr<uint8_t[]> ref_bytes; rtc::scoped_ptr<uint8_t[]> out_bytes; + rtc::scoped_ptr<uint8_t[]> limited_bytes; size_t ref_size = ReadMessageBytesFromFile(ref_file, &ref_bytes); size_t out_size = ReadMessageBytesFromFile(out_file, &out_bytes); + size_t limited_size = ReadMessageBytesFromFile(limited_file, &limited_bytes); size_t bytes_read = 0; + size_t bytes_read_limited = 0; while (ref_size > 0 && out_size > 0) { bytes_read += ref_size; + bytes_read_limited += limited_size; EXPECT_EQ(ref_size, out_size); + EXPECT_GE(ref_size, limited_size); EXPECT_EQ(0, memcmp(ref_bytes.get(), out_bytes.get(), ref_size)); + EXPECT_EQ(0, memcmp(ref_bytes.get(), limited_bytes.get(), limited_size)); ref_size = ReadMessageBytesFromFile(ref_file, &ref_bytes); out_size = ReadMessageBytesFromFile(out_file, &out_bytes); + limited_size = ReadMessageBytesFromFile(limited_file, &limited_bytes); } EXPECT_GT(bytes_read, 0u); + EXPECT_GT(bytes_read_limited, logging_expected_bytes); + EXPECT_LE(bytes_read_limited, logging_limit_bytes); EXPECT_NE(0, feof(ref_file)); EXPECT_NE(0, feof(out_file)); + EXPECT_NE(0, feof(limited_file)); ASSERT_EQ(0, fclose(ref_file)); ASSERT_EQ(0, fclose(out_file)); + ASSERT_EQ(0, fclose(limited_file)); remove(ref_filename.c_str()); remove(out_filename.c_str()); + remove(limited_filename.c_str()); } TEST_F(ApmTest, VerifyDebugDumpInt) { @@ -1856,13 +1879,13 @@ TEST_F(ApmTest, DebugDump) { const std::string filename = test::TempFilename(test::OutputPath(), "debug_aec"); EXPECT_EQ(apm_->kNullPointerError, - apm_->StartDebugRecording(static_cast<const char*>(NULL))); + apm_->StartDebugRecording(static_cast<const char*>(NULL), -1)); #ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP // Stopping without having started should be OK. EXPECT_EQ(apm_->kNoError, apm_->StopDebugRecording()); - EXPECT_EQ(apm_->kNoError, apm_->StartDebugRecording(filename.c_str())); + EXPECT_EQ(apm_->kNoError, apm_->StartDebugRecording(filename.c_str(), -1)); EXPECT_EQ(apm_->kNoError, apm_->ProcessStream(frame_)); EXPECT_EQ(apm_->kNoError, apm_->AnalyzeReverseStream(revframe_)); EXPECT_EQ(apm_->kNoError, apm_->StopDebugRecording()); @@ -1876,7 +1899,7 @@ TEST_F(ApmTest, DebugDump) { ASSERT_EQ(0, remove(filename.c_str())); #else EXPECT_EQ(apm_->kUnsupportedFunctionError, - apm_->StartDebugRecording(filename.c_str())); + apm_->StartDebugRecording(filename.c_str(), -1)); EXPECT_EQ(apm_->kUnsupportedFunctionError, apm_->StopDebugRecording()); // Verify the file has NOT been written. @@ -1887,7 +1910,7 @@ TEST_F(ApmTest, DebugDump) { // TODO(andrew): expand test to verify output. TEST_F(ApmTest, DebugDumpFromFileHandle) { FILE* fid = NULL; - EXPECT_EQ(apm_->kNullPointerError, apm_->StartDebugRecording(fid)); + EXPECT_EQ(apm_->kNullPointerError, apm_->StartDebugRecording(fid, -1)); const std::string filename = test::TempFilename(test::OutputPath(), "debug_aec"); fid = fopen(filename.c_str(), "w"); @@ -1897,7 +1920,7 @@ TEST_F(ApmTest, DebugDumpFromFileHandle) { // Stopping without having started should be OK. EXPECT_EQ(apm_->kNoError, apm_->StopDebugRecording()); - EXPECT_EQ(apm_->kNoError, apm_->StartDebugRecording(fid)); + EXPECT_EQ(apm_->kNoError, apm_->StartDebugRecording(fid, -1)); EXPECT_EQ(apm_->kNoError, apm_->AnalyzeReverseStream(revframe_)); EXPECT_EQ(apm_->kNoError, apm_->ProcessStream(frame_)); EXPECT_EQ(apm_->kNoError, apm_->StopDebugRecording()); @@ -1911,7 +1934,7 @@ TEST_F(ApmTest, DebugDumpFromFileHandle) { ASSERT_EQ(0, remove(filename.c_str())); #else EXPECT_EQ(apm_->kUnsupportedFunctionError, - apm_->StartDebugRecording(fid)); + apm_->StartDebugRecording(fid, -1)); EXPECT_EQ(apm_->kUnsupportedFunctionError, apm_->StopDebugRecording()); ASSERT_EQ(0, fclose(fid)); |