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

Side by Side Diff: media/audio/linux/alsa_output_unittest.cc

Issue 10533007: Revert 138939 - alsa_output: Drain and pause pcm when stopping. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 6 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « media/audio/linux/alsa_output.cc ('k') | media/audio/linux/alsa_wrapper.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/message_loop.h" 5 #include "base/message_loop.h"
6 #include "base/stringprintf.h" 6 #include "base/stringprintf.h"
7 #include "media/audio/linux/alsa_output.h" 7 #include "media/audio/linux/alsa_output.h"
8 #include "media/audio/linux/alsa_wrapper.h" 8 #include "media/audio/linux/alsa_wrapper.h"
9 #include "media/audio/linux/audio_manager_linux.h" 9 #include "media/audio/linux/audio_manager_linux.h"
10 #include "media/base/data_buffer.h" 10 #include "media/base/data_buffer.h"
(...skipping 25 matching lines...) Expand all
36 MOCK_METHOD3(DeviceNameHint, int(int card, 36 MOCK_METHOD3(DeviceNameHint, int(int card,
37 const char* iface, 37 const char* iface,
38 void*** hints)); 38 void*** hints));
39 MOCK_METHOD2(DeviceNameGetHint, char*(const void* hint, const char* id)); 39 MOCK_METHOD2(DeviceNameGetHint, char*(const void* hint, const char* id));
40 MOCK_METHOD1(DeviceNameFreeHint, int(void** hints)); 40 MOCK_METHOD1(DeviceNameFreeHint, int(void** hints));
41 41
42 MOCK_METHOD4(PcmOpen, int(snd_pcm_t** handle, const char* name, 42 MOCK_METHOD4(PcmOpen, int(snd_pcm_t** handle, const char* name,
43 snd_pcm_stream_t stream, int mode)); 43 snd_pcm_stream_t stream, int mode));
44 MOCK_METHOD1(PcmClose, int(snd_pcm_t* handle)); 44 MOCK_METHOD1(PcmClose, int(snd_pcm_t* handle));
45 MOCK_METHOD1(PcmPrepare, int(snd_pcm_t* handle)); 45 MOCK_METHOD1(PcmPrepare, int(snd_pcm_t* handle));
46 MOCK_METHOD1(PcmDrain, int(snd_pcm_t* handle));
47 MOCK_METHOD1(PcmDrop, int(snd_pcm_t* handle)); 46 MOCK_METHOD1(PcmDrop, int(snd_pcm_t* handle));
48 MOCK_METHOD2(PcmDelay, int(snd_pcm_t* handle, snd_pcm_sframes_t* delay)); 47 MOCK_METHOD2(PcmDelay, int(snd_pcm_t* handle, snd_pcm_sframes_t* delay));
49 MOCK_METHOD3(PcmWritei, snd_pcm_sframes_t(snd_pcm_t* handle, 48 MOCK_METHOD3(PcmWritei, snd_pcm_sframes_t(snd_pcm_t* handle,
50 const void* buffer, 49 const void* buffer,
51 snd_pcm_uframes_t size)); 50 snd_pcm_uframes_t size));
52 MOCK_METHOD3(PcmReadi, snd_pcm_sframes_t(snd_pcm_t* handle, 51 MOCK_METHOD3(PcmReadi, snd_pcm_sframes_t(snd_pcm_t* handle,
53 void* buffer, 52 void* buffer,
54 snd_pcm_uframes_t size)); 53 snd_pcm_uframes_t size));
55 MOCK_METHOD3(PcmRecover, int(snd_pcm_t* handle, int err, int silent)); 54 MOCK_METHOD3(PcmRecover, int(snd_pcm_t* handle, int err, int silent));
56 MOCK_METHOD7(PcmSetParams, int(snd_pcm_t* handle, snd_pcm_format_t format, 55 MOCK_METHOD7(PcmSetParams, int(snd_pcm_t* handle, snd_pcm_format_t format,
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after
444 .WillRepeatedly(Return(kTestFramesPerPacket)); 443 .WillRepeatedly(Return(kTestFramesPerPacket));
445 444
446 // Expect scheduling. 445 // Expect scheduling.
447 EXPECT_CALL(mock_alsa_wrapper_, PcmAvailUpdate(kFakeHandle)) 446 EXPECT_CALL(mock_alsa_wrapper_, PcmAvailUpdate(kFakeHandle))
448 .Times(AtLeast(2)) 447 .Times(AtLeast(2))
449 .WillRepeatedly(Return(kTestFramesPerPacket)); 448 .WillRepeatedly(Return(kTestFramesPerPacket));
450 449
451 test_stream->Start(&mock_callback); 450 test_stream->Start(&mock_callback);
452 message_loop_.RunAllPending(); 451 message_loop_.RunAllPending();
453 452
454 EXPECT_CALL(mock_alsa_wrapper_, PcmDrain(kFakeHandle))
455 .WillOnce(Return(0));
456
457 test_stream->Stop();
458
459 EXPECT_CALL(mock_alsa_wrapper_, PcmClose(kFakeHandle)) 453 EXPECT_CALL(mock_alsa_wrapper_, PcmClose(kFakeHandle))
460 .WillOnce(Return(0)); 454 .WillOnce(Return(0));
461 EXPECT_CALL(mock_alsa_wrapper_, PcmName(kFakeHandle)) 455 EXPECT_CALL(mock_alsa_wrapper_, PcmName(kFakeHandle))
462 .WillOnce(Return(kTestDeviceName)); 456 .WillOnce(Return(kTestDeviceName));
463 test_stream->Close(); 457 test_stream->Close();
464 } 458 }
465 459
466 TEST_F(AlsaPcmOutputStreamTest, WritePacket_FinishedPacket) { 460 TEST_F(AlsaPcmOutputStreamTest, WritePacket_FinishedPacket) {
467 AlsaPcmOutputStream* test_stream = CreateStream(kTestChannelLayout); 461 AlsaPcmOutputStream* test_stream = CreateStream(kTestChannelLayout);
468 InitBuffer(test_stream); 462 InitBuffer(test_stream);
(...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after
862 856
863 // TODO(ajwong): Find a way to test whether or not another task has been 857 // TODO(ajwong): Find a way to test whether or not another task has been
864 // posted so we can verify that the Alsa code will indeed break the task 858 // posted so we can verify that the Alsa code will indeed break the task
865 // posting loop. 859 // posting loop.
866 860
867 test_stream->TransitionTo(AlsaPcmOutputStream::kIsClosed); 861 test_stream->TransitionTo(AlsaPcmOutputStream::kIsClosed);
868 test_stream->Close(); 862 test_stream->Close();
869 } 863 }
870 864
871 } // namespace media 865 } // namespace media
OLDNEW
« no previous file with comments | « media/audio/linux/alsa_output.cc ('k') | media/audio/linux/alsa_wrapper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698