summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoroshima@google.com <oshima@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-12 20:56:28 +0000
committeroshima@google.com <oshima@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-12 20:56:28 +0000
commite2e2411a8144afd467a0b558541521355b543506 (patch)
treebc7f5924c37624220a4fd0ebabbe9044b59a7942
parent8ee65baac4ab9e3beb67674adbc6a210e2708604 (diff)
downloadchromium_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.cc8
-rw-r--r--chrome/browser/chromeos/audio_handler.h7
-rw-r--r--chrome/browser/chromeos/login/screen_locker.cc3
-rw-r--r--chrome/browser/chromeos/login/screen_locker_browsertest.cc16
-rw-r--r--chrome/test/in_process_browser_test.cc8
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;