From 78859c7d87db4433d068533b104c7c1addf7e7eb Mon Sep 17 00:00:00 2001 From: "robertshield@chromium.org" Date: Tue, 21 Sep 2010 17:44:21 +0000 Subject: Ensure correct timeout ordering for timeout values managed by test_timeouts.cc. Also actually call the timeout initialization when running mini_installer_tests.exe. BUG=0 TEST=0 Review URL: http://codereview.chromium.org/3447009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60070 0039d316-1c4b-4281-b951-d872f2087c98 --- .../test/mini_installer_test/run_all_unittests.cc | 4 +++ chrome/test/test_timeouts.cc | 36 +++++++++++++++------- 2 files changed, 29 insertions(+), 11 deletions(-) (limited to 'chrome/test') diff --git a/chrome/test/mini_installer_test/run_all_unittests.cc b/chrome/test/mini_installer_test/run_all_unittests.cc index a0f6159..13229d2 100644 --- a/chrome/test/mini_installer_test/run_all_unittests.cc +++ b/chrome/test/mini_installer_test/run_all_unittests.cc @@ -9,6 +9,7 @@ #include "chrome/common/chrome_switches.h" #include "chrome/installer/util/util_constants.h" #include "chrome/test/mini_installer_test/mini_installer_test_constants.h" +#include "chrome/test/test_timeouts.h" #include "chrome_mini_installer.h" void BackUpProfile(bool chrome_frame) { @@ -69,5 +70,8 @@ int main(int argc, char** argv) { return 1; } + // Initialize the timeouts used by the test. + TestTimeouts::Initialize(); + return test_suite.Run(); } diff --git a/chrome/test/test_timeouts.cc b/chrome/test/test_timeouts.cc index 2f7a1bc..c75d857 100644 --- a/chrome/test/test_timeouts.cc +++ b/chrome/test/test_timeouts.cc @@ -11,7 +11,11 @@ namespace { -void InitializeTimeout(const char* switch_name, int* value) { +// Sets value to the greatest of: +// 1) value's current value. +// 2) min_value. +// 3) the numerical value given by switch_name on the command line. +void InitializeTimeout(const char* switch_name, int min_value, int* value) { DCHECK(value); if (CommandLine::ForCurrentProcess()->HasSwitch(switch_name)) { std::string string_value( @@ -20,6 +24,15 @@ void InitializeTimeout(const char* switch_name, int* value) { base::StringToInt(string_value, &timeout); *value = std::max(*value, timeout); } + *value = std::max(*value, min_value); +} + +// Sets value to the greatest of: +// 1) value's current value. +// 2) 0 +// 3) the numerical value given by switch_name on the command line. +void InitializeTimeout(const char* switch_name, int* value) { + InitializeTimeout(switch_name, 0, value); } } // namespace @@ -54,20 +67,21 @@ void TestTimeouts::Initialize() { } initialized_ = true; - // The timeout values should be increasing in the right order, and while - // initially they are, overrides may not respect this. Move the checks to - // before the point at which they get overridden while all build scripts - // are updated. - // TODO(robertshield): Move these checks back once the bots are updated. + // Note that these timeouts MUST be initialized in the correct order as + // per the CHECKS below. + InitializeTimeout(switches::kUiTestActionTimeout, &action_timeout_ms_); + InitializeTimeout(switches::kUiTestActionMaxTimeout, action_timeout_ms_, + &action_max_timeout_ms_); + InitializeTimeout(switches::kTestLargeTimeout, action_max_timeout_ms_, + &large_test_timeout_ms_); + InitializeTimeout(switches::kUiTestTimeout, large_test_timeout_ms_, + &huge_test_timeout_ms_); + + // The timeout values should be increasing in the right order. CHECK(action_timeout_ms_ <= action_max_timeout_ms_); CHECK(action_max_timeout_ms_ <= large_test_timeout_ms_); CHECK(large_test_timeout_ms_ <= huge_test_timeout_ms_); - InitializeTimeout(switches::kUiTestActionTimeout, &action_timeout_ms_); - InitializeTimeout(switches::kUiTestActionMaxTimeout, &action_max_timeout_ms_); - InitializeTimeout(switches::kTestLargeTimeout, &large_test_timeout_ms_); - InitializeTimeout(switches::kUiTestTimeout, &huge_test_timeout_ms_); - InitializeTimeout(switches::kUiTestSleepTimeout, &sleep_timeout_ms_); InitializeTimeout(switches::kUiTestCommandExecutionTimeout, &command_execution_timeout_ms_); -- cgit v1.1