Upstreaming browser/ui/uikit_ui_util from iOS.
[chromium-blink-merge.git] / content / public / test / test_launcher.h
blob8e4ced4cbcec36b5c2b8c2a7e2f11e96611a7201
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_
8 #include <string>
10 #include "base/basictypes.h"
11 #include "base/compiler_specific.h"
13 namespace base {
14 class CommandLine;
15 class FilePath;
16 class RunLoop;
19 namespace content {
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 {
33 public:
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) {}
46 protected:
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.
52 // Returns exit code.
53 int LaunchTests(TestLauncherDelegate* launcher_delegate,
54 int default_jobs,
55 int argc,
56 char** argv) WARN_UNUSED_RESULT;
58 TestLauncherDelegate* GetCurrentTestLauncherDelegate();
59 ContentMainParams* GetContentMainParams();
61 } // namespace content
63 #endif // CONTENT_PUBLIC_TEST_TEST_LAUNCHER_H_