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

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

Issue 17315021: Refactored DataBuffer to use unix_hacker style methods. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Inlined getters and setters on DataBuffer Created 7 years, 5 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
« no previous file with comments | « media/audio/linux/alsa_output.cc ('k') | media/audio/mac/audio_low_latency_input_mac.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/strings/stringprintf.h" 6 #include "base/strings/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 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 // Helper function to malloc the string returned by DeviceNameHint for IOID. 135 // Helper function to malloc the string returned by DeviceNameHint for IOID.
136 static char* OutputHint(Unused, Unused) { 136 static char* OutputHint(Unused, Unused) {
137 return strdup("Output"); 137 return strdup("Output");
138 } 138 }
139 139
140 // Helper function to initialize |test_stream->buffer_|. Must be called 140 // Helper function to initialize |test_stream->buffer_|. Must be called
141 // in all tests that use buffer_ without opening the stream. 141 // in all tests that use buffer_ without opening the stream.
142 void InitBuffer(AlsaPcmOutputStream* test_stream) { 142 void InitBuffer(AlsaPcmOutputStream* test_stream) {
143 DCHECK(test_stream); 143 DCHECK(test_stream);
144 packet_ = new media::DataBuffer(kTestPacketSize); 144 packet_ = new media::DataBuffer(kTestPacketSize);
145 packet_->SetDataSize(kTestPacketSize); 145 packet_->set_data_size(kTestPacketSize);
146 test_stream->buffer_.reset(new media::SeekableBuffer(0, kTestPacketSize)); 146 test_stream->buffer_.reset(new media::SeekableBuffer(0, kTestPacketSize));
147 test_stream->buffer_->Append(packet_.get()); 147 test_stream->buffer_->Append(packet_.get());
148 } 148 }
149 149
150 static const ChannelLayout kTestChannelLayout; 150 static const ChannelLayout kTestChannelLayout;
151 static const int kTestSampleRate; 151 static const int kTestSampleRate;
152 static const int kTestBitsPerSample; 152 static const int kTestBitsPerSample;
153 static const int kTestBytesPerFrame; 153 static const int kTestBytesPerFrame;
154 static const AudioParameters::Format kTestFormat; 154 static const AudioParameters::Format kTestFormat;
155 static const char kTestDeviceName[]; 155 static const char kTestDeviceName[];
(...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after
484 EXPECT_CALL(mock_alsa_wrapper_, PcmGetParams(_, _, _)) 484 EXPECT_CALL(mock_alsa_wrapper_, PcmGetParams(_, _, _))
485 .WillOnce(DoAll(SetArgumentPointee<1>(kTestFramesPerPacket), 485 .WillOnce(DoAll(SetArgumentPointee<1>(kTestFramesPerPacket),
486 SetArgumentPointee<2>(kTestFramesPerPacket / 2), 486 SetArgumentPointee<2>(kTestFramesPerPacket / 2),
487 Return(0))); 487 Return(0)));
488 AlsaPcmOutputStream* test_stream = CreateStream(kTestChannelLayout); 488 AlsaPcmOutputStream* test_stream = CreateStream(kTestChannelLayout);
489 ASSERT_TRUE(test_stream->Open()); 489 ASSERT_TRUE(test_stream->Open());
490 InitBuffer(test_stream); 490 InitBuffer(test_stream);
491 test_stream->TransitionTo(AlsaPcmOutputStream::kIsPlaying); 491 test_stream->TransitionTo(AlsaPcmOutputStream::kIsPlaying);
492 492
493 // Write a little less than half the data. 493 // Write a little less than half the data.
494 int written = packet_->GetDataSize() / kTestBytesPerFrame / 2 - 1; 494 int written = packet_->data_size() / kTestBytesPerFrame / 2 - 1;
495 EXPECT_CALL(mock_alsa_wrapper_, PcmAvailUpdate(kFakeHandle)) 495 EXPECT_CALL(mock_alsa_wrapper_, PcmAvailUpdate(kFakeHandle))
496 .WillOnce(Return(written)); 496 .WillOnce(Return(written));
497 EXPECT_CALL(mock_alsa_wrapper_, PcmWritei(kFakeHandle, packet_->GetData(), _)) 497 EXPECT_CALL(mock_alsa_wrapper_, PcmWritei(kFakeHandle, packet_->data(), _))
498 .WillOnce(Return(written)); 498 .WillOnce(Return(written));
499 499
500 test_stream->WritePacket(); 500 test_stream->WritePacket();
501 501
502 ASSERT_EQ(test_stream->buffer_->forward_bytes(), 502 ASSERT_EQ(test_stream->buffer_->forward_bytes(),
503 packet_->GetDataSize() - written * kTestBytesPerFrame); 503 packet_->data_size() - written * kTestBytesPerFrame);
504 504
505 // Write the rest. 505 // Write the rest.
506 EXPECT_CALL(mock_alsa_wrapper_, PcmAvailUpdate(kFakeHandle)) 506 EXPECT_CALL(mock_alsa_wrapper_, PcmAvailUpdate(kFakeHandle))
507 .WillOnce(Return(kTestFramesPerPacket - written)); 507 .WillOnce(Return(kTestFramesPerPacket - written));
508 EXPECT_CALL(mock_alsa_wrapper_, 508 EXPECT_CALL(mock_alsa_wrapper_,
509 PcmWritei(kFakeHandle, 509 PcmWritei(kFakeHandle,
510 packet_->GetData() + written * kTestBytesPerFrame, 510 packet_->data() + written * kTestBytesPerFrame,
511 _)) 511 _))
512 .WillOnce(Return(packet_->GetDataSize() / kTestBytesPerFrame - written)); 512 .WillOnce(Return(packet_->data_size() / kTestBytesPerFrame - written));
513 test_stream->WritePacket(); 513 test_stream->WritePacket();
514 EXPECT_EQ(0, test_stream->buffer_->forward_bytes()); 514 EXPECT_EQ(0, test_stream->buffer_->forward_bytes());
515 515
516 // Now close it and test that everything was released. 516 // Now close it and test that everything was released.
517 EXPECT_CALL(mock_alsa_wrapper_, PcmClose(kFakeHandle)) 517 EXPECT_CALL(mock_alsa_wrapper_, PcmClose(kFakeHandle))
518 .WillOnce(Return(0)); 518 .WillOnce(Return(0));
519 EXPECT_CALL(mock_alsa_wrapper_, PcmName(kFakeHandle)) 519 EXPECT_CALL(mock_alsa_wrapper_, PcmName(kFakeHandle))
520 .WillOnce(Return(kTestDeviceName)); 520 .WillOnce(Return(kTestDeviceName));
521 test_stream->Close(); 521 test_stream->Close();
522 } 522 }
(...skipping 18 matching lines...) Expand all
541 // continues normally. 541 // continues normally.
542 EXPECT_CALL(mock_alsa_wrapper_, PcmAvailUpdate(kFakeHandle)) 542 EXPECT_CALL(mock_alsa_wrapper_, PcmAvailUpdate(kFakeHandle))
543 .WillOnce(Return(kTestFramesPerPacket)); 543 .WillOnce(Return(kTestFramesPerPacket));
544 EXPECT_CALL(mock_alsa_wrapper_, PcmWritei(kFakeHandle, _, _)) 544 EXPECT_CALL(mock_alsa_wrapper_, PcmWritei(kFakeHandle, _, _))
545 .WillOnce(Return(-EINTR)); 545 .WillOnce(Return(-EINTR));
546 EXPECT_CALL(mock_alsa_wrapper_, PcmRecover(kFakeHandle, _, _)) 546 EXPECT_CALL(mock_alsa_wrapper_, PcmRecover(kFakeHandle, _, _))
547 .WillOnce(Return(0)); 547 .WillOnce(Return(0));
548 548
549 test_stream->WritePacket(); 549 test_stream->WritePacket();
550 550
551 ASSERT_EQ(test_stream->buffer_->forward_bytes(), packet_->GetDataSize()); 551 ASSERT_EQ(test_stream->buffer_->forward_bytes(), packet_->data_size());
552 552
553 // Fail the next write, and see that stop_stream_ is set. 553 // Fail the next write, and see that stop_stream_ is set.
554 EXPECT_CALL(mock_alsa_wrapper_, PcmAvailUpdate(kFakeHandle)) 554 EXPECT_CALL(mock_alsa_wrapper_, PcmAvailUpdate(kFakeHandle))
555 .WillOnce(Return(kTestFramesPerPacket)); 555 .WillOnce(Return(kTestFramesPerPacket));
556 EXPECT_CALL(mock_alsa_wrapper_, PcmWritei(kFakeHandle, _, _)) 556 EXPECT_CALL(mock_alsa_wrapper_, PcmWritei(kFakeHandle, _, _))
557 .WillOnce(Return(kTestFailedErrno)); 557 .WillOnce(Return(kTestFailedErrno));
558 EXPECT_CALL(mock_alsa_wrapper_, PcmRecover(kFakeHandle, _, _)) 558 EXPECT_CALL(mock_alsa_wrapper_, PcmRecover(kFakeHandle, _, _))
559 .WillOnce(Return(kTestFailedErrno)); 559 .WillOnce(Return(kTestFailedErrno));
560 EXPECT_CALL(mock_alsa_wrapper_, StrError(kTestFailedErrno)) 560 EXPECT_CALL(mock_alsa_wrapper_, StrError(kTestFailedErrno))
561 .WillOnce(Return(kDummyMessage)); 561 .WillOnce(Return(kDummyMessage));
562 test_stream->WritePacket(); 562 test_stream->WritePacket();
563 EXPECT_EQ(test_stream->buffer_->forward_bytes(), packet_->GetDataSize()); 563 EXPECT_EQ(test_stream->buffer_->forward_bytes(), packet_->data_size());
564 EXPECT_TRUE(test_stream->stop_stream_); 564 EXPECT_TRUE(test_stream->stop_stream_);
565 565
566 // Now close it and test that everything was released. 566 // Now close it and test that everything was released.
567 EXPECT_CALL(mock_alsa_wrapper_, PcmClose(kFakeHandle)) 567 EXPECT_CALL(mock_alsa_wrapper_, PcmClose(kFakeHandle))
568 .WillOnce(Return(0)); 568 .WillOnce(Return(0));
569 EXPECT_CALL(mock_alsa_wrapper_, PcmName(kFakeHandle)) 569 EXPECT_CALL(mock_alsa_wrapper_, PcmName(kFakeHandle))
570 .WillOnce(Return(kTestDeviceName)); 570 .WillOnce(Return(kTestDeviceName));
571 test_stream->Close(); 571 test_stream->Close();
572 } 572 }
573 573
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after
859 859
860 // TODO(ajwong): Find a way to test whether or not another task has been 860 // TODO(ajwong): Find a way to test whether or not another task has been
861 // posted so we can verify that the Alsa code will indeed break the task 861 // posted so we can verify that the Alsa code will indeed break the task
862 // posting loop. 862 // posting loop.
863 863
864 test_stream->TransitionTo(AlsaPcmOutputStream::kIsClosed); 864 test_stream->TransitionTo(AlsaPcmOutputStream::kIsClosed);
865 test_stream->Close(); 865 test_stream->Close();
866 } 866 }
867 867
868 } // namespace media 868 } // namespace media
OLDNEW
« no previous file with comments | « media/audio/linux/alsa_output.cc ('k') | media/audio/mac/audio_low_latency_input_mac.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698