diff options
author | Paweł Hajdan, Jr <phajdan.jr@chromium.org> | 2014-08-25 14:39:29 +0200 |
---|---|---|
committer | Paweł Hajdan, Jr <phajdan.jr@chromium.org> | 2014-08-25 12:40:59 +0000 |
commit | e8e762a3d4f51fc5d765cf23dd8d3f7d138d779c (patch) | |
tree | 8d21f3c4a0f13aa1e4f587d4387eaba5c99c8117 | |
parent | a4b8fb8fdb4580f847e54e1e59419aa8182809e7 (diff) | |
download | chromium_src-e8e762a3d4f51fc5d765cf23dd8d3f7d138d779c.zip chromium_src-e8e762a3d4f51fc5d765cf23dd8d3f7d138d779c.tar.gz chromium_src-e8e762a3d4f51fc5d765cf23dd8d3f7d138d779c.tar.bz2 |
Implement unit test specific test launcher timeout
BUG=402213
R=dalecurtis@chromium.org, jam@chromium.org
Review URL: https://codereview.chromium.org/476543004
Cr-Commit-Position: refs/heads/master@{#291673}
-rw-r--r-- | base/test/launcher/unit_test_launcher.cc | 6 | ||||
-rw-r--r-- | base/test/test_switches.cc | 1 | ||||
-rw-r--r-- | base/test/test_switches.h | 1 | ||||
-rw-r--r-- | base/test/test_timeouts.cc | 9 | ||||
-rw-r--r-- | base/test/test_timeouts.h | 10 | ||||
-rw-r--r-- | media/base/demuxer_perftest.cc | 35 |
6 files changed, 42 insertions, 20 deletions
diff --git a/base/test/launcher/unit_test_launcher.cc b/base/test/launcher/unit_test_launcher.cc index 0cbae2f..57552e0 100644 --- a/base/test/launcher/unit_test_launcher.cc +++ b/base/test/launcher/unit_test_launcher.cc @@ -186,7 +186,7 @@ class UnitTestLauncherDelegate : public TestLauncherDelegate { test_launcher->LaunchChildGTestProcess( cmd_line, std::string(), - TestTimeouts::test_launcher_timeout(), + TestTimeouts::test_launcher_unit_timeout(), use_job_objects_ ? TestLauncher::USE_JOB_OBJECTS : 0, Bind(&UnitTestLauncherDelegate::SerialGTestCallback, Unretained(this), @@ -218,7 +218,7 @@ class UnitTestLauncherDelegate : public TestLauncherDelegate { // Note: do NOT parse child's stdout to do that, it's known to be // unreliable (e.g. buffering issues can mix up the output). base::TimeDelta timeout = - test_names.size() * TestTimeouts::test_launcher_timeout(); + test_names.size() * TestTimeouts::test_launcher_unit_timeout(); GTestCallbackState callback_state; callback_state.test_launcher = test_launcher; @@ -345,7 +345,7 @@ class UnitTestLauncherDelegate : public TestLauncherDelegate { // For consistent handling of tests independent of order and other // factors, mark them as timing out. if (test_result.elapsed_time > - TestTimeouts::test_launcher_timeout()) { + TestTimeouts::test_launcher_unit_timeout()) { test_result.status = TestResult::TEST_TIMEOUT; } } diff --git a/base/test/test_switches.cc b/base/test/test_switches.cc index c970fd2..b23538c 100644 --- a/base/test/test_switches.cc +++ b/base/test/test_switches.cc @@ -50,6 +50,7 @@ const char switches::kTestLauncherTotalShards[] = // Time (in milliseconds) that the tests should wait before timing out. const char switches::kTestLauncherTimeout[] = "test-launcher-timeout"; +const char switches::kTestLauncherUnitTimeout[] = "test-launcher-unit-timeout"; // TODO(phajdan.jr): Clean up the switch names. const char switches::kTestTinyTimeout[] = "test-tiny-timeout"; const char switches::kUiTestActionTimeout[] = "ui-test-action-timeout"; diff --git a/base/test/test_switches.h b/base/test/test_switches.h index c228cf0..b7d0860 100644 --- a/base/test/test_switches.h +++ b/base/test/test_switches.h @@ -21,6 +21,7 @@ extern const char kTestLauncherPrintTestStdio[]; extern const char kTestLauncherShardIndex[]; extern const char kTestLauncherTotalShards[]; extern const char kTestLauncherTimeout[]; +extern const char kTestLauncherUnitTimeout[]; extern const char kTestTinyTimeout[]; extern const char kUiTestActionTimeout[]; extern const char kUiTestActionMaxTimeout[]; diff --git a/base/test/test_timeouts.cc b/base/test/test_timeouts.cc index 7392450..92bcf9b 100644 --- a/base/test/test_timeouts.cc +++ b/base/test/test_timeouts.cc @@ -72,6 +72,7 @@ int TestTimeouts::action_max_timeout_ms_ = 45000; int TestTimeouts::action_max_timeout_ms_ = 30000; #endif // NDEBUG +int TestTimeouts::test_launcher_unit_timeout_ms_ = 5000; int TestTimeouts::test_launcher_timeout_ms_ = 45000; // static @@ -98,12 +99,16 @@ void TestTimeouts::Initialize() { &action_max_timeout_ms_); // Test launcher timeout is independent from anything above action timeout. - InitializeTimeout(switches::kTestLauncherTimeout, action_timeout_ms_, + InitializeTimeout(switches::kTestLauncherUnitTimeout, action_timeout_ms_, + &test_launcher_unit_timeout_ms_); + InitializeTimeout(switches::kTestLauncherTimeout, + test_launcher_unit_timeout_ms_, &test_launcher_timeout_ms_); // The timeout values should be increasing in the right order. CHECK(tiny_timeout_ms_ <= action_timeout_ms_); CHECK(action_timeout_ms_ <= action_max_timeout_ms_); - CHECK(action_timeout_ms_ <= test_launcher_timeout_ms_); + CHECK(action_timeout_ms_ <= test_launcher_unit_timeout_ms_); + CHECK(test_launcher_unit_timeout_ms_ <= test_launcher_timeout_ms_); } diff --git a/base/test/test_timeouts.h b/base/test/test_timeouts.h index 2819e4a..5f79264 100644 --- a/base/test/test_timeouts.h +++ b/base/test/test_timeouts.h @@ -38,7 +38,14 @@ class TestTimeouts { return base::TimeDelta::FromMilliseconds(action_max_timeout_ms_); } - // Timeout for a single test launched used built-in test launcher. + // Timeout for a single unit test launched using built-in test launcher. + // Do not use outside of the test launcher. + static base::TimeDelta test_launcher_unit_timeout() { + DCHECK(initialized_); + return base::TimeDelta::FromMilliseconds(test_launcher_unit_timeout_ms_); + } + + // Timeout for a single test launched using built-in test launcher. // Do not use outside of the test launcher. static base::TimeDelta test_launcher_timeout() { DCHECK(initialized_); @@ -51,6 +58,7 @@ class TestTimeouts { static int tiny_timeout_ms_; static int action_timeout_ms_; static int action_max_timeout_ms_; + static int test_launcher_unit_timeout_ms_; static int test_launcher_timeout_ms_; DISALLOW_IMPLICIT_CONSTRUCTORS(TestTimeouts); diff --git a/media/base/demuxer_perftest.cc b/media/base/demuxer_perftest.cc index ad67363..144b053 100644 --- a/media/base/demuxer_perftest.cc +++ b/media/base/demuxer_perftest.cc @@ -207,26 +207,33 @@ static void RunDemuxerBenchmark(const std::string& filename) { true); } -#if defined(OS_WIN) -// http://crbug.com/399002 -#define MAYBE_Demuxer DISABLED_Demuxer -#else -#define MAYBE_Demuxer Demuxer -#endif -TEST(DemuxerPerfTest, MAYBE_Demuxer) { - RunDemuxerBenchmark("bear.ogv"); - RunDemuxerBenchmark("bear-640x360.webm"); - RunDemuxerBenchmark("sfx_s16le.wav"); +class DemuxerPerfTest : public testing::TestWithParam<const char*> { +}; + +const char* kDemuxerBenchmarks[] = { + "bear.ogv", + "bear-640x360.webm", + "sfx_s16le.wav", #if defined(USE_PROPRIETARY_CODECS) - RunDemuxerBenchmark("bear-1280x720.mp4"); - RunDemuxerBenchmark("sfx.mp3"); + "bear-1280x720.mp4", + "sfx.mp3", #endif #if defined(OS_CHROMEOS) - RunDemuxerBenchmark("bear.flac"); + "bear.flac", #endif #if defined(USE_PROPRIETARY_CODECS) && defined(OS_CHROMEOS) - RunDemuxerBenchmark("bear.avi"); + "bear.avi", #endif +}; + +TEST_P(DemuxerPerfTest, Demuxer) { + RunDemuxerBenchmark(GetParam()); } +#if !defined(OS_WIN) +// http://crbug.com/399002 +INSTANTIATE_TEST_CASE_P(, DemuxerPerfTest, + testing::ValuesIn(kDemuxerBenchmarks)); +#endif // !defined(OS_WIN) + } // namespace media |