Chromium Code Reviews| Index: media/audio/linux/alsa_output_unittest.cc |
| diff --git a/media/audio/linux/alsa_output_unittest.cc b/media/audio/linux/alsa_output_unittest.cc |
| index cd5091923f7890934b8011e3392c5ca8952acc05..88332ec57df6153b03100520a3018947ea6db982 100644 |
| --- a/media/audio/linux/alsa_output_unittest.cc |
| +++ b/media/audio/linux/alsa_output_unittest.cc |
| @@ -70,7 +70,6 @@ class MockAudioSourceCallback : public AudioOutputStream::AudioSourceCallback { |
| MOCK_METHOD4(OnMoreData, uint32(AudioOutputStream* stream, |
| uint8* dest, uint32 max_size, |
| AudioBuffersState buffers_state)); |
| - MOCK_METHOD1(OnClose, void(AudioOutputStream* stream)); |
| MOCK_METHOD2(OnError, void(AudioOutputStream* stream, int code)); |
| }; |
| @@ -96,16 +95,22 @@ class MockAudioManagerLinux : public AudioManagerLinux { |
| class AlsaPcmOutputStreamTest : public testing::Test { |
| protected: |
| AlsaPcmOutputStreamTest() { |
| - test_stream_ = CreateStreamWithChannels(kTestChannels); |
| + test_stream_ = CreateStream(kTestChannels); |
| } |
| virtual ~AlsaPcmOutputStreamTest() { |
| test_stream_ = NULL; |
| } |
| - AlsaPcmOutputStream* CreateStreamWithChannels(int channels) { |
| + AlsaPcmOutputStream* CreateStream(int channels) { |
| + return CreateStream( |
| + channels, kTestFramesPerPacket); |
|
scherkus (not reviewing)
2010/11/09 02:28:31
nit: can fit on single line
Sergey Ulanov
2010/11/09 22:29:58
Done.
|
| + } |
| + |
| + AlsaPcmOutputStream* CreateStream(int channels, |
|
scherkus (not reviewing)
2010/11/09 02:28:31
nit: can fit on single line
Sergey Ulanov
2010/11/09 22:29:58
Done.
|
| + uint32 samples_per_packet) { |
| AudioParameters params(kTestFormat, channels, kTestSampleRate, |
| - kTestBitsPerSample); |
| + kTestBitsPerSample, samples_per_packet); |
| return new AlsaPcmOutputStream(kTestDeviceName, |
| params, |
| &mock_alsa_wrapper_, |
| @@ -197,18 +202,19 @@ TEST_F(AlsaPcmOutputStreamTest, ConstructedState) { |
| test_stream_->shared_data_.state()); |
| // Should support mono. |
| - test_stream_ = CreateStreamWithChannels(1); |
| + test_stream_ = CreateStream(1); |
| EXPECT_EQ(AlsaPcmOutputStream::kCreated, |
| test_stream_->shared_data_.state()); |
| // Should support multi-channel. |
| - test_stream_ = CreateStreamWithChannels(3); |
| + test_stream_ = CreateStream(3); |
| EXPECT_EQ(AlsaPcmOutputStream::kCreated, |
| test_stream_->shared_data_.state()); |
| // Bad bits per sample. |
| AudioParameters bad_bps_params(kTestFormat, kTestChannels, |
| - kTestSampleRate, kTestBitsPerSample - 1); |
| + kTestSampleRate, kTestBitsPerSample - 1, |
| + kTestFramesPerPacket); |
| test_stream_ = new AlsaPcmOutputStream(kTestDeviceName, |
| bad_bps_params, |
| &mock_alsa_wrapper_, |
| @@ -220,7 +226,7 @@ TEST_F(AlsaPcmOutputStreamTest, ConstructedState) { |
| // Bad format. |
| AudioParameters bad_format_params( |
| AudioParameters::AUDIO_LAST_FORMAT, kTestChannels, |
| - kTestSampleRate, kTestBitsPerSample); |
| + kTestSampleRate, kTestBitsPerSample, kTestFramesPerPacket); |
| test_stream_ = new AlsaPcmOutputStream(kTestDeviceName, |
| bad_format_params, |
| &mock_alsa_wrapper_, |
| @@ -235,8 +241,6 @@ TEST_F(AlsaPcmOutputStreamTest, LatencyFloor) { |
| static_cast<double>(1000000) / kTestSampleRate; |
| const double kPacketFramesInMinLatency = |
| AlsaPcmOutputStream::kMinLatencyMicros / kMicrosPerFrame / 2.0; |
| - const int kMinLatencyPacketSize = |
| - static_cast<int>(kPacketFramesInMinLatency * kTestBytesPerFrame); |
| // Test that packets which would cause a latency under less than |
| // AlsaPcmOutputStream::kMinLatencyMicros will get clipped to |
| @@ -253,7 +257,8 @@ TEST_F(AlsaPcmOutputStreamTest, LatencyFloor) { |
| SetArgumentPointee<2>(kTestFramesPerPacket / 2), |
| Return(0))); |
| - ASSERT_TRUE(test_stream_->Open(kMinLatencyPacketSize)); |
| + test_stream_ = CreateStream(kTestChannels, (int)kPacketFramesInMinLatency); |
|
scherkus (not reviewing)
2010/11/09 02:28:31
no c-style casts please (or change type of constan
Sergey Ulanov
2010/11/09 22:29:58
Done.
|
| + ASSERT_TRUE(test_stream_->Open()); |
| message_loop_.RunAllPending(); |
| // Now close it and test that everything was released. |
| @@ -268,15 +273,9 @@ TEST_F(AlsaPcmOutputStreamTest, LatencyFloor) { |
| Mock::VerifyAndClear(&mock_manager_); |
| // Test that having more packets ends up with a latency based on packet size. |
| - const int kOverMinLatencyPacketSize = |
| - (kPacketFramesInMinLatency + 1) * kTestBytesPerFrame; |
| - int64 expected_micros = 2 * |
| - AlsaPcmOutputStream::FramesToMicros( |
| - kOverMinLatencyPacketSize / kTestBytesPerFrame, |
| - kTestSampleRate); |
| - |
| - // Recreate the stream to reset the state. |
| - test_stream_ = CreateStreamWithChannels(kTestChannels); |
| + const int kOverMinLatencyPacketSize = kPacketFramesInMinLatency + 1; |
| + int64 expected_micros = 2 * AlsaPcmOutputStream::FramesToMicros( |
| + kOverMinLatencyPacketSize, kTestSampleRate); |
| EXPECT_CALL(mock_alsa_wrapper_, PcmOpen(_, _, _, _)) |
| .WillOnce(DoAll(SetArgumentPointee<0>(kFakeHandle), Return(0))); |
| @@ -288,7 +287,8 @@ TEST_F(AlsaPcmOutputStreamTest, LatencyFloor) { |
| SetArgumentPointee<2>(kTestFramesPerPacket / 2), |
| Return(0))); |
| - ASSERT_TRUE(test_stream_->Open(kOverMinLatencyPacketSize)); |
| + test_stream_ = CreateStream(kTestChannels, kOverMinLatencyPacketSize); |
| + ASSERT_TRUE(test_stream_->Open()); |
| message_loop_.RunAllPending(); |
| // Now close it and test that everything was released. |
| @@ -332,7 +332,7 @@ TEST_F(AlsaPcmOutputStreamTest, OpenClose) { |
| Return(0))); |
| // Open the stream. |
| - ASSERT_TRUE(test_stream_->Open(kTestPacketSize)); |
| + ASSERT_TRUE(test_stream_->Open()); |
| message_loop_.RunAllPending(); |
| EXPECT_EQ(AlsaPcmOutputStream::kIsOpened, |
| @@ -363,7 +363,7 @@ TEST_F(AlsaPcmOutputStreamTest, PcmOpenFailed) { |
| .WillOnce(Return(kDummyMessage)); |
| // Open still succeeds since PcmOpen is delegated to another thread. |
| - ASSERT_TRUE(test_stream_->Open(kTestPacketSize)); |
| + ASSERT_TRUE(test_stream_->Open()); |
| ASSERT_EQ(AlsaPcmOutputStream::kIsOpened, |
| test_stream_->shared_data_.state()); |
| ASSERT_FALSE(test_stream_->stop_stream_); |
| @@ -397,7 +397,7 @@ TEST_F(AlsaPcmOutputStreamTest, PcmSetParamsFailed) { |
| // If open fails, the stream stays in kCreated because it has effectively had |
| // no changes. |
| - ASSERT_TRUE(test_stream_->Open(kTestPacketSize)); |
| + ASSERT_TRUE(test_stream_->Open()); |
| EXPECT_EQ(AlsaPcmOutputStream::kIsOpened, |
| test_stream_->shared_data_.state()); |
| ASSERT_FALSE(test_stream_->stop_stream_); |
| @@ -431,7 +431,7 @@ TEST_F(AlsaPcmOutputStreamTest, StartStop) { |
| Return(0))); |
| // Open the stream. |
| - ASSERT_TRUE(test_stream_->Open(kTestPacketSize)); |
| + ASSERT_TRUE(test_stream_->Open()); |
| message_loop_.RunAllPending(); |
| // Expect Device setup. |
| @@ -469,7 +469,6 @@ TEST_F(AlsaPcmOutputStreamTest, StartStop) { |
| message_loop_.RunAllPending(); |
| EXPECT_CALL(mock_manager_, ReleaseOutputStream(test_stream_.get())); |
| - EXPECT_CALL(mock_callback, OnClose(test_stream_.get())); |
| EXPECT_CALL(mock_alsa_wrapper_, PcmClose(kFakeHandle)) |
| .WillOnce(Return(0)); |
| EXPECT_CALL(mock_alsa_wrapper_, PcmName(kFakeHandle)) |
| @@ -684,7 +683,7 @@ TEST_F(AlsaPcmOutputStreamTest, AutoSelectDevice_DeviceSelect) { |
| .WillRepeatedly(Invoke(EchoHint)); |
| - test_stream_ = CreateStreamWithChannels(i); |
| + test_stream_ = CreateStream(i); |
| EXPECT_TRUE(test_stream_->AutoSelectDevice(i)); |
| EXPECT_EQ(kExpectedDownmix[i], test_stream_->should_downmix_); |
| @@ -734,7 +733,7 @@ TEST_F(AlsaPcmOutputStreamTest, AutoSelectDevice_FallbackDevices) { |
| EXPECT_CALL(mock_alsa_wrapper_, PcmOpen(_, StrEq(fourth_try.c_str()), _, _)) |
| .WillOnce(Return(kTestFailedErrno)); |
| - test_stream_ = CreateStreamWithChannels(5); |
| + test_stream_ = CreateStream(5); |
| EXPECT_FALSE(test_stream_->AutoSelectDevice(5)); |
| } |
| @@ -752,7 +751,7 @@ TEST_F(AlsaPcmOutputStreamTest, AutoSelectDevice_HintFail) { |
| EXPECT_CALL(mock_alsa_wrapper_, StrError(kTestFailedErrno)) |
| .WillOnce(Return(kDummyMessage)); |
| - test_stream_ = CreateStreamWithChannels(5); |
| + test_stream_ = CreateStream(5); |
| EXPECT_TRUE(test_stream_->AutoSelectDevice(5)); |
| EXPECT_TRUE(test_stream_->should_downmix_); |
| } |