OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef BASE_TEST_TEST_SUITE_H_ | 5 #ifndef BASE_TEST_TEST_SUITE_H_ |
6 #define BASE_TEST_TEST_SUITE_H_ | 6 #define BASE_TEST_TEST_SUITE_H_ |
7 | 7 |
8 // Defines a basic test suite framework for running gtest based tests. You can | 8 // Defines a basic test suite framework for running gtest based tests. You can |
9 // instantiate this class in your main function and call its Run method to run | 9 // instantiate this class in your main function and call its Run method to run |
10 // any gtest based tests that are linked into your executable. | 10 // any gtest based tests that are linked into your executable. |
(...skipping 11 matching lines...) Expand all Loading... |
22 | 22 |
23 // Instantiates TestSuite, runs it and returns exit code. | 23 // Instantiates TestSuite, runs it and returns exit code. |
24 int RunUnitTestsUsingBaseTestSuite(int argc, char **argv); | 24 int RunUnitTestsUsingBaseTestSuite(int argc, char **argv); |
25 | 25 |
26 class TestSuite { | 26 class TestSuite { |
27 public: | 27 public: |
28 // Match function used by the GetTestCount method. | 28 // Match function used by the GetTestCount method. |
29 typedef bool (*TestMatch)(const testing::TestInfo&); | 29 typedef bool (*TestMatch)(const testing::TestInfo&); |
30 | 30 |
31 TestSuite(int argc, char** argv); | 31 TestSuite(int argc, char** argv); |
32 #if defined(OS_WIN) | |
33 TestSuite(int argc, wchar_t** argv); | |
34 #endif // defined(OS_WIN) | |
35 virtual ~TestSuite(); | 32 virtual ~TestSuite(); |
36 | 33 |
37 // Returns true if the test is marked as "MAYBE_". | 34 // Returns true if the test is marked as "MAYBE_". |
38 // When using different prefixes depending on platform, we use MAYBE_ and | 35 // When using different prefixes depending on platform, we use MAYBE_ and |
39 // preprocessor directives to replace MAYBE_ with the target prefix. | 36 // preprocessor directives to replace MAYBE_ with the target prefix. |
40 static bool IsMarkedMaybe(const testing::TestInfo& test); | 37 static bool IsMarkedMaybe(const testing::TestInfo& test); |
41 | 38 |
42 void CatchMaybeTests(); | 39 void CatchMaybeTests(); |
43 | 40 |
44 void ResetCommandLine(); | 41 void ResetCommandLine(); |
(...skipping 20 matching lines...) Expand all Loading... |
65 // instead of putting complex code in your constructor/destructor. | 62 // instead of putting complex code in your constructor/destructor. |
66 | 63 |
67 virtual void Initialize(); | 64 virtual void Initialize(); |
68 virtual void Shutdown(); | 65 virtual void Shutdown(); |
69 | 66 |
70 // Make sure that we setup an AtExitManager so Singleton objects will be | 67 // Make sure that we setup an AtExitManager so Singleton objects will be |
71 // destroyed. | 68 // destroyed. |
72 scoped_ptr<base::AtExitManager> at_exit_manager_; | 69 scoped_ptr<base::AtExitManager> at_exit_manager_; |
73 | 70 |
74 private: | 71 private: |
75 void InitializeFromCommandLine(int argc, char** argv); | |
76 #if defined(OS_WIN) | |
77 void InitializeFromCommandLine(int argc, wchar_t** argv); | |
78 #endif // defined(OS_WIN) | |
79 | |
80 // Basic initialization for the test suite happens here. | 72 // Basic initialization for the test suite happens here. |
81 void PreInitialize(bool create_at_exit_manager); | 73 void PreInitialize(int argc, char** argv, bool create_at_exit_manager); |
82 | 74 |
83 bool initialized_command_line_; | 75 bool initialized_command_line_; |
84 | 76 |
85 DISALLOW_COPY_AND_ASSIGN(TestSuite); | 77 DISALLOW_COPY_AND_ASSIGN(TestSuite); |
86 }; | 78 }; |
87 | 79 |
88 } // namespace base | 80 } // namespace base |
89 | 81 |
90 // TODO(brettw) remove this. This is a temporary hack to allow WebKit to compile | 82 // TODO(brettw) remove this. This is a temporary hack to allow WebKit to compile |
91 // until we can update it to use "base::" (preventing a two-sided patch). | 83 // until we can update it to use "base::" (preventing a two-sided patch). |
92 using base::TestSuite; | 84 using base::TestSuite; |
93 | 85 |
94 #endif // BASE_TEST_TEST_SUITE_H_ | 86 #endif // BASE_TEST_TEST_SUITE_H_ |
OLD | NEW |