Add debug logging in WavWriterTest.LargeFile
Also CHECK in OutputPathWithRandomDirectory. This function is used in tests that need a unique folder to avoid interaction with other tests that may run in parallel. Continuing with a non-unique folder if the creation fails, is likely to cause surprising errors later on. Bug: webrtc:379973428 Change-Id: I6a30ef9034be8132e2362eff5e46e3b99b30acd2 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/368542 Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> Commit-Queue: Björn Terelius <terelius@webrtc.org> Reviewed-by: Per Åhgren <peah@webrtc.org> Cr-Commit-Position: refs/heads/main@{#43431}
This commit is contained in:
parent
2a69ddbe9e
commit
c181432772
@ -373,6 +373,7 @@ if (rtc_include_tests && !build_with_chromium) {
|
||||
":fir_filter_factory",
|
||||
":sinc_resampler",
|
||||
"../rtc_base:checks",
|
||||
"../rtc_base:logging",
|
||||
"../rtc_base:macromagic",
|
||||
"../rtc_base:rtc_base_tests_utils",
|
||||
"../rtc_base:stringutils",
|
||||
|
||||
@ -17,6 +17,7 @@
|
||||
#include <limits>
|
||||
|
||||
#include "common_audio/wav_header.h"
|
||||
#include "rtc_base/logging.h"
|
||||
#include "test/gtest.h"
|
||||
#include "test/testsupport/file_utils.h"
|
||||
|
||||
@ -31,6 +32,18 @@
|
||||
|
||||
namespace webrtc {
|
||||
|
||||
namespace {
|
||||
const char* SampleFormatToStr(WavFile::SampleFormat format) {
|
||||
switch (format) {
|
||||
case WavFile::SampleFormat::kInt16:
|
||||
return "int16";
|
||||
case WavFile::SampleFormat::kFloat:
|
||||
return "float";
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
}
|
||||
} // namespace
|
||||
|
||||
static const float kSamples[] = {0.0, 10.0, 4e4, -1e9};
|
||||
|
||||
// Write a tiny WAV file with the C++ interface and verify the result.
|
||||
@ -125,6 +138,9 @@ TEST(WavWriterTest, LargeFile) {
|
||||
std::sin(t * kToneHz * 2 * M_PI);
|
||||
samples[i] = std::pow(std::sin(t * 2 * 2 * M_PI), 10) * x;
|
||||
samples[i + 1] = std::pow(std::cos(t * 2 * 2 * M_PI), 10) * x;
|
||||
// See https://issues.webrtc.org/issues/379973428
|
||||
RTC_CHECK(isfinite(samples[i]));
|
||||
RTC_CHECK(isfinite(samples[i + 1]));
|
||||
}
|
||||
{
|
||||
WavWriter w(outfile, kSampleRate, kNumChannels, wav_format);
|
||||
@ -161,6 +177,14 @@ TEST(WavWriterTest, LargeFile) {
|
||||
EXPECT_EQ(kNumSamples, r.ReadSamples(kNumSamples, read_samples));
|
||||
for (size_t i = 0; i < kNumSamples; ++i) {
|
||||
EXPECT_NEAR(samples[i], read_samples[i], 1);
|
||||
if (!isfinite(samples[i])) {
|
||||
// See https://issues.webrtc.org/issues/379973428
|
||||
RTC_LOG(LS_ERROR)
|
||||
<< "samples[" << i << "] is not finite. "
|
||||
<< "wav_format=" << SampleFormatToStr(wav_format)
|
||||
<< ", write_format=" << SampleFormatToStr(write_format)
|
||||
<< ", read_format=" << SampleFormatToStr(read_format);
|
||||
}
|
||||
}
|
||||
EXPECT_EQ(0u, r.ReadSamples(kNumSamples, read_samples));
|
||||
} else {
|
||||
@ -168,6 +192,14 @@ TEST(WavWriterTest, LargeFile) {
|
||||
EXPECT_EQ(kNumSamples, r.ReadSamples(kNumSamples, read_samples));
|
||||
for (size_t i = 0; i < kNumSamples; ++i) {
|
||||
EXPECT_NEAR(samples[i], static_cast<float>(read_samples[i]), 1);
|
||||
if (!isfinite(samples[i])) {
|
||||
// See https://issues.webrtc.org/issues/379973428
|
||||
RTC_LOG(LS_ERROR)
|
||||
<< "samples[" << i << "] is not finite. "
|
||||
<< "wav_format=" << SampleFormatToStr(wav_format)
|
||||
<< ", write_format=" << SampleFormatToStr(write_format)
|
||||
<< ", read_format=" << SampleFormatToStr(read_format);
|
||||
}
|
||||
}
|
||||
EXPECT_EQ(0u, r.ReadSamples(kNumSamples, read_samples));
|
||||
}
|
||||
|
||||
@ -97,8 +97,8 @@ std::string OutputPath() {
|
||||
std::string OutputPathWithRandomDirectory() {
|
||||
std::string path = webrtc::test::internal::OutputPath();
|
||||
std::string rand_dir = path + rtc::CreateRandomUuid();
|
||||
|
||||
return CreateDir(rand_dir) ? rand_dir + std::string(kPathDelimiter) : path;
|
||||
RTC_CHECK(CreateDir(rand_dir)) << "Failed to create dir: " << rand_dir;
|
||||
return rand_dir + std::string(kPathDelimiter);
|
||||
}
|
||||
|
||||
std::string WorkingDir() {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user