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

Unified Diff: media/audio/linux/alsa_output_unittest.cc

Issue 4661001: Simplified AudioOutputStream interface. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: - Created 10 years, 1 month 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
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_);
}

Powered by Google App Engine
This is Rietveld 408576698