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

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

Issue 9570014: Move some generic functions to AudioManagerBase to be inherited by platform-specific AudioManager*** (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 10 months 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 | « media/audio/linux/alsa_input.cc ('k') | media/audio/linux/audio_manager_linux.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 bcf2e3dd0486d811c3113edb98314a847a8ac067..69cfc04fa2634ebc9390284575451acc22f34113 100644
--- a/media/audio/linux/alsa_output_unittest.cc
+++ b/media/audio/linux/alsa_output_unittest.cc
@@ -78,13 +78,24 @@ class MockAudioManagerLinux : public AudioManagerLinux {
MOCK_METHOD0(Init, void());
no longer working on chromium 2012/03/01 16:02:19 Question to Tommi: We don't use these mock functio
MOCK_METHOD0(HasAudioOutputDevices, bool());
MOCK_METHOD0(HasAudioInputDevices, bool());
- MOCK_METHOD1(MakeAudioOutputStream, AudioOutputStream*(
- const AudioParameters& params));
- MOCK_METHOD2(MakeAudioInputStream, AudioInputStream*(
- const AudioParameters& params, const std::string& device_id));
MOCK_METHOD0(MuteAll, void());
MOCK_METHOD0(UnMuteAll, void());
- MOCK_METHOD1(ReleaseOutputStream, void(AudioOutputStream* stream));
+ MOCK_METHOD0(GetMaxAudioOutputStreamsAllowed, int());
+ MOCK_METHOD1(MakeAudioLinearOutputStream, AudioOutputStream*(
+ const AudioParameters& params));
+ MOCK_METHOD1(MakeAudioLowLatencyOutputStream, AudioOutputStream*(
+ const AudioParameters& params));
+ MOCK_METHOD2(MakeAudioLinearOutputStream, AudioInputStream*(
+ const AudioParameters& params, const std::string& device_id));
+ MOCK_METHOD2(MakeAudioLowLatencyInputStream, AudioInputStream*(
+ const AudioParameters& params, const std::string& device_id));
+
+ // We need to override this function because we want to skip the checking
+ // the number of active streams.
+ virtual void ReleaseOutputStream(AudioOutputStream* stream) OVERRIDE {
+ DCHECK(stream);
+ delete stream;
+ }
// We don't mock this method since all tests will do the same thing
// and use the current message loop.
@@ -97,11 +108,11 @@ class AlsaPcmOutputStreamTest : public testing::Test {
protected:
AlsaPcmOutputStreamTest() {
mock_manager_.reset(new StrictMock<MockAudioManagerLinux>());
- test_stream_.reset(CreateStream(kTestChannelLayout));
+ test_stream_ = CreateStream(kTestChannelLayout);
}
virtual ~AlsaPcmOutputStreamTest() {
- test_stream_.reset(NULL);
+ test_stream_ = NULL;
}
AlsaPcmOutputStream* CreateStream(ChannelLayout layout) {
@@ -165,7 +176,7 @@ class AlsaPcmOutputStreamTest : public testing::Test {
StrictMock<MockAlsaWrapper> mock_alsa_wrapper_;
scoped_ptr<StrictMock<MockAudioManagerLinux> > mock_manager_;
MessageLoop message_loop_;
- scoped_ptr<AlsaPcmOutputStream> test_stream_;
+ AlsaPcmOutputStream* test_stream_;
scoped_refptr<media::DataBuffer> packet_;
private:
@@ -206,31 +217,31 @@ TEST_F(AlsaPcmOutputStreamTest, ConstructedState) {
EXPECT_EQ(AlsaPcmOutputStream::kCreated, test_stream_->state());
// Should support mono.
- test_stream_.reset(CreateStream(CHANNEL_LAYOUT_MONO));
+ test_stream_ = CreateStream(CHANNEL_LAYOUT_MONO);
EXPECT_EQ(AlsaPcmOutputStream::kCreated, test_stream_->state());
// Should support multi-channel.
- test_stream_.reset(CreateStream(CHANNEL_LAYOUT_SURROUND));
+ test_stream_ = CreateStream(CHANNEL_LAYOUT_SURROUND);
EXPECT_EQ(AlsaPcmOutputStream::kCreated, test_stream_->state());
// Bad bits per sample.
AudioParameters bad_bps_params(kTestFormat, kTestChannelLayout,
kTestSampleRate, kTestBitsPerSample - 1,
kTestFramesPerPacket);
- test_stream_.reset(new AlsaPcmOutputStream(kTestDeviceName,
- bad_bps_params,
- &mock_alsa_wrapper_,
- mock_manager_.get()));
+ test_stream_ = new AlsaPcmOutputStream(kTestDeviceName,
+ bad_bps_params,
+ &mock_alsa_wrapper_,
+ mock_manager_.get());
EXPECT_EQ(AlsaPcmOutputStream::kInError, test_stream_->state());
// Bad format.
AudioParameters bad_format_params(
AudioParameters::AUDIO_LAST_FORMAT, kTestChannelLayout, kTestSampleRate,
kTestBitsPerSample, kTestFramesPerPacket);
- test_stream_.reset(new AlsaPcmOutputStream(kTestDeviceName,
- bad_format_params,
- &mock_alsa_wrapper_,
- mock_manager_.get()));
+ test_stream_ = new AlsaPcmOutputStream(kTestDeviceName,
+ bad_format_params,
+ &mock_alsa_wrapper_,
+ mock_manager_.get());
EXPECT_EQ(AlsaPcmOutputStream::kInError, test_stream_->state());
}
@@ -255,15 +266,14 @@ TEST_F(AlsaPcmOutputStreamTest, LatencyFloor) {
SetArgumentPointee<2>(kTestFramesPerPacket / 2),
Return(0)));
- test_stream_.reset(CreateStream(kTestChannelLayout,
- kPacketFramesInMinLatency));
+ test_stream_ = CreateStream(kTestChannelLayout, kPacketFramesInMinLatency);
ASSERT_TRUE(test_stream_->Open());
// Now close it and test that everything was released.
EXPECT_CALL(mock_alsa_wrapper_, PcmClose(kFakeHandle)).WillOnce(Return(0));
EXPECT_CALL(mock_alsa_wrapper_, PcmName(kFakeHandle))
.WillOnce(Return(kTestDeviceName));
- EXPECT_CALL(mock_manager(), ReleaseOutputStream(test_stream_.get()));
+// EXPECT_CALL(mock_manager(), ReleaseOutputStream(test_stream_));
test_stream_->Close();
Mock::VerifyAndClear(&mock_alsa_wrapper_);
@@ -284,8 +294,7 @@ TEST_F(AlsaPcmOutputStreamTest, LatencyFloor) {
SetArgumentPointee<2>(kTestFramesPerPacket / 2),
Return(0)));
- test_stream_.reset(CreateStream(kTestChannelLayout,
- kOverMinLatencyPacketSize));
+ test_stream_ = CreateStream(kTestChannelLayout, kOverMinLatencyPacketSize);
ASSERT_TRUE(test_stream_->Open());
// Now close it and test that everything was released.
@@ -293,7 +302,6 @@ TEST_F(AlsaPcmOutputStreamTest, LatencyFloor) {
.WillOnce(Return(0));
EXPECT_CALL(mock_alsa_wrapper_, PcmName(kFakeHandle))
.WillOnce(Return(kTestDeviceName));
- EXPECT_CALL(mock_manager(), ReleaseOutputStream(test_stream_.get()));
test_stream_->Close();
Mock::VerifyAndClear(&mock_alsa_wrapper_);
@@ -341,12 +349,7 @@ TEST_F(AlsaPcmOutputStreamTest, OpenClose) {
.WillOnce(Return(0));
EXPECT_CALL(mock_alsa_wrapper_, PcmName(kFakeHandle))
.WillOnce(Return(kTestDeviceName));
- EXPECT_CALL(mock_manager(), ReleaseOutputStream(test_stream_.get()));
test_stream_->Close();
-
- EXPECT_TRUE(test_stream_->playback_handle_ == NULL);
- EXPECT_FALSE(test_stream_->buffer_.get());
- EXPECT_TRUE(test_stream_->stop_stream_);
}
TEST_F(AlsaPcmOutputStreamTest, PcmOpenFailed) {
@@ -364,7 +367,6 @@ TEST_F(AlsaPcmOutputStreamTest, PcmOpenFailed) {
EXPECT_FALSE(test_stream_->buffer_.get());
// Close the stream since we opened it to make destruction happy.
- EXPECT_CALL(mock_manager(), ReleaseOutputStream(test_stream_.get()));
test_stream_->Close();
}
@@ -392,7 +394,6 @@ TEST_F(AlsaPcmOutputStreamTest, PcmSetParamsFailed) {
EXPECT_FALSE(test_stream_->buffer_.get());
// Close the stream since we opened it to make destruction happy.
- EXPECT_CALL(mock_manager(), ReleaseOutputStream(test_stream_.get()));
test_stream_->Close();
}
@@ -428,7 +429,7 @@ TEST_F(AlsaPcmOutputStreamTest, StartStop) {
.Times(2)
.WillRepeatedly(DoAll(SetArgumentPointee<1>(0), Return(0)));
EXPECT_CALL(mock_callback,
- OnMoreData(test_stream_.get(), _, kTestPacketSize, _))
+ OnMoreData(test_stream_, _, kTestPacketSize, _))
.Times(2)
.WillOnce(Return(kTestPacketSize))
.WillOnce(Return(0));
@@ -447,7 +448,6 @@ TEST_F(AlsaPcmOutputStreamTest, StartStop) {
test_stream_->Start(&mock_callback);
message_loop_.RunAllPending();
- EXPECT_CALL(mock_manager(), ReleaseOutputStream(test_stream_.get()));
EXPECT_CALL(mock_alsa_wrapper_, PcmClose(kFakeHandle))
.WillOnce(Return(0));
EXPECT_CALL(mock_alsa_wrapper_, PcmName(kFakeHandle))
@@ -539,7 +539,7 @@ TEST_F(AlsaPcmOutputStreamTest, BufferPacket) {
// Return a partially filled packet.
EXPECT_CALL(mock_callback,
- OnMoreData(test_stream_.get(), _, _, _))
+ OnMoreData(test_stream_, _, _, _))
.WillOnce(Return(10));
bool source_exhausted;
@@ -564,7 +564,7 @@ TEST_F(AlsaPcmOutputStreamTest, BufferPacket_Negative) {
EXPECT_CALL(mock_alsa_wrapper_, PcmAvailUpdate(_))
.WillRepeatedly(Return(0)); // Buffer is full.
EXPECT_CALL(mock_callback,
- OnMoreData(test_stream_.get(), _, _, _))
+ OnMoreData(test_stream_, _, _, _))
.WillOnce(Return(10));
bool source_exhausted;
@@ -587,7 +587,7 @@ TEST_F(AlsaPcmOutputStreamTest, BufferPacket_Underrun) {
EXPECT_CALL(mock_alsa_wrapper_, PcmAvailUpdate(_))
.WillRepeatedly(Return(0)); // Buffer is full.
EXPECT_CALL(mock_callback,
- OnMoreData(test_stream_.get(), _, _, AllOf(
+ OnMoreData(test_stream_, _, _, AllOf(
Field(&AudioBuffersState::pending_bytes, 0),
Field(&AudioBuffersState::hardware_delay_bytes, 0))))
.WillOnce(Return(10));
@@ -670,7 +670,7 @@ TEST_F(AlsaPcmOutputStreamTest, AutoSelectDevice_DeviceSelect) {
EXPECT_CALL(mock_alsa_wrapper_, DeviceNameGetHint(_, StrEq("NAME")))
.WillRepeatedly(Invoke(EchoHint));
- test_stream_.reset(CreateStream(kExpectedLayouts[i]));
+ test_stream_ = CreateStream(kExpectedLayouts[i]);
EXPECT_TRUE(test_stream_->AutoSelectDevice(i));
EXPECT_EQ(kExpectedDownmix[i], test_stream_->should_downmix_);
@@ -720,7 +720,7 @@ TEST_F(AlsaPcmOutputStreamTest, AutoSelectDevice_FallbackDevices) {
EXPECT_CALL(mock_alsa_wrapper_, PcmOpen(_, StrEq(fourth_try.c_str()), _, _))
.WillOnce(Return(kTestFailedErrno));
- test_stream_.reset(CreateStream(CHANNEL_LAYOUT_5POINT0));
+ test_stream_ = CreateStream(CHANNEL_LAYOUT_5POINT0);
EXPECT_FALSE(test_stream_->AutoSelectDevice(5));
}
@@ -738,7 +738,7 @@ TEST_F(AlsaPcmOutputStreamTest, AutoSelectDevice_HintFail) {
EXPECT_CALL(mock_alsa_wrapper_, StrError(kTestFailedErrno))
.WillOnce(Return(kDummyMessage));
- test_stream_.reset(CreateStream(CHANNEL_LAYOUT_5POINT0));
+ test_stream_ = CreateStream(CHANNEL_LAYOUT_5POINT0);
EXPECT_TRUE(test_stream_->AutoSelectDevice(5));
EXPECT_TRUE(test_stream_->should_downmix_);
}
« no previous file with comments | « media/audio/linux/alsa_input.cc ('k') | media/audio/linux/audio_manager_linux.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698