1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CONTENT_PUBLIC_TEST_TEST_LAUNCHER_H_
6 #define CONTENT_PUBLIC_TEST_TEST_LAUNCHER_H_
10 #include "base/basictypes.h"
11 #include "base/compiler_specific.h"
20 class ContentMainDelegate
;
21 struct ContentMainParams
;
23 extern const char kEmptyTestName
[];
24 extern const char kHelpFlag
[];
25 extern const char kLaunchAsBrowser
[];
26 extern const char kRunManualTestsFlag
[];
27 extern const char kSingleProcessTestsFlag
[];
29 // Flag that causes only the kEmptyTestName test to be run.
30 extern const char kWarmupFlag
[];
32 class TestLauncherDelegate
{
34 virtual int RunTestSuite(int argc
, char** argv
) = 0;
35 virtual bool AdjustChildProcessCommandLine(
36 base::CommandLine
* command_line
,
37 const base::FilePath
& temp_data_dir
) = 0;
38 virtual void PreRunMessageLoop(base::RunLoop
* run_loop
) {}
39 virtual void PostRunMessageLoop() {}
40 virtual ContentMainDelegate
* CreateContentMainDelegate() = 0;
42 // Allows a TestLauncherDelegate to adjust the number of |default_jobs| used
43 // when --test-launcher-jobs isn't specified on the command-line.
44 virtual void AdjustDefaultParallelJobs(int* default_jobs
) {}
47 virtual ~TestLauncherDelegate();
50 // Launches tests using |launcher_delegate|. |default_jobs| is number
51 // of test jobs to be run in parallel, unless overridden from the command line.
53 int LaunchTests(TestLauncherDelegate
* launcher_delegate
,
56 char** argv
) WARN_UNUSED_RESULT
;
58 TestLauncherDelegate
* GetCurrentTestLauncherDelegate();
59 ContentMainParams
* GetContentMainParams();
61 } // namespace content
63 #endif // CONTENT_PUBLIC_TEST_TEST_LAUNCHER_H_