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

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

Issue 10184011: Remove unused parameter "stream" from all variants of OnMoreData(). (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: Created 8 years, 8 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/cras_output.cc » ('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 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 MOCK_METHOD1(PcmName, const char*(snd_pcm_t* handle)); 62 MOCK_METHOD1(PcmName, const char*(snd_pcm_t* handle));
63 MOCK_METHOD1(PcmAvailUpdate, snd_pcm_sframes_t(snd_pcm_t* handle)); 63 MOCK_METHOD1(PcmAvailUpdate, snd_pcm_sframes_t(snd_pcm_t* handle));
64 MOCK_METHOD1(PcmState, snd_pcm_state_t(snd_pcm_t* handle)); 64 MOCK_METHOD1(PcmState, snd_pcm_state_t(snd_pcm_t* handle));
65 MOCK_METHOD1(PcmStart, int(snd_pcm_t* handle)); 65 MOCK_METHOD1(PcmStart, int(snd_pcm_t* handle));
66 66
67 MOCK_METHOD1(StrError, const char*(int errnum)); 67 MOCK_METHOD1(StrError, const char*(int errnum));
68 }; 68 };
69 69
70 class MockAudioSourceCallback : public AudioOutputStream::AudioSourceCallback { 70 class MockAudioSourceCallback : public AudioOutputStream::AudioSourceCallback {
71 public: 71 public:
72 MOCK_METHOD4(OnMoreData, uint32(AudioOutputStream* stream, 72 MOCK_METHOD3(OnMoreData, uint32(uint8* dest, uint32 max_size,
73 uint8* dest, uint32 max_size,
74 AudioBuffersState buffers_state)); 73 AudioBuffersState buffers_state));
75 MOCK_METHOD2(OnError, void(AudioOutputStream* stream, int code)); 74 MOCK_METHOD2(OnError, void(AudioOutputStream* stream, int code));
76 }; 75 };
77 76
78 class MockAudioManagerLinux : public AudioManagerLinux { 77 class MockAudioManagerLinux : public AudioManagerLinux {
79 public: 78 public:
80 MOCK_METHOD0(Init, void()); 79 MOCK_METHOD0(Init, void());
81 MOCK_METHOD0(HasAudioOutputDevices, bool()); 80 MOCK_METHOD0(HasAudioOutputDevices, bool());
82 MOCK_METHOD0(HasAudioInputDevices, bool()); 81 MOCK_METHOD0(HasAudioInputDevices, bool());
83 MOCK_METHOD0(MuteAll, void()); 82 MOCK_METHOD0(MuteAll, void());
(...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after
433 .WillOnce(Return(0)); 432 .WillOnce(Return(0));
434 433
435 // Expect the pre-roll. 434 // Expect the pre-roll.
436 MockAudioSourceCallback mock_callback; 435 MockAudioSourceCallback mock_callback;
437 EXPECT_CALL(mock_alsa_wrapper_, PcmState(kFakeHandle)) 436 EXPECT_CALL(mock_alsa_wrapper_, PcmState(kFakeHandle))
438 .Times(3) 437 .Times(3)
439 .WillRepeatedly(Return(SND_PCM_STATE_RUNNING)); 438 .WillRepeatedly(Return(SND_PCM_STATE_RUNNING));
440 EXPECT_CALL(mock_alsa_wrapper_, PcmDelay(kFakeHandle, _)) 439 EXPECT_CALL(mock_alsa_wrapper_, PcmDelay(kFakeHandle, _))
441 .Times(2) 440 .Times(2)
442 .WillRepeatedly(DoAll(SetArgumentPointee<1>(0), Return(0))); 441 .WillRepeatedly(DoAll(SetArgumentPointee<1>(0), Return(0)));
443 EXPECT_CALL(mock_callback, 442 EXPECT_CALL(mock_callback, OnMoreData(_, kTestPacketSize, _))
444 OnMoreData(test_stream, _, kTestPacketSize, _))
445 .Times(2) 443 .Times(2)
446 .WillOnce(Return(kTestPacketSize)) 444 .WillOnce(Return(kTestPacketSize))
447 .WillOnce(Return(0)); 445 .WillOnce(Return(0));
448 EXPECT_CALL(mock_alsa_wrapper_, PcmWritei(kFakeHandle, _, _)) 446 EXPECT_CALL(mock_alsa_wrapper_, PcmWritei(kFakeHandle, _, _))
449 .WillOnce(Return(kTestFramesPerPacket)); 447 .WillOnce(Return(kTestFramesPerPacket));
450 448
451 // Expect scheduling. 449 // Expect scheduling.
452 EXPECT_CALL(mock_alsa_wrapper_, PcmAvailUpdate(kFakeHandle)) 450 EXPECT_CALL(mock_alsa_wrapper_, PcmAvailUpdate(kFakeHandle))
453 .Times(AtLeast(3)) 451 .Times(AtLeast(3))
454 .WillOnce(Return(kTestFramesPerPacket)) // Buffer is empty. 452 .WillOnce(Return(kTestFramesPerPacket)) // Buffer is empty.
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
552 550
553 MockAudioSourceCallback mock_callback; 551 MockAudioSourceCallback mock_callback;
554 EXPECT_CALL(mock_alsa_wrapper_, PcmState(_)) 552 EXPECT_CALL(mock_alsa_wrapper_, PcmState(_))
555 .WillOnce(Return(SND_PCM_STATE_RUNNING)); 553 .WillOnce(Return(SND_PCM_STATE_RUNNING));
556 EXPECT_CALL(mock_alsa_wrapper_, PcmDelay(_, _)) 554 EXPECT_CALL(mock_alsa_wrapper_, PcmDelay(_, _))
557 .WillOnce(DoAll(SetArgumentPointee<1>(1), Return(0))); 555 .WillOnce(DoAll(SetArgumentPointee<1>(1), Return(0)));
558 EXPECT_CALL(mock_alsa_wrapper_, PcmAvailUpdate(_)) 556 EXPECT_CALL(mock_alsa_wrapper_, PcmAvailUpdate(_))
559 .WillRepeatedly(Return(0)); // Buffer is full. 557 .WillRepeatedly(Return(0)); // Buffer is full.
560 558
561 // Return a partially filled packet. 559 // Return a partially filled packet.
562 EXPECT_CALL(mock_callback, 560 EXPECT_CALL(mock_callback, OnMoreData(_, _, _))
563 OnMoreData(test_stream, _, _, _))
564 .WillOnce(Return(10)); 561 .WillOnce(Return(10));
565 562
566 bool source_exhausted; 563 bool source_exhausted;
567 test_stream->set_source_callback(&mock_callback); 564 test_stream->set_source_callback(&mock_callback);
568 test_stream->packet_size_ = kTestPacketSize; 565 test_stream->packet_size_ = kTestPacketSize;
569 test_stream->BufferPacket(&source_exhausted); 566 test_stream->BufferPacket(&source_exhausted);
570 567
571 EXPECT_EQ(10, test_stream->buffer_->forward_bytes()); 568 EXPECT_EQ(10, test_stream->buffer_->forward_bytes());
572 EXPECT_FALSE(source_exhausted); 569 EXPECT_FALSE(source_exhausted);
573 test_stream->Close(); 570 test_stream->Close();
574 } 571 }
575 572
576 TEST_F(AlsaPcmOutputStreamTest, BufferPacket_Negative) { 573 TEST_F(AlsaPcmOutputStreamTest, BufferPacket_Negative) {
577 AlsaPcmOutputStream* test_stream = CreateStream(kTestChannelLayout); 574 AlsaPcmOutputStream* test_stream = CreateStream(kTestChannelLayout);
578 InitBuffer(test_stream); 575 InitBuffer(test_stream);
579 test_stream->buffer_->Clear(); 576 test_stream->buffer_->Clear();
580 577
581 // Simulate where the underrun has occurred right after checking the delay. 578 // Simulate where the underrun has occurred right after checking the delay.
582 MockAudioSourceCallback mock_callback; 579 MockAudioSourceCallback mock_callback;
583 EXPECT_CALL(mock_alsa_wrapper_, PcmState(_)) 580 EXPECT_CALL(mock_alsa_wrapper_, PcmState(_))
584 .WillOnce(Return(SND_PCM_STATE_RUNNING)); 581 .WillOnce(Return(SND_PCM_STATE_RUNNING));
585 EXPECT_CALL(mock_alsa_wrapper_, PcmDelay(_, _)) 582 EXPECT_CALL(mock_alsa_wrapper_, PcmDelay(_, _))
586 .WillOnce(DoAll(SetArgumentPointee<1>(-1), Return(0))); 583 .WillOnce(DoAll(SetArgumentPointee<1>(-1), Return(0)));
587 EXPECT_CALL(mock_alsa_wrapper_, PcmAvailUpdate(_)) 584 EXPECT_CALL(mock_alsa_wrapper_, PcmAvailUpdate(_))
588 .WillRepeatedly(Return(0)); // Buffer is full. 585 .WillRepeatedly(Return(0)); // Buffer is full.
589 EXPECT_CALL(mock_callback, OnMoreData(test_stream, _, _, _)) 586 EXPECT_CALL(mock_callback, OnMoreData(_, _, _))
590 .WillOnce(Return(10)); 587 .WillOnce(Return(10));
591 588
592 bool source_exhausted; 589 bool source_exhausted;
593 test_stream->set_source_callback(&mock_callback); 590 test_stream->set_source_callback(&mock_callback);
594 test_stream->packet_size_ = kTestPacketSize; 591 test_stream->packet_size_ = kTestPacketSize;
595 test_stream->BufferPacket(&source_exhausted); 592 test_stream->BufferPacket(&source_exhausted);
596 593
597 EXPECT_EQ(10, test_stream->buffer_->forward_bytes()); 594 EXPECT_EQ(10, test_stream->buffer_->forward_bytes());
598 EXPECT_FALSE(source_exhausted); 595 EXPECT_FALSE(source_exhausted);
599 test_stream->Close(); 596 test_stream->Close();
600 } 597 }
601 598
602 TEST_F(AlsaPcmOutputStreamTest, BufferPacket_Underrun) { 599 TEST_F(AlsaPcmOutputStreamTest, BufferPacket_Underrun) {
603 AlsaPcmOutputStream* test_stream = CreateStream(kTestChannelLayout); 600 AlsaPcmOutputStream* test_stream = CreateStream(kTestChannelLayout);
604 InitBuffer(test_stream); 601 InitBuffer(test_stream);
605 test_stream->buffer_->Clear(); 602 test_stream->buffer_->Clear();
606 603
607 // If ALSA has underrun then we should assume a delay of zero. 604 // If ALSA has underrun then we should assume a delay of zero.
608 MockAudioSourceCallback mock_callback; 605 MockAudioSourceCallback mock_callback;
609 EXPECT_CALL(mock_alsa_wrapper_, PcmState(_)) 606 EXPECT_CALL(mock_alsa_wrapper_, PcmState(_))
610 .WillOnce(Return(SND_PCM_STATE_XRUN)); 607 .WillOnce(Return(SND_PCM_STATE_XRUN));
611 EXPECT_CALL(mock_alsa_wrapper_, PcmAvailUpdate(_)) 608 EXPECT_CALL(mock_alsa_wrapper_, PcmAvailUpdate(_))
612 .WillRepeatedly(Return(0)); // Buffer is full. 609 .WillRepeatedly(Return(0)); // Buffer is full.
613 EXPECT_CALL(mock_callback, 610 EXPECT_CALL(mock_callback,
614 OnMoreData(test_stream, _, _, AllOf( 611 OnMoreData(_, _, AllOf(
615 Field(&AudioBuffersState::pending_bytes, 0), 612 Field(&AudioBuffersState::pending_bytes, 0),
616 Field(&AudioBuffersState::hardware_delay_bytes, 0)))) 613 Field(&AudioBuffersState::hardware_delay_bytes, 0))))
617 .WillOnce(Return(10)); 614 .WillOnce(Return(10));
618 615
619 bool source_exhausted; 616 bool source_exhausted;
620 test_stream->set_source_callback(&mock_callback); 617 test_stream->set_source_callback(&mock_callback);
621 test_stream->packet_size_ = kTestPacketSize; 618 test_stream->packet_size_ = kTestPacketSize;
622 test_stream->BufferPacket(&source_exhausted); 619 test_stream->BufferPacket(&source_exhausted);
623 620
624 EXPECT_EQ(10, test_stream->buffer_->forward_bytes()); 621 EXPECT_EQ(10, test_stream->buffer_->forward_bytes());
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
821 818
822 // TODO(ajwong): Find a way to test whether or not another task has been 819 // TODO(ajwong): Find a way to test whether or not another task has been
823 // posted so we can verify that the Alsa code will indeed break the task 820 // posted so we can verify that the Alsa code will indeed break the task
824 // posting loop. 821 // posting loop.
825 822
826 test_stream->TransitionTo(AlsaPcmOutputStream::kIsClosed); 823 test_stream->TransitionTo(AlsaPcmOutputStream::kIsClosed);
827 test_stream->Close(); 824 test_stream->Close();
828 } 825 }
829 826
830 } // namespace media 827 } // namespace media
OLDNEW
« no previous file with comments | « media/audio/linux/alsa_output.cc ('k') | media/audio/linux/cras_output.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698