diff options
author | oshima@google.com <oshima@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-12 20:56:28 +0000 |
---|---|---|
committer | oshima@google.com <oshima@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-12 20:56:28 +0000 |
commit | e2e2411a8144afd467a0b558541521355b543506 (patch) | |
tree | bc7f5924c37624220a4fd0ebabbe9044b59a7942 | |
parent | 8ee65baac4ab9e3beb67674adbc6a210e2708604 (diff) | |
download | chromium_src-e2e2411a8144afd467a0b558541521355b543506.zip chromium_src-e2e2411a8144afd467a0b558541521355b543506.tar.gz chromium_src-e2e2411a8144afd467a0b558541521355b543506.tar.bz2 |
Disable Alsa mixer in browser tests
This is a workaround for race condition bug crosbug.com/17058.
BUG=chromium-os:17058, chromium:78764
TEST=chromium os builder should stay green.
Review URL: http://codereview.chromium.org/6823082
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81304 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/chromeos/audio_handler.cc | 8 | ||||
-rw-r--r-- | chrome/browser/chromeos/audio_handler.h | 7 | ||||
-rw-r--r-- | chrome/browser/chromeos/login/screen_locker.cc | 3 | ||||
-rw-r--r-- | chrome/browser/chromeos/login/screen_locker_browsertest.cc | 16 | ||||
-rw-r--r-- | chrome/test/in_process_browser_test.cc | 8 |
5 files changed, 28 insertions, 14 deletions
diff --git a/chrome/browser/chromeos/audio_handler.cc b/chrome/browser/chromeos/audio_handler.cc index 5877021..809aedd 100644 --- a/chrome/browser/chromeos/audio_handler.cc +++ b/chrome/browser/chromeos/audio_handler.cc @@ -24,6 +24,8 @@ const double kMaxVolumeDb = 6.0; const double kVolumeBias = 0.5; // If a connection is lost, we try again this many times const int kMaxReconnectTries = 4; +// A flag to disable mixer. +bool g_disabled = false; } // namespace @@ -96,6 +98,10 @@ void AudioHandler::Disconnect() { mixer_.reset(); } +void AudioHandler::Disable() { + g_disabled = true; +} + bool AudioHandler::TryToConnect(bool async) { if (mixer_type_ == MIXER_TYPE_ALSA) { VLOG(1) << "Trying to connect to ALSA"; @@ -149,7 +155,7 @@ AudioHandler::AudioHandler() reconnect_tries_(0), max_volume_db_(kMaxVolumeDb), min_volume_db_(kMinVolumeDb), - mixer_type_(MIXER_TYPE_ALSA) { + mixer_type_(g_disabled ? MIXER_TYPE_NONE : MIXER_TYPE_ALSA) { // Start trying to connect to mixers asynchronously, starting with the current // mixer_type_. If the connection fails, another TryToConnect() for the next // mixer will be posted at that time. diff --git a/chrome/browser/chromeos/audio_handler.h b/chrome/browser/chromeos/audio_handler.h index 096c26d..a6b5c8b 100644 --- a/chrome/browser/chromeos/audio_handler.h +++ b/chrome/browser/chromeos/audio_handler.h @@ -10,6 +10,7 @@ #include "base/memory/scoped_ptr.h" #include "base/threading/thread.h" +class InProcessBrowserTest; template <typename T> struct DefaultSingletonTraits; namespace chromeos { @@ -55,6 +56,11 @@ class AudioHandler { // and constructor/destructor private as recommended for Singletons. friend struct DefaultSingletonTraits<AudioHandler>; + friend class ::InProcessBrowserTest; + // Disable audio in browser tests. This is a workaround for the bug + // crosbug.com/17058. Remove this once it's fixed. + static void Disable(); + // Connect to the current mixer_type_. bool TryToConnect(bool async); @@ -89,4 +95,3 @@ class AudioHandler { DISABLE_RUNNABLE_METHOD_REFCOUNT(chromeos::AudioHandler); #endif // CHROME_BROWSER_CHROMEOS_AUDIO_HANDLER_H_ - diff --git a/chrome/browser/chromeos/login/screen_locker.cc b/chrome/browser/chromeos/login/screen_locker.cc index c3dd699..4cd229a5 100644 --- a/chrome/browser/chromeos/login/screen_locker.cc +++ b/chrome/browser/chromeos/login/screen_locker.cc @@ -807,7 +807,8 @@ void ScreenLocker::OnLoginSuccess( bool pending_requests) { VLOG(1) << "OnLoginSuccess: Sending Unlock request."; if (authentication_start_time_.is_null()) { - LOG(ERROR) << "authentication_start_time_ is not set"; + if (!username.empty()) + LOG(WARNING) << "authentication_start_time_ is not set"; } else { base::TimeDelta delta = base::Time::Now() - authentication_start_time_; VLOG(1) << "Authentication success time: " << delta.InSecondsF(); diff --git a/chrome/browser/chromeos/login/screen_locker_browsertest.cc b/chrome/browser/chromeos/login/screen_locker_browsertest.cc index 39a9faf..8eb0077 100644 --- a/chrome/browser/chromeos/login/screen_locker_browsertest.cc +++ b/chrome/browser/chromeos/login/screen_locker_browsertest.cc @@ -253,8 +253,7 @@ void MouseMove(views::Widget* widget) { ui_controls::SendMouseMove(10, 10); } -// Crashes on chromeos. http://crbug.com/79164 -IN_PROC_BROWSER_TEST_F(ScreenLockerTest, DISABLED_TestNoPasswordWithMouseMove) { +IN_PROC_BROWSER_TEST_F(ScreenLockerTest, TestNoPasswordWithMouseMove) { TestNoPassword(MouseMove); } @@ -262,9 +261,7 @@ void MouseClick(views::Widget* widget) { ui_controls::SendMouseClick(ui_controls::RIGHT); } -// Crashes on chromeos. http://crbug.com/79164 -IN_PROC_BROWSER_TEST_F(ScreenLockerTest, - DISABLED_TestNoPasswordWithMouseClick) { +IN_PROC_BROWSER_TEST_F(ScreenLockerTest, TestNoPasswordWithMouseClick) { TestNoPassword(MouseClick); } @@ -273,13 +270,11 @@ void KeyPress(views::Widget* widget) { ui::VKEY_SPACE, false, false, false, false); } -// Crashes on chromeos. http://crbug.com/79164 -IN_PROC_BROWSER_TEST_F(ScreenLockerTest, DISABLED_TestNoPasswordWithKeyPress) { +IN_PROC_BROWSER_TEST_F(ScreenLockerTest, TestNoPasswordWithKeyPress) { TestNoPassword(KeyPress); } -// See http://crbug.com/78764. -IN_PROC_BROWSER_TEST_F(ScreenLockerTest, DISABLED_TestShowTwice) { +IN_PROC_BROWSER_TEST_F(ScreenLockerTest, TestShowTwice) { EXPECT_CALL(*mock_screen_lock_library_, NotifyScreenLockCompleted()) .Times(2) .RetiresOnSaturation(); @@ -299,8 +294,7 @@ IN_PROC_BROWSER_TEST_F(ScreenLockerTest, DISABLED_TestShowTwice) { EXPECT_FALSE(tester->IsLocked()); } -// See http://crbug.com/78764. -IN_PROC_BROWSER_TEST_F(ScreenLockerTest, DISABLED_TestEscape) { +IN_PROC_BROWSER_TEST_F(ScreenLockerTest, TestEscape) { EXPECT_CALL(*mock_screen_lock_library_, NotifyScreenLockCompleted()) .Times(1) .RetiresOnSaturation(); diff --git a/chrome/test/in_process_browser_test.cc b/chrome/test/in_process_browser_test.cc index e214e58..16fb56c 100644 --- a/chrome/test/in_process_browser_test.cc +++ b/chrome/test/in_process_browser_test.cc @@ -48,6 +48,10 @@ #include "chrome/browser/ui/views/frame/browser_frame_win.h" #endif +#if defined(OS_CHROMEOS) +#include "chrome/browser/chromeos/audio_handler.h" +#endif + namespace { void InitializeBrowser(Browser* browser) { @@ -131,6 +135,10 @@ void InProcessBrowserTest::SetUp() { // Make sure that the log directory exists. FilePath log_dir = logging::GetSessionLogFile(*command_line).DirName(); file_util::CreateDirectory(log_dir); + + // Disable audio mixer as it can cause hang. + // see http://crosbug.com/17058. + chromeos::AudioHandler::Disable(); #endif // defined(OS_CHROMEOS) SandboxInitWrapper sandbox_wrapper; |