• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
4 
5 #ifndef CONTENT_PUBLIC_TEST_TEST_LAUNCHER_H_
6 #define CONTENT_PUBLIC_TEST_TEST_LAUNCHER_H_
7 
8 #include <string>
9 
10 #include "base/basictypes.h"
11 #include "base/compiler_specific.h"
12 
13 namespace base {
14 class CommandLine;
15 class FilePath;
16 class RunLoop;
17 }
18 
19 namespace content {
20 class ContentMainDelegate;
21 struct ContentMainParams;
22 
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[];
28 
29 // Flag that causes only the kEmptyTestName test to be run.
30 extern const char kWarmupFlag[];
31 
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;
PreRunMessageLoop(base::RunLoop * run_loop)38   virtual void PreRunMessageLoop(base::RunLoop* run_loop) {}
PostRunMessageLoop()39   virtual void PostRunMessageLoop() {}
40   virtual ContentMainDelegate* CreateContentMainDelegate() = 0;
41 
42   // Allows a TestLauncherDelegate to adjust the number of |default_jobs| used
43   // when --test-launcher-jobs isn't specified on the command-line.
AdjustDefaultParallelJobs(int * default_jobs)44   virtual void AdjustDefaultParallelJobs(int* default_jobs) {}
45 
46  protected:
47   virtual ~TestLauncherDelegate();
48 };
49 
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;
57 
58 TestLauncherDelegate* GetCurrentTestLauncherDelegate();
59 ContentMainParams* GetContentMainParams();
60 
61 }  // namespace content
62 
63 #endif  // CONTENT_PUBLIC_TEST_TEST_LAUNCHER_H_
64