Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(63)

Side by Side Diff: base/gtest_prod_util.h

Issue 1647803004: Move base to DEPS (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « base/gmock_unittest.cc ('k') | base/guid.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #ifndef BASE_GTEST_PROD_UTIL_H_
6 #define BASE_GTEST_PROD_UTIL_H_
7
8 #include "testing/gtest/include/gtest/gtest_prod.h"
9
10 // This is a wrapper for gtest's FRIEND_TEST macro that friends
11 // test with all possible prefixes. This is very helpful when changing the test
12 // prefix, because the friend declarations don't need to be updated.
13 //
14 // Example usage:
15 //
16 // class MyClass {
17 // private:
18 // void MyMethod();
19 // FRIEND_TEST_ALL_PREFIXES(MyClassTest, MyMethod);
20 // };
21 #define FRIEND_TEST_ALL_PREFIXES(test_case_name, test_name) \
22 FRIEND_TEST(test_case_name, test_name); \
23 FRIEND_TEST(test_case_name, DISABLED_##test_name); \
24 FRIEND_TEST(test_case_name, FLAKY_##test_name)
25
26 // C++ compilers will refuse to compile the following code:
27 //
28 // namespace foo {
29 // class MyClass {
30 // private:
31 // FRIEND_TEST_ALL_PREFIXES(MyClassTest, TestMethod);
32 // bool private_var;
33 // };
34 // } // namespace foo
35 //
36 // class MyClassTest::TestMethod() {
37 // foo::MyClass foo_class;
38 // foo_class.private_var = true;
39 // }
40 //
41 // Unless you forward declare MyClassTest::TestMethod outside of namespace foo.
42 // Use FORWARD_DECLARE_TEST to do so for all possible prefixes.
43 //
44 // Example usage:
45 //
46 // FORWARD_DECLARE_TEST(MyClassTest, TestMethod);
47 //
48 // namespace foo {
49 // class MyClass {
50 // private:
51 // FRIEND_TEST_ALL_PREFIXES(::MyClassTest, TestMethod); // NOTE use of ::
52 // bool private_var;
53 // };
54 // } // namespace foo
55 //
56 // class MyClassTest::TestMethod() {
57 // foo::MyClass foo_class;
58 // foo_class.private_var = true;
59 // }
60
61 #define FORWARD_DECLARE_TEST(test_case_name, test_name) \
62 class test_case_name##_##test_name##_Test; \
63 class test_case_name##_##DISABLED_##test_name##_Test; \
64 class test_case_name##_##FLAKY_##test_name##_Test
65
66 #endif // BASE_GTEST_PROD_UTIL_H_
OLDNEW
« no previous file with comments | « base/gmock_unittest.cc ('k') | base/guid.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698