test_launcher.h revision 5821806d5e7f356e8fa4b058a389a808ea183019
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 13class CommandLine; 14class FilePath; 15 16namespace base { 17class RunLoop; 18} 19 20namespace content { 21class ContentMainDelegate; 22 23extern const char kEmptyTestName[]; 24extern const char kGTestFilterFlag[]; 25extern const char kGTestHelpFlag[]; 26extern const char kGTestListTestsFlag[]; 27extern const char kGTestRepeatFlag[]; 28extern const char kGTestRunDisabledTestsFlag[]; 29extern const char kGTestOutputFlag[]; 30extern const char kLaunchAsBrowser[]; 31extern const char kSingleProcessTestsFlag[]; 32extern const char kSingleProcessTestsAndChromeFlag[]; 33extern const char kRunManualTestsFlag[]; 34extern const char kHelpFlag[]; 35 36// Flag that causes only the kEmptyTestName test to be run. 37extern const char kWarmupFlag[]; 38 39class TestLauncherDelegate { 40 public: 41 virtual std::string GetEmptyTestName() = 0; 42 virtual int RunTestSuite(int argc, char** argv) = 0; 43 virtual bool AdjustChildProcessCommandLine(CommandLine* command_line, 44 const FilePath& temp_data_dir) = 0; 45 virtual void PreRunMessageLoop(base::RunLoop* run_loop) {} 46 virtual void PostRunMessageLoop() {} 47 virtual ContentMainDelegate* CreateContentMainDelegate() = 0; 48 49 protected: 50 virtual ~TestLauncherDelegate(); 51}; 52 53int LaunchTests(TestLauncherDelegate* launcher_delegate, 54 int argc, 55 char** argv) WARN_UNUSED_RESULT; 56 57TestLauncherDelegate* GetCurrentTestLauncherDelegate(); 58 59} // namespace content 60 61#endif // CONTENT_PUBLIC_TEST_TEST_LAUNCHER_H_ 62