| Index: third_party/WebKit/Source/platform/audio/PushPullFIFOTest.cpp
|
| diff --git a/third_party/WebKit/Source/platform/audio/PushPullFIFOTest.cpp b/third_party/WebKit/Source/platform/audio/PushPullFIFOTest.cpp
|
| index 9351b4281d13b47fbf34e13dc8b9ae9643a9dabb..0ea8b22c8d9c84363728a148cd3c3b953f14b36b 100644
|
| --- a/third_party/WebKit/Source/platform/audio/PushPullFIFOTest.cpp
|
| +++ b/third_party/WebKit/Source/platform/audio/PushPullFIFOTest.cpp
|
| @@ -15,37 +15,54 @@ namespace blink {
|
|
|
| namespace {
|
|
|
| +class MockAudioIOCallback : public AudioIOCallback {
|
| + public:
|
| + MockAudioIOCallback() {};
|
| + ~MockAudioIOCallback() {};
|
| +
|
| + void Render(AudioBus* source_bus,
|
| + AudioBus* destination_bus,
|
| + size_t number_of_frames,
|
| + const AudioIOPosition& output_position) final {}
|
| +};
|
| +
|
| // Check the basic contract of FIFO.
|
| TEST(PushPullFIFOBasicTest, BasicTests) {
|
| // This suppresses the multi-thread warning for GTest. Potently it increases
|
| // the test execution time, but this specific test is very short and simple.
|
| ::testing::FLAGS_gtest_death_test_style = "threadsafe";
|
|
|
| + const ThreadIdentifier thread_id = CurrentThread();
|
| + MockAudioIOCallback* mock_audio_io_callback = new MockAudioIOCallback();
|
| +
|
| // FIFO length exceeding the maximum length allowed will cause crash.
|
| // i.e.) m_fifoLength <= kMaxFIFOLength
|
| - EXPECT_DEATH(new PushPullFIFO(2, PushPullFIFO::kMaxFIFOLength + 1), "");
|
| + EXPECT_DEATH(new PushPullFIFO(2, PushPullFIFO::kMaxFIFOLength + 1,
|
| + thread_id, *mock_audio_io_callback),
|
| + "");
|
|
|
| std::unique_ptr<PushPullFIFO> test_fifo =
|
| - WTF::WrapUnique(new PushPullFIFO(2, 1024));
|
| + WTF::WrapUnique(new PushPullFIFO(2, 1024, thread_id,
|
| + *mock_audio_io_callback));
|
|
|
| // The input bus length must be |AudioUtilities::kRenderQuantumFrames|.
|
| // i.e.) inputBus->length() == kRenderQuantumFrames
|
| - RefPtr<AudioBus> input_bus_of129_frames =
|
| + RefPtr<AudioBus> input_bus_129_frames =
|
| AudioBus::Create(2, AudioUtilities::kRenderQuantumFrames + 1);
|
| - EXPECT_DEATH(test_fifo->Push(input_bus_of129_frames.Get()), "");
|
| - RefPtr<AudioBus> input_bus_of127_frames =
|
| + EXPECT_DEATH(test_fifo->Push(input_bus_129_frames.Get()), "");
|
| + RefPtr<AudioBus> input_bus_127_frames =
|
| AudioBus::Create(2, AudioUtilities::kRenderQuantumFrames - 1);
|
| - EXPECT_DEATH(test_fifo->Push(input_bus_of127_frames.Get()), "");
|
| + EXPECT_DEATH(test_fifo->Push(input_bus_127_frames.Get()), "");
|
|
|
| // Pull request frames cannot exceed the length of output bus.
|
| // i.e.) framesRequested <= outputBus->length()
|
| - RefPtr<AudioBus> output_bus_of512_frames = AudioBus::Create(2, 512);
|
| - EXPECT_DEATH(test_fifo->Pull(output_bus_of512_frames.Get(), 513), "");
|
| + RefPtr<AudioBus> output_bus_512_frames = AudioBus::Create(2, 512);
|
| + EXPECT_DEATH(test_fifo->Pull(output_bus_512_frames.Get(), 513), "");
|
|
|
| // Pull request frames cannot exceed the length of FIFO.
|
| // i.e.) framesRequested <= m_fifoLength
|
| - RefPtr<AudioBus> output_bus_of1025_frames = AudioBus::Create(2, 1025);
|
| - EXPECT_DEATH(test_fifo->Pull(output_bus_of1025_frames.Get(), 1025), "");
|
| + RefPtr<AudioBus> output_bus_1025_frames = AudioBus::Create(2, 1025);
|
| + EXPECT_DEATH(test_fifo->Pull(output_bus_1025_frames.Get(), 1025), "");
|
| }
|
|
|
| // Fills each AudioChannel in an AudioBus with a series of linearly increasing
|
| @@ -133,10 +150,13 @@ class PushPullFIFOFeatureTest : public ::testing::TestWithParam<FIFOTestParam> {
|
| TEST_P(PushPullFIFOFeatureTest, FeatureTests) {
|
| const FIFOTestSetup setup = GetParam().setup;
|
| const FIFOTestExpectedState expected_state = GetParam().expected_state;
|
| + const ThreadIdentifier thread_id = CurrentThread();
|
| + MockAudioIOCallback* mock_audio_io_callback = new MockAudioIOCallback();
|
|
|
| // Create a FIFO with a specified configuration.
|
| std::unique_ptr<PushPullFIFO> fifo = WTF::WrapUnique(
|
| - new PushPullFIFO(setup.number_of_channels, setup.fifo_length));
|
| + new PushPullFIFO(setup.number_of_channels, setup.fifo_length, thread_id,
|
| + *mock_audio_io_callback));
|
|
|
| RefPtr<AudioBus> output_bus;
|
|
|
| @@ -169,7 +189,9 @@ TEST_P(PushPullFIFOFeatureTest, FeatureTests) {
|
|
|
| // Verify in-FIFO samples.
|
| for (const auto& sample : expected_state.fifo_samples) {
|
| - EXPECT_TRUE(VerifyBusValueAtIndex(fifo->Bus(), sample.index, sample.value));
|
| + EXPECT_TRUE(VerifyBusValueAtIndex(fifo->GetFIFOBusForTest(),
|
| + sample.index,
|
| + sample.value));
|
| }
|
|
|
| // Verify samples from the most recent output bus.
|
|
|