Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(147)

Unified Diff: webrtc/modules/audio_device/ios/audio_device_unittest_ios.cc

Issue 1527143007: AudioDeviceTest.StartPlayoutOnTwoInstances now verifies two active playing streams (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: nit Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/modules/audio_device/ios/audio_device_unittest_ios.cc
diff --git a/webrtc/modules/audio_device/ios/audio_device_unittest_ios.cc b/webrtc/modules/audio_device/ios/audio_device_unittest_ios.cc
index 8993aceea46030893f5f0f8a4aecc0e266304266..1c9746fdbf73a77c393f40f1c58b91f357dcb3b8 100644
--- a/webrtc/modules/audio_device/ios/audio_device_unittest_ios.cc
+++ b/webrtc/modules/audio_device/ios/audio_device_unittest_ios.cc
@@ -428,7 +428,9 @@ class MockAudioTransport : public AudioTransport {
audio_stream_->Write(audioSamples, nSamples);
}
if (ReceivedEnoughCallbacks()) {
- test_is_done_->Set();
+ if (test_is_done_) {
+ test_is_done_->Set();
+ }
}
return 0;
}
@@ -450,7 +452,9 @@ class MockAudioTransport : public AudioTransport {
audio_stream_->Read(audioSamples, nSamples);
}
if (ReceivedEnoughCallbacks()) {
- test_is_done_->Set();
+ if (test_is_done_) {
+ test_is_done_->Set();
+ }
}
return 0;
}
@@ -638,7 +642,9 @@ TEST_F(AudioDeviceTest, StopPlayoutRequiresInitToRestart) {
// Verify that we can create two ADMs and start playing on the second ADM.
// Only the first active instance shall activate an audio session and the
-// last active instace shall deactivate the audio session.
+// last active instance shall deactivate the audio session. The test does not
+// explicitly verify correct audio session calls but instead focuses on
+// ensuring that audio starts for both ADMs.
TEST_F(AudioDeviceTest, StartPlayoutOnTwoInstances) {
// Create and initialize a second/extra ADM instance. The default ADM is
// created by the test harness.
@@ -647,8 +653,16 @@ TEST_F(AudioDeviceTest, StartPlayoutOnTwoInstances) {
EXPECT_NE(second_audio_device.get(), nullptr);
EXPECT_EQ(0, second_audio_device->Init());
- // Start playout for the default ADM. Ignore the callback sequence.
+ // Start playout for the default ADM but don't wait here. Instead use the
+ // upcoming second stream for that. We set the same expectation on number
+ // of callbacks as for the second stream.
NiceMock<MockAudioTransport> mock(kPlayout);
+ mock.HandleCallbacks(nullptr, nullptr, 0);
+ EXPECT_CALL(
+ mock, NeedMorePlayData(playout_frames_per_10ms_buffer(), kBytesPerSample,
+ playout_channels(), playout_sample_rate(),
+ NotNull(), _, _, _))
+ .Times(AtLeast(kNumCallbacks));
EXPECT_EQ(0, audio_device()->RegisterAudioCallback(&mock));
StartPlayout();
@@ -660,13 +674,10 @@ TEST_F(AudioDeviceTest, StartPlayoutOnTwoInstances) {
EXPECT_EQ(0, second_audio_device->InitPlayout());
EXPECT_TRUE(second_audio_device->PlayoutIsInitialized());
- // Stop playout for the default ADM. The audio session shall not be
- // deactivated since it is used by the second ADM.
- StopPlayout();
-
// Start playout for the second ADM and verify that it starts as intended.
// Passing this test ensures that initialization of the second audio unit
- // has been done successfully.
+ // has been done successfully and that there is no conflict with the already
+ // playing first ADM.
MockAudioTransport mock2(kPlayout);
mock2.HandleCallbacks(test_is_done_.get(), nullptr, kNumCallbacks);
EXPECT_CALL(
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698