| Index: media/audio/fake_audio_worker_unittest.cc
|
| diff --git a/media/audio/fake_audio_consumer_unittest.cc b/media/audio/fake_audio_worker_unittest.cc
|
| similarity index 64%
|
| rename from media/audio/fake_audio_consumer_unittest.cc
|
| rename to media/audio/fake_audio_worker_unittest.cc
|
| index ab97eaea8c76c78fa263bd41793d26b58be50a00..49a69d2b08641175675f4a6c72f736e409c74696 100644
|
| --- a/media/audio/fake_audio_consumer_unittest.cc
|
| +++ b/media/audio/fake_audio_worker_unittest.cc
|
| @@ -6,7 +6,7 @@
|
| #include "base/message_loop/message_loop.h"
|
| #include "base/time/time.h"
|
| #include "media/audio/audio_parameters.h"
|
| -#include "media/audio/fake_audio_consumer.h"
|
| +#include "media/audio/fake_audio_worker.h"
|
| #include "media/audio/simple_sources.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| @@ -14,57 +14,57 @@ namespace media {
|
|
|
| static const int kTestCallbacks = 5;
|
|
|
| -class FakeAudioConsumerTest : public testing::Test {
|
| +class FakeAudioWorkerTest : public testing::Test {
|
| public:
|
| - FakeAudioConsumerTest()
|
| + FakeAudioWorkerTest()
|
| : params_(
|
| AudioParameters::AUDIO_FAKE, CHANNEL_LAYOUT_STEREO, 44100, 8, 128),
|
| - fake_consumer_(message_loop_.message_loop_proxy(), params_),
|
| - source_(params_.channels(), 200.0, params_.sample_rate()) {
|
| + fake_worker_(message_loop_.message_loop_proxy(), params_),
|
| + seen_callbacks_(0) {
|
| time_between_callbacks_ = base::TimeDelta::FromMicroseconds(
|
| params_.frames_per_buffer() * base::Time::kMicrosecondsPerSecond /
|
| static_cast<float>(params_.sample_rate()));
|
| }
|
|
|
| - ~FakeAudioConsumerTest() override {}
|
| + ~FakeAudioWorkerTest() override {}
|
|
|
| - void ConsumeData(AudioBus* audio_bus) {
|
| - source_.OnMoreData(audio_bus, 0);
|
| + void CalledByFakeWorker() {
|
| + seen_callbacks_++;
|
| }
|
|
|
| void RunOnAudioThread() {
|
| ASSERT_TRUE(message_loop_.message_loop_proxy()->BelongsToCurrentThread());
|
| - fake_consumer_.Start(base::Bind(
|
| - &FakeAudioConsumerTest::ConsumeData, base::Unretained(this)));
|
| + fake_worker_.Start(base::Bind(
|
| + &FakeAudioWorkerTest::CalledByFakeWorker, base::Unretained(this)));
|
| }
|
|
|
| void RunOnceOnAudioThread() {
|
| ASSERT_TRUE(message_loop_.message_loop_proxy()->BelongsToCurrentThread());
|
| RunOnAudioThread();
|
| - // Start() should immediately post a task to run the source callback, so we
|
| + // Start() should immediately post a task to run the callback, so we
|
| // should end up with only a single callback being run.
|
| message_loop_.PostTask(FROM_HERE, base::Bind(
|
| - &FakeAudioConsumerTest::EndTest, base::Unretained(this), 1));
|
| + &FakeAudioWorkerTest::EndTest, base::Unretained(this), 1));
|
| }
|
|
|
| void StopStartOnAudioThread() {
|
| ASSERT_TRUE(message_loop_.message_loop_proxy()->BelongsToCurrentThread());
|
| - fake_consumer_.Stop();
|
| + fake_worker_.Stop();
|
| RunOnAudioThread();
|
| }
|
|
|
| void TimeCallbacksOnAudioThread(int callbacks) {
|
| ASSERT_TRUE(message_loop_.message_loop_proxy()->BelongsToCurrentThread());
|
|
|
| - if (source_.callbacks() == 0) {
|
| + if (seen_callbacks_ == 0) {
|
| RunOnAudioThread();
|
| start_time_ = base::TimeTicks::Now();
|
| }
|
|
|
| // Keep going until we've seen the requested number of callbacks.
|
| - if (source_.callbacks() < callbacks) {
|
| + if (seen_callbacks_ < callbacks) {
|
| message_loop_.PostDelayedTask(FROM_HERE, base::Bind(
|
| - &FakeAudioConsumerTest::TimeCallbacksOnAudioThread,
|
| + &FakeAudioWorkerTest::TimeCallbacksOnAudioThread,
|
| base::Unretained(this), callbacks), time_between_callbacks_ / 2);
|
| } else {
|
| end_time_ = base::TimeTicks::Now();
|
| @@ -74,46 +74,45 @@ class FakeAudioConsumerTest : public testing::Test {
|
|
|
| void EndTest(int callbacks) {
|
| ASSERT_TRUE(message_loop_.message_loop_proxy()->BelongsToCurrentThread());
|
| - fake_consumer_.Stop();
|
| - EXPECT_LE(callbacks, source_.callbacks());
|
| + fake_worker_.Stop();
|
| + EXPECT_LE(callbacks, seen_callbacks_);
|
| message_loop_.PostTask(FROM_HERE, base::MessageLoop::QuitClosure());
|
| }
|
|
|
| protected:
|
| base::MessageLoop message_loop_;
|
| AudioParameters params_;
|
| - FakeAudioConsumer fake_consumer_;
|
| - SineWaveAudioSource source_;
|
| + FakeAudioWorker fake_worker_;
|
| base::TimeTicks start_time_;
|
| base::TimeTicks end_time_;
|
| base::TimeDelta time_between_callbacks_;
|
| + int seen_callbacks_;
|
|
|
| private:
|
| - DISALLOW_COPY_AND_ASSIGN(FakeAudioConsumerTest);
|
| + DISALLOW_COPY_AND_ASSIGN(FakeAudioWorkerTest);
|
| };
|
|
|
| -// Ensure the fake audio stream runs on the audio thread and handles fires
|
| -// callbacks to the AudioSourceCallback.
|
| -TEST_F(FakeAudioConsumerTest, FakeStreamBasicCallback) {
|
| +// Ensure the worker runs on the audio thread and fires callbacks.
|
| +TEST_F(FakeAudioWorkerTest, FakeBasicCallback) {
|
| message_loop_.PostTask(FROM_HERE, base::Bind(
|
| - &FakeAudioConsumerTest::RunOnceOnAudioThread,
|
| + &FakeAudioWorkerTest::RunOnceOnAudioThread,
|
| base::Unretained(this)));
|
| message_loop_.Run();
|
| }
|
|
|
| // Ensure the time between callbacks is sane.
|
| -TEST_F(FakeAudioConsumerTest, TimeBetweenCallbacks) {
|
| +TEST_F(FakeAudioWorkerTest, TimeBetweenCallbacks) {
|
| message_loop_.PostTask(FROM_HERE, base::Bind(
|
| - &FakeAudioConsumerTest::TimeCallbacksOnAudioThread,
|
| + &FakeAudioWorkerTest::TimeCallbacksOnAudioThread,
|
| base::Unretained(this), kTestCallbacks));
|
| message_loop_.Run();
|
|
|
| // There are only (kTestCallbacks - 1) intervals between kTestCallbacks.
|
| base::TimeDelta actual_time_between_callbacks =
|
| - (end_time_ - start_time_) / (source_.callbacks() - 1);
|
| + (end_time_ - start_time_) / (seen_callbacks_ - 1);
|
|
|
| // Ensure callback time is no faster than the expected time between callbacks.
|
| - EXPECT_TRUE(actual_time_between_callbacks >= time_between_callbacks_);
|
| + EXPECT_GE(actual_time_between_callbacks, time_between_callbacks_);
|
|
|
| // Softly check if the callback time is no slower than twice the expected time
|
| // between callbacks. Since this test runs on the bots we can't be too strict
|
| @@ -122,17 +121,17 @@ TEST_F(FakeAudioConsumerTest, TimeBetweenCallbacks) {
|
| LOG(ERROR) << "Time between fake audio callbacks is too large!";
|
| }
|
|
|
| -// Ensure Start()/Stop() on the stream doesn't generate too many callbacks. See
|
| -// http://crbug.com/159049
|
| -TEST_F(FakeAudioConsumerTest, StartStopClearsCallbacks) {
|
| +// Ensure Start()/Stop() on the worker doesn't generate too many callbacks. See
|
| +// http://crbug.com/159049.
|
| +TEST_F(FakeAudioWorkerTest, StartStopClearsCallbacks) {
|
| message_loop_.PostTask(FROM_HERE, base::Bind(
|
| - &FakeAudioConsumerTest::TimeCallbacksOnAudioThread,
|
| + &FakeAudioWorkerTest::TimeCallbacksOnAudioThread,
|
| base::Unretained(this), kTestCallbacks));
|
|
|
| // Issue a Stop() / Start() in between expected callbacks to maximize the
|
| - // chance of catching the FakeAudioOutputStream doing the wrong thing.
|
| + // chance of catching the worker doing the wrong thing.
|
| message_loop_.PostDelayedTask(FROM_HERE, base::Bind(
|
| - &FakeAudioConsumerTest::StopStartOnAudioThread,
|
| + &FakeAudioWorkerTest::StopStartOnAudioThread,
|
| base::Unretained(this)), time_between_callbacks_ / 2);
|
|
|
| // EndTest() will ensure the proper number of callbacks have occurred.
|
|
|