diff options
author | tommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-11 13:34:24 +0000 |
---|---|---|
committer | tommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-11 13:34:24 +0000 |
commit | a954a701bed73e062c5589510691aa4ce0e219ab (patch) | |
tree | 90175fcd188d4c83a41c9accd1fdfff57515701d | |
parent | 8002eaa734d00b164df5bb79e2beaa9eff9354a5 (diff) | |
download | chromium_src-a954a701bed73e062c5589510691aa4ce0e219ab.zip chromium_src-a954a701bed73e062c5589510691aa4ce0e219ab.tar.gz chromium_src-a954a701bed73e062c5589510691aa4ce0e219ab.tar.bz2 |
Enable the webrtc audio tests on the build bots that have audio hardware.
BUG=none
TEST=This enables the audio tests in content_unittests on bots with audio hardware.
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=130019
Review URL: https://chromiumcodereview.appspot.com/9921035
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@131757 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | content/renderer/media/webrtc_audio_device_unittest.cc | 27 | ||||
-rw-r--r-- | content/test/webrtc_audio_device_test.cc | 6 | ||||
-rw-r--r-- | content/test/webrtc_audio_device_test.h | 4 |
3 files changed, 23 insertions, 14 deletions
diff --git a/content/renderer/media/webrtc_audio_device_unittest.cc b/content/renderer/media/webrtc_audio_device_unittest.cc index e9323f2..cf3a453 100644 --- a/content/renderer/media/webrtc_audio_device_unittest.cc +++ b/content/renderer/media/webrtc_audio_device_unittest.cc @@ -75,13 +75,6 @@ class AudioUtilNoHardware : public AudioUtilInterface { DISALLOW_COPY_AND_ASSIGN(AudioUtilNoHardware); }; -bool IsRunningHeadless() { - scoped_ptr<base::Environment> env(base::Environment::Create()); - if (env->HasVar("CHROME_HEADLESS")) - return true; - return false; -} - // Return true if at least one element in the array matches |value|. bool FindElementInArray(int* array, int size, int value) { return (std::find(&array[0], &array[0] + size, value) != &array[size]); @@ -106,7 +99,7 @@ bool HardwareSampleRatesAreValid() { if (!FindElementInArray(valid_input_rates, arraysize(valid_input_rates), input_sample_rate)) { - DLOG(WARNING) << "Non-supported input sample rate detected."; + LOG(WARNING) << "Non-supported input sample rate detected."; return false; } @@ -115,7 +108,7 @@ bool HardwareSampleRatesAreValid() { static_cast<int>(audio_hardware::GetOutputSampleRate()); if (!FindElementInArray(valid_output_rates, arraysize(valid_output_rates), output_sample_rate)) { - DLOG(WARNING) << "Non-supported output sample rate detected."; + LOG(WARNING) << "Non-supported output sample rate detected."; return false; } @@ -260,8 +253,10 @@ TEST_F(WebRTCAudioDeviceTest, Construct) { // verify that streaming starts correctly. // Disabled when running headless since the bots don't have the required config. TEST_F(WebRTCAudioDeviceTest, StartPlayout) { - if (IsRunningHeadless()) + if (!has_output_devices_) { + LOG(WARNING) << "No output device detected."; return; + } AudioUtil audio_util; SetAudioUtilCallback(&audio_util); @@ -332,8 +327,10 @@ TEST_F(WebRTCAudioDeviceTest, StartPlayout) { // that the audio capturing starts as it should. // Disabled when running headless since the bots don't have the required config. TEST_F(WebRTCAudioDeviceTest, StartRecording) { - if (IsRunningHeadless()) + if (!has_input_devices_ || !has_output_devices_) { + LOG(WARNING) << "Missing audio devices."; return; + } AudioUtil audio_util; SetAudioUtilCallback(&audio_util); @@ -399,8 +396,10 @@ TEST_F(WebRTCAudioDeviceTest, StartRecording) { // Uses WebRtcAudioDeviceImpl to play a local wave file. // Disabled when running headless since the bots don't have the required config. TEST_F(WebRTCAudioDeviceTest, PlayLocalFile) { - if (IsRunningHeadless()) + if (!has_output_devices_) { + LOG(WARNING) << "No output device detected."; return; + } std::string file_path( GetTestDataPath(FILE_PATH_LITERAL("speechmusic_mono_16kHz.pcm"))); @@ -468,8 +467,10 @@ TEST_F(WebRTCAudioDeviceTest, PlayLocalFile) { // TODO(henrika): improve quality by using a wideband codec, enabling noise- // suppressions etc. TEST_F(WebRTCAudioDeviceTest, FullDuplexAudioWithAGC) { - if (IsRunningHeadless()) + if (!has_output_devices_ || !has_input_devices_) { + LOG(WARNING) << "Missing audio devices."; return; + } AudioUtil audio_util; SetAudioUtilCallback(&audio_util); diff --git a/content/test/webrtc_audio_device_test.cc b/content/test/webrtc_audio_device_test.cc index 0f11917..c9e72ec6 100644 --- a/content/test/webrtc_audio_device_test.cc +++ b/content/test/webrtc_audio_device_test.cc @@ -88,7 +88,8 @@ ACTION_P(QuitMessageLoop, loop_or_proxy) { } // end namespace WebRTCAudioDeviceTest::WebRTCAudioDeviceTest() - : render_thread_(NULL), audio_util_callback_(NULL) { + : render_thread_(NULL), audio_util_callback_(NULL), + has_input_devices_(false), has_output_devices_(false) { } WebRTCAudioDeviceTest::~WebRTCAudioDeviceTest() {} @@ -171,6 +172,9 @@ void WebRTCAudioDeviceTest::InitializeIOThread(const char* thread_name) { resource_context_->set_request_context(test_request_context_.get()); media_observer_.reset(new MockMediaObserver()); + has_input_devices_ = audio_manager_->HasAudioInputDevices(); + has_output_devices_ = audio_manager_->HasAudioOutputDevices(); + // Create an IPC channel that handles incoming messages on the IO thread. CreateChannel(thread_name); } diff --git a/content/test/webrtc_audio_device_test.h b/content/test/webrtc_audio_device_test.h index dfe9f27..e360f4f 100644 --- a/content/test/webrtc_audio_device_test.h +++ b/content/test/webrtc_audio_device_test.h @@ -184,6 +184,10 @@ class WebRTCAudioDeviceTest scoped_ptr<content::TestBrowserThread> io_thread_; // COM initialization on the IO thread for Windows. scoped_ptr<base::win::ScopedCOMInitializer> initialize_com_; + + // These are initialized when we set up our IO thread. + bool has_input_devices_; + bool has_output_devices_; }; // A very basic implementation of webrtc::Transport that acts as a transport |