1// RUN: %check_clang_tidy %s google-upgrade-googletest-case %t -- -- -I%S/Inputs
2// RUN: %check_clang_tidy -check-suffix=NOSUITE %s google-upgrade-googletest-case %t -- -- -DNOSUITE -I%S/Inputs/gtest/nosuite
3
4#include "gtest/gtest.h"
5
6// When including a version of googletest without the replacement names, this
7// check should not produce any diagnostics. The following dummy fix is present
8// because `check_clang_tidy.py` requires at least one warning, fix or note.
9void Dummy() {}
10// CHECK-FIXES-NOSUITE: void Dummy() {}
11
12// ----------------------------------------------------------------------------
13// Macros
14
15TYPED_TEST_CASE(FooTest, FooTypes);
16// CHECK-MESSAGES: [[@LINE-1]]:1: warning: Google Test APIs named with 'case' are deprecated; use equivalent APIs named with 'suite'
17// CHECK-FIXES: TYPED_TEST_SUITE(FooTest, FooTypes);
18TYPED_TEST_CASE_P(FooTest);
19// CHECK-MESSAGES: [[@LINE-1]]:1: warning: Google Test APIs named with 'case'
20// CHECK-FIXES: TYPED_TEST_SUITE_P(FooTest);
21REGISTER_TYPED_TEST_CASE_P(FooTest, FooTestName);
22// CHECK-MESSAGES: [[@LINE-1]]:1: warning: Google Test APIs named with 'case'
23// CHECK-FIXES: REGISTER_TYPED_TEST_SUITE_P(FooTest, FooTestName);
24INSTANTIATE_TYPED_TEST_CASE_P(FooPrefix, FooTest, FooTypes);
25// CHECK-MESSAGES: [[@LINE-1]]:1: warning: Google Test APIs named with 'case'
26// CHECK-FIXES: INSTANTIATE_TYPED_TEST_SUITE_P(FooPrefix, FooTest, FooTypes);
27
28#ifdef TYPED_TEST_CASE
29// CHECK-MESSAGES: [[@LINE-1]]:2: warning: Google Test APIs named with 'case'
30#undef TYPED_TEST_CASE
31// CHECK-MESSAGES: [[@LINE-1]]:8: warning: Google Test APIs named with 'case'
32#define TYPED_TEST_CASE(CaseName, Types, ...)
33#endif
34
35#ifdef TYPED_TEST_CASE_P
36// CHECK-MESSAGES: [[@LINE-1]]:2: warning: Google Test APIs named with 'case'
37#undef TYPED_TEST_CASE_P
38// CHECK-MESSAGES: [[@LINE-1]]:8: warning: Google Test APIs named with 'case'
39#define TYPED_TEST_CASE_P(SuiteName)
40#endif
41
42#ifdef REGISTER_TYPED_TEST_CASE_P
43// CHECK-MESSAGES: [[@LINE-1]]:2: warning: Google Test APIs named with 'case'
44#undef REGISTER_TYPED_TEST_CASE_P
45// CHECK-MESSAGES: [[@LINE-1]]:8: warning: Google Test APIs named with 'case'
46#define REGISTER_TYPED_TEST_CASE_P(SuiteName, ...)
47#endif
48
49#ifdef INSTANTIATE_TYPED_TEST_CASE_P
50// CHECK-MESSAGES: [[@LINE-1]]:2: warning: Google Test APIs named with 'case'
51#undef INSTANTIATE_TYPED_TEST_CASE_P
52// CHECK-MESSAGES: [[@LINE-1]]:8: warning: Google Test APIs named with 'case'
53#define INSTANTIATE_TYPED_TEST_CASE_P(Prefix, SuiteName, Types, ...)
54#endif
55
56TYPED_TEST_CASE(FooTest, FooTypes);
57TYPED_TEST_CASE_P(FooTest);
58REGISTER_TYPED_TEST_CASE_P(FooTest, FooTestName);
59INSTANTIATE_TYPED_TEST_CASE_P(FooPrefix, FooTest, FooTypes);
60
61// ----------------------------------------------------------------------------
62// testing::Test
63
64class FooTest : public testing::Test {
65public:
66 static void SetUpTestCase();
67 // CHECK-MESSAGES: [[@LINE-1]]:15: warning: Google Test APIs named with 'case'
68 // CHECK-FIXES: static void SetUpTestSuite();
69 static void TearDownTestCase();
70 // CHECK-MESSAGES: [[@LINE-1]]:15: warning: Google Test APIs named with 'case'
71 // CHECK-FIXES: static void TearDownTestSuite();
72};
73
74void FooTest::SetUpTestCase() {}
75// CHECK-MESSAGES: [[@LINE-1]]:15: warning: Google Test APIs named with 'case'
76// CHECK-FIXES: void FooTest::SetUpTestSuite() {}
77
78void FooTest::TearDownTestCase() {}
79// CHECK-MESSAGES: [[@LINE-1]]:15: warning: Google Test APIs named with 'case'
80// CHECK-FIXES: void FooTest::TearDownTestSuite() {}
81
82template <typename T> class FooTypedTest : public testing::Test {
83public:
84 static void SetUpTestCase();
85 // CHECK-MESSAGES: [[@LINE-1]]:15: warning: Google Test APIs named with 'case'
86 // CHECK-FIXES: static void SetUpTestSuite();
87 static void TearDownTestCase();
88 // CHECK-MESSAGES: [[@LINE-1]]:15: warning: Google Test APIs named with 'case'
89 // CHECK-FIXES: static void TearDownTestSuite();
90};
91
92template <typename T> void FooTypedTest<T>::SetUpTestCase() {}
93// CHECK-MESSAGES: [[@LINE-1]]:45: warning: Google Test APIs named with 'case'
94// CHECK-FIXES: void FooTypedTest<T>::SetUpTestSuite() {}
95
96template <typename T> void FooTypedTest<T>::TearDownTestCase() {}
97// CHECK-MESSAGES: [[@LINE-1]]:45: warning: Google Test APIs named with 'case'
98// CHECK-FIXES: void FooTypedTest<T>::TearDownTestSuite() {}
99
100class BarTest : public testing::Test {
101public:
102 using Test::SetUpTestCase;
103 // CHECK-MESSAGES: [[@LINE-1]]:15: warning: Google Test APIs named with 'case'
104 // CHECK-FIXES: using Test::SetUpTestSuite;
105 using Test::TearDownTestCase;
106 // CHECK-MESSAGES: [[@LINE-1]]:15: warning: Google Test APIs named with 'case'
107 // CHECK-FIXES: using Test::TearDownTestSuite;
108};
109
110class BarTest2 : public FooTest {
111public:
112 using FooTest::SetUpTestCase;
113 // CHECK-MESSAGES: [[@LINE-1]]:18: warning: Google Test APIs named with 'case'
114 // CHECK-FIXES: using FooTest::SetUpTestSuite;
115 using FooTest::TearDownTestCase;
116 // CHECK-MESSAGES: [[@LINE-1]]:18: warning: Google Test APIs named with 'case'
117 // CHECK-FIXES: using FooTest::TearDownTestSuite;
118};
119
120// If a derived type already has the replacements, we only provide a warning
121// since renaming or deleting the old declarations may not be safe.
122class BarTest3 : public testing::Test {
123 public:
124 static void SetUpTestCase() {}
125 // CHECK-MESSAGES: [[@LINE-1]]:15: warning: Google Test APIs named with 'case'
126 static void SetUpTestSuite() {}
127
128 static void TearDownTestCase() {}
129 // CHECK-MESSAGES: [[@LINE-1]]:15: warning: Google Test APIs named with 'case'
130 static void TearDownTestSuite() {}
131};
132
133namespace nesting_ns {
134namespace testing {
135
136class Test {
137public:
138 static void SetUpTestCase();
139 static void TearDownTestCase();
140};
141
142} // namespace testing
143
144void Test() {
145 testing::Test::SetUpTestCase();
146 testing::Test::TearDownTestCase();
147}
148
149} // namespace nesting_ns
150
151template <typename T>
152void testInstantiationOnlyWarns() {
153 T::SetUpTestCase();
154 // CHECK-MESSAGES: [[@LINE-1]]:6: warning: Google Test APIs named with 'case'
155 T::TearDownTestCase();
156 // CHECK-MESSAGES: [[@LINE-1]]:6: warning: Google Test APIs named with 'case'
157}
158
159#define SET_UP_TEST_CASE_MACRO_REPLACE SetUpTestCase
160#define TEST_SET_UP_TEST_CASE_MACRO_WARN_ONLY ::testing::Test::SetUpTestCase
161
162void setUpTearDownCallAndReference() {
163 testing::Test::SetUpTestCase();
164 // CHECK-MESSAGES: [[@LINE-1]]:18: warning: Google Test APIs named with 'case'
165 // CHECK-FIXES: testing::Test::SetUpTestSuite();
166 FooTest::SetUpTestCase();
167 // CHECK-MESSAGES: [[@LINE-1]]:12: warning: Google Test APIs named with 'case'
168 // CHECK-FIXES: FooTest::SetUpTestSuite();
169
170 testing::Test::TearDownTestCase();
171 // CHECK-MESSAGES: [[@LINE-1]]:18: warning: Google Test APIs named with 'case'
172 // CHECK-FIXES: testing::Test::TearDownTestSuite();
173 FooTest::TearDownTestCase();
174 // CHECK-MESSAGES: [[@LINE-1]]:12: warning: Google Test APIs named with 'case'
175 // CHECK-FIXES: FooTest::TearDownTestSuite();
176
177 auto F = &testing::Test::SetUpTestCase;
178 // CHECK-MESSAGES: [[@LINE-1]]:28: warning: Google Test APIs named with 'case'
179 // CHECK-FIXES: auto F = &testing::Test::SetUpTestSuite;
180 F = &testing::Test::TearDownTestCase;
181 // CHECK-MESSAGES: [[@LINE-1]]:23: warning: Google Test APIs named with 'case'
182 // CHECK-FIXES: F = &testing::Test::TearDownTestSuite;
183 F = &FooTest::SetUpTestCase;
184 // CHECK-MESSAGES: [[@LINE-1]]:17: warning: Google Test APIs named with 'case'
185 // CHECK-FIXES: F = &FooTest::SetUpTestSuite;
186 F = &FooTest::TearDownTestCase;
187 // CHECK-MESSAGES: [[@LINE-1]]:17: warning: Google Test APIs named with 'case'
188 // CHECK-FIXES: F = &FooTest::TearDownTestSuite;
189
190 using MyTest = testing::Test;
191 MyTest::SetUpTestCase();
192 // CHECK-MESSAGES: [[@LINE-1]]:11: warning: Google Test APIs named with 'case'
193 // CHECK-FIXES: MyTest::SetUpTestSuite();
194 MyTest::TearDownTestCase();
195 // CHECK-MESSAGES: [[@LINE-1]]:11: warning: Google Test APIs named with 'case'
196 // CHECK-FIXES: MyTest::TearDownTestSuite();
197
198 BarTest3::SetUpTestCase();
199 // CHECK-MESSAGES: [[@LINE-1]]:13: warning: Google Test APIs named with 'case'
200 // CHECK-FIXES: BarTest3::SetUpTestSuite();
201 BarTest3::TearDownTestCase();
202 // CHECK-MESSAGES: [[@LINE-1]]:13: warning: Google Test APIs named with 'case'
203 // CHECK-FIXES: BarTest3::TearDownTestSuite();
204
205 testInstantiationOnlyWarns<testing::Test>();
206
207 testing::Test::SET_UP_TEST_CASE_MACRO_REPLACE();
208 // CHECK-MESSAGES: [[@LINE-1]]:18: warning: Google Test APIs named with 'case'
209 // CHECK-FIXES: testing::Test::SetUpTestSuite();
210 TEST_SET_UP_TEST_CASE_MACRO_WARN_ONLY();
211 // CHECK-MESSAGES: [[@LINE-1]]:3: warning: Google Test APIs named with 'case'
212}
213
214// ----------------------------------------------------------------------------
215// testing::TestInfo
216
217class FooTestInfo : public testing::TestInfo {
218public:
219 const char *test_case_name() const;
220 // CHECK-MESSAGES: [[@LINE-1]]:15: warning: Google Test APIs named with 'case'
221 // CHECK-FIXES: const char *test_suite_name() const;
222};
223
224const char *FooTestInfo::test_case_name() const {}
225// CHECK-MESSAGES: [[@LINE-1]]:26: warning: Google Test APIs named with 'case'
226// CHECK-FIXES: const char *FooTestInfo::test_suite_name() const {}
227
228class BarTestInfo : public testing::TestInfo {
229public:
230 using TestInfo::test_case_name;
231 // CHECK-MESSAGES: [[@LINE-1]]:19: warning: Google Test APIs named with 'case'
232 // CHECK-FIXES: using TestInfo::test_suite_name;
233};
234
235class BarTestInfo2 : public FooTestInfo {
236public:
237 using FooTestInfo::test_case_name;
238 // CHECK-MESSAGES: [[@LINE-1]]:22: warning: Google Test APIs named with 'case'
239 // CHECK-FIXES: using FooTestInfo::test_suite_name;
240};
241
242class BarTestInfo3 : public testing::TestInfo {
243 public:
244 const char* test_case_name() const;
245 // CHECK-MESSAGES: [[@LINE-1]]:15: warning: Google Test APIs named with 'case'
246 const char* test_suite_name() const;
247};
248
249namespace nesting_ns {
250namespace testing {
251
252class TestInfo {
253public:
254 const char *test_case_name() const;
255};
256
257} // namespace testing
258
259void FuncInfo() {
260 testing::TestInfo t;
261 (void)t.test_case_name();
262}
263
264} // namespace nesting_ns
265
266template <typename T>
267void testInfoInstantiationOnlyWarns() {
268 T t;
269 (void)t.test_case_name();
270 // CHECK-MESSAGES: [[@LINE-1]]:11: warning: Google Test APIs named with 'case'
271}
272
273#define TEST_CASE_NAME_MACRO_REPLACE test_case_name
274#define TEST_CASE_NAME_MACRO_WARN_ONLY testing::TestInfo().test_case_name
275
276void testInfoCallAndReference() {
277 (void)testing::TestInfo().test_case_name();
278 // CHECK-MESSAGES: [[@LINE-1]]:29: warning: Google Test APIs named with 'case'
279 // CHECK-FIXES: (void)testing::TestInfo().test_suite_name();
280 (void)FooTestInfo().test_case_name();
281 // CHECK-MESSAGES: [[@LINE-1]]:23: warning: Google Test APIs named with 'case'
282 // CHECK-FIXES: (void)FooTestInfo().test_suite_name();
283 auto F1 = &testing::TestInfo::test_case_name;
284 // CHECK-MESSAGES: [[@LINE-1]]:33: warning: Google Test APIs named with 'case'
285 // CHECK-FIXES: auto F1 = &testing::TestInfo::test_suite_name;
286 auto F2 = &FooTestInfo::test_case_name;
287 // CHECK-MESSAGES: [[@LINE-1]]:27: warning: Google Test APIs named with 'case'
288 // CHECK-FIXES: auto F2 = &FooTestInfo::test_suite_name;
289 using MyTestInfo = testing::TestInfo;
290 (void)MyTestInfo().test_case_name();
291 // CHECK-MESSAGES: [[@LINE-1]]:22: warning: Google Test APIs named with 'case'
292 // CHECK-FIXES: (void)MyTestInfo().test_suite_name();
293 (void)BarTestInfo3().test_case_name();
294 // CHECK-MESSAGES: [[@LINE-1]]:24: warning: Google Test APIs named with 'case'
295 // CHECK-FIXES: (void)BarTestInfo3().test_suite_name();
296
297 testInfoInstantiationOnlyWarns<testing::TestInfo>();
298
299 (void)testing::TestInfo().TEST_CASE_NAME_MACRO_REPLACE();
300 // CHECK-MESSAGES: [[@LINE-1]]:29: warning: Google Test APIs named with 'case'
301 // CHECK-FIXES: (void)testing::TestInfo().test_suite_name();
302 (void)TEST_CASE_NAME_MACRO_WARN_ONLY();
303 // CHECK-MESSAGES: [[@LINE-1]]:9: warning: Google Test APIs named with 'case'
304}
305
306// ----------------------------------------------------------------------------
307// testing::TestEventListener
308
309class FooTestEventListener : public testing::TestEventListener {
310public:
311 void OnTestCaseStart(const testing::TestCase &) override;
312 // CHECK-MESSAGES: [[@LINE-1]]:8: warning: Google Test APIs named with 'case'
313 // CHECK-MESSAGES: [[@LINE-2]]:39: warning: Google Test APIs named with 'case'
314 // CHECK-FIXES: void OnTestSuiteStart(const testing::TestSuite &) override;
315 void OnTestCaseEnd(const testing::TestCase &) override;
316 // CHECK-MESSAGES: [[@LINE-1]]:8: warning: Google Test APIs named with 'case'
317 // CHECK-MESSAGES: [[@LINE-2]]:37: warning: Google Test APIs named with 'case'
318 // CHECK-FIXES: void OnTestSuiteEnd(const testing::TestSuite &) override;
319};
320
321void FooTestEventListener::OnTestCaseStart(const testing::TestCase &) {}
322// CHECK-MESSAGES: [[@LINE-1]]:28: warning: Google Test APIs named with 'case'
323// CHECK-MESSAGES: [[@LINE-2]]:59: warning: Google Test APIs named with 'case'
324// CHECK-FIXES: void FooTestEventListener::OnTestSuiteStart(const testing::TestSuite &) {}
325
326void FooTestEventListener::OnTestCaseEnd(const testing::TestCase &) {}
327// CHECK-MESSAGES: [[@LINE-1]]:28: warning: Google Test APIs named with 'case'
328// CHECK-MESSAGES: [[@LINE-2]]:57: warning: Google Test APIs named with 'case'
329// CHECK-FIXES: void FooTestEventListener::OnTestSuiteEnd(const testing::TestSuite &) {}
330
331class BarTestEventListener : public testing::TestEventListener {
332public:
333 using TestEventListener::OnTestCaseStart;
334 // CHECK-MESSAGES: [[@LINE-1]]:28: warning: Google Test APIs named with 'case'
335 // CHECK-FIXES: using TestEventListener::OnTestSuiteStart;
336 using TestEventListener::OnTestCaseEnd;
337 // CHECK-MESSAGES: [[@LINE-1]]:28: warning: Google Test APIs named with 'case'
338 // CHECK-FIXES: using TestEventListener::OnTestSuiteEnd;
339};
340
341class BarTestEventListener2 : public BarTestEventListener {
342public:
343 using BarTestEventListener::OnTestCaseStart;
344 // CHECK-MESSAGES: [[@LINE-1]]:31: warning: Google Test APIs named with 'case'
345 // CHECK-FIXES: using BarTestEventListener::OnTestSuiteStart;
346 using BarTestEventListener::OnTestCaseEnd;
347 // CHECK-MESSAGES: [[@LINE-1]]:31: warning: Google Test APIs named with 'case'
348 // CHECK-FIXES: using BarTestEventListener::OnTestSuiteEnd;
349};
350
351#ifndef NOSUITE
352
353class BarTestEventListener3 : public testing::TestEventListener {
354public:
355 void OnTestCaseStart(const testing::TestSuite &) override;
356 // CHECK-MESSAGES: [[@LINE-1]]:8: warning: Google Test APIs named with 'case'
357 void OnTestSuiteStart(const testing::TestSuite &) override;
358
359 void OnTestCaseEnd(const testing::TestSuite &) override;
360 // CHECK-MESSAGES: [[@LINE-1]]:8: warning: Google Test APIs named with 'case'
361 void OnTestSuiteEnd(const testing::TestSuite &) override;
362};
363
364#endif
365
366namespace nesting_ns {
367namespace testing {
368
369class TestEventListener {
370public:
371 virtual void OnTestCaseStart(const ::testing::TestCase &);
372 // CHECK-MESSAGES: [[@LINE-1]]:49: warning: Google Test APIs named with 'case'
373 // CHECK-FIXES: virtual void OnTestCaseStart(const ::testing::TestSuite &);
374 virtual void OnTestCaseEnd(const ::testing::TestCase &);
375 // CHECK-MESSAGES: [[@LINE-1]]:47: warning: Google Test APIs named with 'case'
376 // CHECK-FIXES: virtual void OnTestCaseEnd(const ::testing::TestSuite &);
377};
378
379} // namespace testing
380
381void FuncTestEventListener(::testing::TestCase &Case) {
382 // CHECK-MESSAGES: [[@LINE-1]]:39: warning: Google Test APIs named with 'case'
383 // CHECK-FIXES: void FuncTestEventListener(::testing::TestSuite &Case) {
384 testing::TestEventListener().OnTestCaseStart(Case);
385 testing::TestEventListener().OnTestCaseEnd(Case);
386}
387
388} // namespace nesting_ns
389
390#ifndef NOSUITE
391
392template <typename T>
393void testEventListenerInstantiationOnlyWarns() {
394 T().OnTestCaseStart(testing::TestSuite());
395 // CHECK-MESSAGES: [[@LINE-1]]:7: warning: Google Test APIs named with 'case'
396 T().OnTestCaseEnd(testing::TestSuite());
397 // CHECK-MESSAGES: [[@LINE-1]]:7: warning: Google Test APIs named with 'case'
398}
399
400#endif
401
402#define ON_TEST_CASE_START_MACRO_REPLACE OnTestCaseStart
403#define ON_TEST_CASE_START_MACRO_WARN_ONLY \
404 testing::TestEventListener().OnTestCaseStart
405
406#define ON_TEST_CASE_END_MACRO_REPLACE OnTestCaseEnd
407#define ON_TEST_CASE_END_MACRO_WARN_ONLY \
408 testing::TestEventListener().OnTestCaseEnd
409
410void testEventListenerCallAndReference(testing::TestCase &Case) {
411 // CHECK-MESSAGES: [[@LINE-1]]:49: warning: Google Test APIs named with 'case'
412 // CHECK-FIXES: void testEventListenerCallAndReference(testing::TestSuite &Case) {
413 testing::TestEventListener().OnTestCaseStart(Case);
414 // CHECK-MESSAGES: [[@LINE-1]]:32: warning: Google Test APIs named with 'case'
415 // CHECK-FIXES: testing::TestEventListener().OnTestSuiteStart(Case);
416 testing::TestEventListener().OnTestCaseEnd(Case);
417 // CHECK-MESSAGES: [[@LINE-1]]:32: warning: Google Test APIs named with 'case'
418 // CHECK-FIXES: testing::TestEventListener().OnTestSuiteEnd(Case);
419
420 FooTestEventListener().OnTestCaseStart(Case);
421 // CHECK-MESSAGES: [[@LINE-1]]:26: warning: Google Test APIs named with 'case'
422 // CHECK-FIXES: FooTestEventListener().OnTestSuiteStart(Case);
423 FooTestEventListener().OnTestCaseEnd(Case);
424 // CHECK-MESSAGES: [[@LINE-1]]:26: warning: Google Test APIs named with 'case'
425 // CHECK-FIXES: FooTestEventListener().OnTestSuiteEnd(Case);
426
427 auto F1 = &testing::TestEventListener::OnTestCaseStart;
428 // CHECK-MESSAGES: [[@LINE-1]]:42: warning: Google Test APIs named with 'case'
429 // CHECK-FIXES: auto F1 = &testing::TestEventListener::OnTestSuiteStart;
430 F1 = &testing::TestEventListener::OnTestCaseEnd;
431 // CHECK-MESSAGES: [[@LINE-1]]:37: warning: Google Test APIs named with 'case'
432 // CHECK-FIXES: F1 = &testing::TestEventListener::OnTestSuiteEnd;
433
434 auto F2 = &FooTestEventListener::OnTestCaseStart;
435 // CHECK-MESSAGES: [[@LINE-1]]:36: warning: Google Test APIs named with 'case'
436 // CHECK-FIXES: auto F2 = &FooTestEventListener::OnTestSuiteStart;
437 F2 = &FooTestEventListener::OnTestCaseEnd;
438 // CHECK-MESSAGES: [[@LINE-1]]:31: warning: Google Test APIs named with 'case'
439 // CHECK-FIXES: F2 = &FooTestEventListener::OnTestSuiteEnd;
440
441#ifndef NOSUITE
442
443 BarTestEventListener3().OnTestCaseStart(Case);
444 // CHECK-MESSAGES: [[@LINE-1]]:27: warning: Google Test APIs named with 'case'
445 // CHECK-FIXES: BarTestEventListener3().OnTestSuiteStart(Case);
446 BarTestEventListener3().OnTestCaseEnd(Case);
447 // CHECK-MESSAGES: [[@LINE-1]]:27: warning: Google Test APIs named with 'case'
448 // CHECK-FIXES: BarTestEventListener3().OnTestSuiteEnd(Case);
449
450 testEventListenerInstantiationOnlyWarns<testing::TestEventListener>();
451
452#endif
453
454 testing::TestEventListener().ON_TEST_CASE_START_MACRO_REPLACE(Case);
455 // CHECK-MESSAGES: [[@LINE-1]]:32: warning: Google Test APIs named with 'case'
456 // CHECK-FIXES: testing::TestEventListener().OnTestSuiteStart(Case);
457 ON_TEST_CASE_START_MACRO_WARN_ONLY(Case);
458 // CHECK-MESSAGES: [[@LINE-1]]:3: warning: Google Test APIs named with 'case'
459
460 testing::TestEventListener().ON_TEST_CASE_END_MACRO_REPLACE(Case);
461 // CHECK-MESSAGES: [[@LINE-1]]:32: warning: Google Test APIs named with 'case'
462 // CHECK-FIXES: testing::TestEventListener().OnTestSuiteEnd(Case);
463 ON_TEST_CASE_END_MACRO_WARN_ONLY(Case);
464 // CHECK-MESSAGES: [[@LINE-1]]:3: warning: Google Test APIs named with 'case'
465}
466
467// ----------------------------------------------------------------------------
468// testing::UnitTest
469
470class FooUnitTest : public testing::UnitTest {
471public:
472 testing::TestCase *current_test_case() const;
473 // CHECK-MESSAGES: [[@LINE-1]]:12: warning: Google Test APIs named with 'case'
474 // CHECK-MESSAGES: [[@LINE-2]]:22: warning: Google Test APIs named with 'case'
475 // CHECK-FIXES: testing::TestSuite *current_test_suite() const;
476 int successful_test_case_count() const;
477 // CHECK-MESSAGES: [[@LINE-1]]:7: warning: Google Test APIs named with 'case'
478 // CHECK-FIXES: int successful_test_suite_count() const;
479 int failed_test_case_count() const;
480 // CHECK-MESSAGES: [[@LINE-1]]:7: warning: Google Test APIs named with 'case'
481 // CHECK-FIXES: int failed_test_suite_count() const;
482 int total_test_case_count() const;
483 // CHECK-MESSAGES: [[@LINE-1]]:7: warning: Google Test APIs named with 'case'
484 // CHECK-FIXES: int total_test_suite_count() const;
485 int test_case_to_run_count() const;
486 // CHECK-MESSAGES: [[@LINE-1]]:7: warning: Google Test APIs named with 'case'
487 // CHECK-FIXES: int test_suite_to_run_count() const;
488 const testing::TestCase *GetTestCase(int) const;
489 // CHECK-MESSAGES: [[@LINE-1]]:18: warning: Google Test APIs named with 'case'
490 // CHECK-MESSAGES: [[@LINE-2]]:28: warning: Google Test APIs named with 'case'
491 // CHECK-FIXES: const testing::TestSuite *GetTestSuite(int) const;
492};
493
494testing::TestCase *FooUnitTest::current_test_case() const {}
495// CHECK-MESSAGES: [[@LINE-1]]:10: warning: Google Test APIs named with 'case'
496// CHECK-MESSAGES: [[@LINE-2]]:33: warning: Google Test APIs named with 'case'
497// CHECK-FIXES: testing::TestSuite *FooUnitTest::current_test_suite() const {}
498int FooUnitTest::successful_test_case_count() const {}
499// CHECK-MESSAGES: [[@LINE-1]]:18: warning: Google Test APIs named with 'case'
500// CHECK-FIXES: int FooUnitTest::successful_test_suite_count() const {}
501int FooUnitTest::failed_test_case_count() const {}
502// CHECK-MESSAGES: [[@LINE-1]]:18: warning: Google Test APIs named with 'case'
503// CHECK-FIXES: int FooUnitTest::failed_test_suite_count() const {}
504int FooUnitTest::total_test_case_count() const {}
505// CHECK-MESSAGES: [[@LINE-1]]:18: warning: Google Test APIs named with 'case'
506// CHECK-FIXES: int FooUnitTest::total_test_suite_count() const {}
507int FooUnitTest::test_case_to_run_count() const {}
508// CHECK-MESSAGES: [[@LINE-1]]:18: warning: Google Test APIs named with 'case'
509// CHECK-FIXES: int FooUnitTest::test_suite_to_run_count() const {}
510const testing::TestCase *FooUnitTest::GetTestCase(int) const {}
511// CHECK-MESSAGES: [[@LINE-1]]:16: warning: Google Test APIs named with 'case'
512// CHECK-MESSAGES: [[@LINE-2]]:39: warning: Google Test APIs named with 'case'
513// CHECK-FIXES: const testing::TestSuite *FooUnitTest::GetTestSuite(int) const {}
514
515// Type derived from testing::TestCase
516class BarUnitTest : public testing::UnitTest {
517public:
518 using testing::UnitTest::current_test_case;
519 // CHECK-MESSAGES: [[@LINE-1]]:28: warning: Google Test APIs named with 'case'
520 // CHECK-FIXES: using testing::UnitTest::current_test_suite;
521 using testing::UnitTest::successful_test_case_count;
522 // CHECK-MESSAGES: [[@LINE-1]]:28: warning: Google Test APIs named with 'case'
523 // CHECK-FIXES: using testing::UnitTest::successful_test_suite_count;
524 using testing::UnitTest::failed_test_case_count;
525 // CHECK-MESSAGES: [[@LINE-1]]:28: warning: Google Test APIs named with 'case'
526 // CHECK-FIXES: using testing::UnitTest::failed_test_suite_count;
527 using testing::UnitTest::total_test_case_count;
528 // CHECK-MESSAGES: [[@LINE-1]]:28: warning: Google Test APIs named with 'case'
529 // CHECK-FIXES: using testing::UnitTest::total_test_suite_count;
530 using testing::UnitTest::test_case_to_run_count;
531 // CHECK-MESSAGES: [[@LINE-1]]:28: warning: Google Test APIs named with 'case'
532 // CHECK-FIXES: using testing::UnitTest::test_suite_to_run_count;
533 using testing::UnitTest::GetTestCase;
534 // CHECK-MESSAGES: [[@LINE-1]]:28: warning: Google Test APIs named with 'case'
535 // CHECK-FIXES: using testing::UnitTest::GetTestSuite;
536};
537
538class BarUnitTest2 : public BarUnitTest {
539 using BarUnitTest::current_test_case;
540 // CHECK-MESSAGES: [[@LINE-1]]:22: warning: Google Test APIs named with 'case'
541 // CHECK-FIXES: using BarUnitTest::current_test_suite;
542 using BarUnitTest::successful_test_case_count;
543 // CHECK-MESSAGES: [[@LINE-1]]:22: warning: Google Test APIs named with 'case'
544 // CHECK-FIXES: using BarUnitTest::successful_test_suite_count;
545 using BarUnitTest::failed_test_case_count;
546 // CHECK-MESSAGES: [[@LINE-1]]:22: warning: Google Test APIs named with 'case'
547 // CHECK-FIXES: using BarUnitTest::failed_test_suite_count;
548 using BarUnitTest::total_test_case_count;
549 // CHECK-MESSAGES: [[@LINE-1]]:22: warning: Google Test APIs named with 'case'
550 // CHECK-FIXES: using BarUnitTest::total_test_suite_count;
551 using BarUnitTest::test_case_to_run_count;
552 // CHECK-MESSAGES: [[@LINE-1]]:22: warning: Google Test APIs named with 'case'
553 // CHECK-FIXES: using BarUnitTest::test_suite_to_run_count;
554 using BarUnitTest::GetTestCase;
555 // CHECK-MESSAGES: [[@LINE-1]]:22: warning: Google Test APIs named with 'case'
556 // CHECK-FIXES: using BarUnitTest::GetTestSuite;
557};
558
559#ifndef NOSUITE
560
561class BarUnitTest3 : public testing::UnitTest {
562 testing::TestSuite *current_test_case() const;
563 // CHECK-MESSAGES: [[@LINE-1]]:23: warning: Google Test APIs named with 'case'
564 int successful_test_case_count() const;
565 // CHECK-MESSAGES: [[@LINE-1]]:7: warning: Google Test APIs named with 'case'
566 int failed_test_case_count() const;
567 // CHECK-MESSAGES: [[@LINE-1]]:7: warning: Google Test APIs named with 'case'
568 int total_test_case_count() const;
569 // CHECK-MESSAGES: [[@LINE-1]]:7: warning: Google Test APIs named with 'case'
570 int test_case_to_run_count() const;
571 // CHECK-MESSAGES: [[@LINE-1]]:7: warning: Google Test APIs named with 'case'
572 const testing::TestSuite *GetTestCase(int) const;
573 // CHECK-MESSAGES: [[@LINE-1]]:29: warning: Google Test APIs named with 'case'
574
575 testing::TestSuite *current_test_suite() const;
576 int successful_test_suite_count() const;
577 int failed_test_suite_count() const;
578 int total_test_suite_count() const;
579 int test_suite_to_run_count() const;
580 const testing::TestSuite *GetTestSuite(int) const;
581};
582
583#endif
584
585namespace nesting_ns {
586namespace testing {
587
588class TestSuite;
589
590class UnitTest {
591public:
592 TestSuite *current_test_case() const;
593 int successful_test_case_count() const;
594 int failed_test_case_count() const;
595 int total_test_case_count() const;
596 int test_case_to_run_count() const;
597 const TestSuite *GetTestCase(int) const;
598};
599
600} // namespace testing
601
602void FuncUnitTest() {
603 testing::UnitTest t;
604 (void)t.current_test_case();
605 (void)t.successful_test_case_count();
606 (void)t.failed_test_case_count();
607 (void)t.total_test_case_count();
608 (void)t.test_case_to_run_count();
609 (void)t.GetTestCase(0);
610}
611
612} // namespace nesting_ns
613
614template <typename T>
615void unitTestInstantiationOnlyWarns() {
616 T t;
617 (void)t.current_test_case();
618 // CHECK-MESSAGES: [[@LINE-1]]:11: warning: Google Test APIs named with 'case'
619 (void)t.successful_test_case_count();
620 // CHECK-MESSAGES: [[@LINE-1]]:11: warning: Google Test APIs named with 'case'
621 (void)t.failed_test_case_count();
622 // CHECK-MESSAGES: [[@LINE-1]]:11: warning: Google Test APIs named with 'case'
623 (void)t.total_test_case_count();
624 // CHECK-MESSAGES: [[@LINE-1]]:11: warning: Google Test APIs named with 'case'
625 (void)t.test_case_to_run_count();
626 // CHECK-MESSAGES: [[@LINE-1]]:11: warning: Google Test APIs named with 'case'
627 (void)t.GetTestCase(0);
628 // CHECK-MESSAGES: [[@LINE-1]]:11: warning: Google Test APIs named with 'case'
629}
630
631#define UNIT_TEST_NAME_MACRO_REPLACE1 current_test_case
632#define UNIT_TEST_NAME_MACRO_REPLACE2 successful_test_case_count
633#define UNIT_TEST_NAME_MACRO_REPLACE3 failed_test_case_count
634#define UNIT_TEST_NAME_MACRO_REPLACE4 total_test_case_count
635#define UNIT_TEST_NAME_MACRO_REPLACE5 test_case_to_run_count
636#define UNIT_TEST_NAME_MACRO_REPLACE6 GetTestCase
637#define UNIT_TEST_NAME_MACRO_WARN_ONLY1 testing::UnitTest().current_test_case
638#define UNIT_TEST_NAME_MACRO_WARN_ONLY2 \
639 testing::UnitTest().successful_test_case_count
640#define UNIT_TEST_NAME_MACRO_WARN_ONLY3 \
641 testing::UnitTest().failed_test_case_count
642#define UNIT_TEST_NAME_MACRO_WARN_ONLY4 \
643 testing::UnitTest().total_test_case_count
644#define UNIT_TEST_NAME_MACRO_WARN_ONLY5 \
645 testing::UnitTest().test_case_to_run_count
646#define UNIT_TEST_NAME_MACRO_WARN_ONLY6 testing::UnitTest().GetTestCase
647
648void unitTestCallAndReference() {
649 (void)testing::UnitTest().current_test_case();
650 // CHECK-MESSAGES: [[@LINE-1]]:29: warning: Google Test APIs named with 'case'
651 // CHECK-FIXES: (void)testing::UnitTest().current_test_suite();
652 (void)testing::UnitTest().successful_test_case_count();
653 // CHECK-MESSAGES: [[@LINE-1]]:29: warning: Google Test APIs named with 'case'
654 // CHECK-FIXES: (void)testing::UnitTest().successful_test_suite_count();
655 (void)testing::UnitTest().failed_test_case_count();
656 // CHECK-MESSAGES: [[@LINE-1]]:29: warning: Google Test APIs named with 'case'
657 // CHECK-FIXES: (void)testing::UnitTest().failed_test_suite_count();
658 (void)testing::UnitTest().total_test_case_count();
659 // CHECK-MESSAGES: [[@LINE-1]]:29: warning: Google Test APIs named with 'case'
660 // CHECK-FIXES: (void)testing::UnitTest().total_test_suite_count();
661 (void)testing::UnitTest().test_case_to_run_count();
662 // CHECK-MESSAGES: [[@LINE-1]]:29: warning: Google Test APIs named with 'case'
663 // CHECK-FIXES: (void)testing::UnitTest().test_suite_to_run_count();
664 (void)testing::UnitTest().GetTestCase(0);
665 // CHECK-MESSAGES: [[@LINE-1]]:29: warning: Google Test APIs named with 'case'
666 // CHECK-FIXES: (void)testing::UnitTest().GetTestSuite(0);
667
668 (void)FooUnitTest().current_test_case();
669 // CHECK-MESSAGES: [[@LINE-1]]:23: warning: Google Test APIs named with 'case'
670 // CHECK-FIXES: (void)FooUnitTest().current_test_suite();
671 (void)FooUnitTest().successful_test_case_count();
672 // CHECK-MESSAGES: [[@LINE-1]]:23: warning: Google Test APIs named with 'case'
673 // CHECK-FIXES: (void)FooUnitTest().successful_test_suite_count();
674 (void)FooUnitTest().failed_test_case_count();
675 // CHECK-MESSAGES: [[@LINE-1]]:23: warning: Google Test APIs named with 'case'
676 // CHECK-FIXES: (void)FooUnitTest().failed_test_suite_count();
677 (void)FooUnitTest().total_test_case_count();
678 // CHECK-MESSAGES: [[@LINE-1]]:23: warning: Google Test APIs named with 'case'
679 // CHECK-FIXES: (void)FooUnitTest().total_test_suite_count();
680 (void)FooUnitTest().test_case_to_run_count();
681 // CHECK-MESSAGES: [[@LINE-1]]:23: warning: Google Test APIs named with 'case'
682 // CHECK-FIXES: (void)FooUnitTest().test_suite_to_run_count();
683 (void)FooUnitTest().GetTestCase(0);
684 // CHECK-MESSAGES: [[@LINE-1]]:23: warning: Google Test APIs named with 'case'
685 // CHECK-FIXES: (void)FooUnitTest().GetTestSuite(0);
686
687 auto U1 = &testing::UnitTest::current_test_case;
688 // CHECK-MESSAGES: [[@LINE-1]]:33: warning: Google Test APIs named with 'case'
689 // CHECK-FIXES: auto U1 = &testing::UnitTest::current_test_suite;
690 auto U2 = &testing::UnitTest::successful_test_case_count;
691 // CHECK-MESSAGES: [[@LINE-1]]:33: warning: Google Test APIs named with 'case'
692 // CHECK-FIXES: auto U2 = &testing::UnitTest::successful_test_suite_count;
693 auto U3 = &testing::UnitTest::failed_test_case_count;
694 // CHECK-MESSAGES: [[@LINE-1]]:33: warning: Google Test APIs named with 'case'
695 // CHECK-FIXES: auto U3 = &testing::UnitTest::failed_test_suite_count;
696 auto U4 = &testing::UnitTest::total_test_case_count;
697 // CHECK-MESSAGES: [[@LINE-1]]:33: warning: Google Test APIs named with 'case'
698 // CHECK-FIXES: auto U4 = &testing::UnitTest::total_test_suite_count;
699 auto U5 = &testing::UnitTest::test_case_to_run_count;
700 // CHECK-MESSAGES: [[@LINE-1]]:33: warning: Google Test APIs named with 'case'
701 // CHECK-FIXES: auto U5 = &testing::UnitTest::test_suite_to_run_count;
702 auto U6 = &testing::UnitTest::GetTestCase;
703 // CHECK-MESSAGES: [[@LINE-1]]:33: warning: Google Test APIs named with 'case'
704 // CHECK-FIXES: auto U6 = &testing::UnitTest::GetTestSuite;
705
706 auto F1 = &FooUnitTest::current_test_case;
707 // CHECK-MESSAGES: [[@LINE-1]]:27: warning: Google Test APIs named with 'case'
708 // CHECK-FIXES: auto F1 = &FooUnitTest::current_test_suite;
709 auto F2 = &FooUnitTest::successful_test_case_count;
710 // CHECK-MESSAGES: [[@LINE-1]]:27: warning: Google Test APIs named with 'case'
711 // CHECK-FIXES: auto F2 = &FooUnitTest::successful_test_suite_count;
712 auto F3 = &FooUnitTest::failed_test_case_count;
713 // CHECK-MESSAGES: [[@LINE-1]]:27: warning: Google Test APIs named with 'case'
714 // CHECK-FIXES: auto F3 = &FooUnitTest::failed_test_suite_count;
715 auto F4 = &FooUnitTest::total_test_case_count;
716 // CHECK-MESSAGES: [[@LINE-1]]:27: warning: Google Test APIs named with 'case'
717 // CHECK-FIXES: auto F4 = &FooUnitTest::total_test_suite_count;
718 auto F5 = &FooUnitTest::test_case_to_run_count;
719 // CHECK-MESSAGES: [[@LINE-1]]:27: warning: Google Test APIs named with 'case'
720 // CHECK-FIXES: auto F5 = &FooUnitTest::test_suite_to_run_count;
721 auto F6 = &FooUnitTest::GetTestCase;
722 // CHECK-MESSAGES: [[@LINE-1]]:27: warning: Google Test APIs named with 'case'
723 // CHECK-FIXES: auto F6 = &FooUnitTest::GetTestSuite;
724
725 using MyUnitTest = testing::UnitTest;
726 (void)MyUnitTest().current_test_case();
727 // CHECK-MESSAGES: [[@LINE-1]]:22: warning: Google Test APIs named with 'case'
728 // CHECK-FIXES: (void)MyUnitTest().current_test_suite();
729 (void)MyUnitTest().successful_test_case_count();
730 // CHECK-MESSAGES: [[@LINE-1]]:22: warning: Google Test APIs named with 'case'
731 // CHECK-FIXES: (void)MyUnitTest().successful_test_suite_count();
732 (void)MyUnitTest().failed_test_case_count();
733 // CHECK-MESSAGES: [[@LINE-1]]:22: warning: Google Test APIs named with 'case'
734 // CHECK-FIXES: (void)MyUnitTest().failed_test_suite_count();
735 (void)MyUnitTest().total_test_case_count();
736 // CHECK-MESSAGES: [[@LINE-1]]:22: warning: Google Test APIs named with 'case'
737 // CHECK-FIXES: (void)MyUnitTest().total_test_suite_count();
738 (void)MyUnitTest().test_case_to_run_count();
739 // CHECK-MESSAGES: [[@LINE-1]]:22: warning: Google Test APIs named with 'case'
740 // CHECK-FIXES: (void)MyUnitTest().test_suite_to_run_count();
741 (void)MyUnitTest().GetTestCase(0);
742 // CHECK-MESSAGES: [[@LINE-1]]:22: warning: Google Test APIs named with 'case'
743 // CHECK-FIXES: (void)MyUnitTest().GetTestSuite(0);
744
745 unitTestInstantiationOnlyWarns<testing::UnitTest>();
746
747 (void)testing::UnitTest().UNIT_TEST_NAME_MACRO_REPLACE1();
748 // CHECK-MESSAGES: [[@LINE-1]]:29: warning: Google Test APIs named with 'case'
749 // CHECK-FIXES: (void)testing::UnitTest().current_test_suite();
750 (void)testing::UnitTest().UNIT_TEST_NAME_MACRO_REPLACE2();
751 // CHECK-MESSAGES: [[@LINE-1]]:29: warning: Google Test APIs named with 'case'
752 // CHECK-FIXES: (void)testing::UnitTest().successful_test_suite_count();
753 (void)testing::UnitTest().UNIT_TEST_NAME_MACRO_REPLACE3();
754 // CHECK-MESSAGES: [[@LINE-1]]:29: warning: Google Test APIs named with 'case'
755 // CHECK-FIXES: (void)testing::UnitTest().failed_test_suite_count();
756 (void)testing::UnitTest().UNIT_TEST_NAME_MACRO_REPLACE4();
757 // CHECK-MESSAGES: [[@LINE-1]]:29: warning: Google Test APIs named with 'case'
758 // CHECK-FIXES: (void)testing::UnitTest().total_test_suite_count();
759 (void)testing::UnitTest().UNIT_TEST_NAME_MACRO_REPLACE5();
760 // CHECK-MESSAGES: [[@LINE-1]]:29: warning: Google Test APIs named with 'case'
761 // CHECK-FIXES: (void)testing::UnitTest().test_suite_to_run_count();
762 (void)testing::UnitTest().UNIT_TEST_NAME_MACRO_REPLACE6(0);
763 // CHECK-MESSAGES: [[@LINE-1]]:29: warning: Google Test APIs named with 'case'
764 // CHECK-FIXES: (void)testing::UnitTest().GetTestSuite(0);
765
766 UNIT_TEST_NAME_MACRO_WARN_ONLY1();
767 // CHECK-MESSAGES: [[@LINE-1]]:3: warning: Google Test APIs named with 'case'
768 UNIT_TEST_NAME_MACRO_WARN_ONLY2();
769 // CHECK-MESSAGES: [[@LINE-1]]:3: warning: Google Test APIs named with 'case'
770 UNIT_TEST_NAME_MACRO_WARN_ONLY3();
771 // CHECK-MESSAGES: [[@LINE-1]]:3: warning: Google Test APIs named with 'case'
772 UNIT_TEST_NAME_MACRO_WARN_ONLY4();
773 // CHECK-MESSAGES: [[@LINE-1]]:3: warning: Google Test APIs named with 'case'
774 UNIT_TEST_NAME_MACRO_WARN_ONLY5();
775 // CHECK-MESSAGES: [[@LINE-1]]:3: warning: Google Test APIs named with 'case'
776 UNIT_TEST_NAME_MACRO_WARN_ONLY6(0);
777 // CHECK-MESSAGES: [[@LINE-1]]:3: warning: Google Test APIs named with 'case'
778}
779
780// ----------------------------------------------------------------------------
781// testing::TestCase
782
783template <typename T>
784void TestCaseInTemplate() {
785 T t;
786
787 testing::TestCase Case;
788 // CHECK-MESSAGES: [[@LINE-1]]:12: warning: Google Test APIs named with 'case'
789 // CHECK-FIXES: testing::TestSuite Case;
790}
791
792#define TEST_CASE_CAN_FIX TestCase
793#define TEST_CASE_WARN_ONLY testing::TestCase
794
795const testing::TestCase *testCaseUses(const testing::TestCase &Case) {
796 // CHECK-MESSAGES: [[@LINE-1]]:16: warning: Google Test APIs named with 'case'
797 // CHECK-MESSAGES: [[@LINE-2]]:54: warning: Google Test APIs named with 'case'
798 // CHECK-FIXES: const testing::TestSuite *testCaseUses(const testing::TestSuite &Case) {
799
800 // No change for implicit declarations:
801 auto Lambda = [&Case]() {};
802
803 TestCaseInTemplate<testing::TestCase>();
804 // CHECK-MESSAGES: [[@LINE-1]]:31: warning: Google Test APIs named with 'case'
805 // CHECK-FIXES: TestCaseInTemplate<testing::TestSuite>();
806
807 testing::TEST_CASE_CAN_FIX C1;
808 // CHECK-MESSAGES: [[@LINE-1]]:12: warning: Google Test APIs named with 'case'
809 // CHECK-FIXES: testing::TestSuite C1;
810 TEST_CASE_WARN_ONLY C2;
811 // CHECK-MESSAGES: [[@LINE-1]]:3: warning: Google Test APIs named with 'case'
812
813 (void)new testing::TestCase();
814 // CHECK-MESSAGES: [[@LINE-1]]:22: warning: Google Test APIs named with 'case'
815 // CHECK-FIXES: (void)new testing::TestSuite();
816 const testing::TestCase *Result = &Case;
817 // CHECK-MESSAGES: [[@LINE-1]]:18: warning: Google Test APIs named with 'case'
818 // CHECK-FIXES: const testing::TestSuite *Result = &Case;
819 return Result;
820}
821
822struct TestCaseHolder {
823 testing::TestCase Case;
824 // CHECK-MESSAGES: [[@LINE-1]]:12: warning: Google Test APIs named with 'case'
825 // CHECK-FIXES: testing::TestSuite Case;
826};
827
828class MyTest : public testing::TestCase {};
829// CHECK-MESSAGES: [[@LINE-1]]:32: warning: Google Test APIs named with 'case'
830// CHECK-FIXES: class MyTest : public testing::TestSuite {};
831
832template <typename T = testing::TestCase>
833// CHECK-MESSAGES: [[@LINE-1]]:33: warning: Google Test APIs named with 'case'
834// CHECK-FIXES: template <typename T = testing::TestSuite>
835class TestTypeHolder {};
836
837template <>
838class TestTypeHolder<testing::TestCase> {};
839// CHECK-MESSAGES: [[@LINE-1]]:31: warning: Google Test APIs named with 'case'
840// CHECK-FIXES: class TestTypeHolder<testing::TestSuite> {};
841
842namespace shadow_using_ns {
843
844using testing::TestCase;
845// CHECK-MESSAGES: [[@LINE-1]]:16: warning: Google Test APIs named with 'case'
846// CHECK-FIXES: using testing::TestSuite;
847
848const TestCase *testCaseUses(const TestCase &Case) {
849 // CHECK-MESSAGES: [[@LINE-1]]:7: warning: Google Test APIs named with 'case'
850 // CHECK-MESSAGES: [[@LINE-2]]:36: warning: Google Test APIs named with 'case'
851 // CHECK-FIXES: const TestSuite *testCaseUses(const TestSuite &Case) {
852
853 // No change for implicit declarations:
854 auto Lambda = [&Case]() {};
855
856 (void)new TestCase();
857 // CHECK-MESSAGES: [[@LINE-1]]:13: warning: Google Test APIs named with 'case'
858 // CHECK-FIXES: (void)new TestSuite();
859 const TestCase *Result = &Case;
860 // CHECK-MESSAGES: [[@LINE-1]]:9: warning: Google Test APIs named with 'case'
861 // CHECK-FIXES: const TestSuite *Result = &Case;
862 return Result;
863}
864
865struct TestCaseHolder {
866 TestCase Case;
867 // CHECK-MESSAGES: [[@LINE-1]]:3: warning: Google Test APIs named with 'case'
868 // CHECK-FIXES: TestSuite Case;
869};
870
871class MyTest : public TestCase {};
872// CHECK-MESSAGES: [[@LINE-1]]:23: warning: Google Test APIs named with 'case'
873// CHECK-FIXES: class MyTest : public TestSuite {};
874
875template <typename T = TestCase>
876// CHECK-MESSAGES: [[@LINE-1]]:24: warning: Google Test APIs named with 'case'
877// CHECK-FIXES: template <typename T = TestSuite>
878class TestTypeHolder {};
879
880template <>
881class TestTypeHolder<TestCase> {};
882// CHECK-MESSAGES: [[@LINE-1]]:22: warning: Google Test APIs named with 'case'
883// CHECK-FIXES: class TestTypeHolder<TestSuite> {};
884
885} // namespace shadow_using_ns
886
887const shadow_using_ns::TestCase *shadowTestCaseUses(
888 const shadow_using_ns::TestCase &Case) {
889 // CHECK-MESSAGES: [[@LINE-2]]:24: warning: Google Test APIs named with 'case'
890 // CHECK-MESSAGES: [[@LINE-2]]:28: warning: Google Test APIs named with 'case'
891 // CHECK-FIXES: const shadow_using_ns::TestSuite *shadowTestCaseUses(
892 // CHECK-FIXES: const shadow_using_ns::TestSuite &Case) {
893
894 // No match for implicit declarations, as in the lambda capture:
895 auto Lambda = [&Case]() {};
896
897 (void)new shadow_using_ns::TestCase();
898 // CHECK-MESSAGES: [[@LINE-1]]:30: warning: Google Test APIs named with 'case'
899 // CHECK-FIXES: (void)new shadow_using_ns::TestSuite();
900 const shadow_using_ns::TestCase *Result = &Case;
901 // CHECK-MESSAGES: [[@LINE-1]]:26: warning: Google Test APIs named with 'case'
902 // CHECK-FIXES: const shadow_using_ns::TestSuite *Result = &Case;
903 return Result;
904}
905
906struct ShadowTestCaseHolder {
907 shadow_using_ns::TestCase Case;
908 // CHECK-MESSAGES: [[@LINE-1]]:20: warning: Google Test APIs named with 'case'
909 // CHECK-FIXES: shadow_using_ns::TestSuite Case;
910};
911
912class ShadowMyTest : public shadow_using_ns::TestCase {};
913// CHECK-MESSAGES: [[@LINE-1]]:46: warning: Google Test APIs named with 'case'
914// CHECK-FIXES: class ShadowMyTest : public shadow_using_ns::TestSuite {};
915
916template <typename T = shadow_using_ns::TestCase>
917// CHECK-MESSAGES: [[@LINE-1]]:41: warning: Google Test APIs named with 'case'
918// CHECK-FIXES: template <typename T = shadow_using_ns::TestSuite>
919class ShadowTestTypeHolder {};
920
921template <>
922class ShadowTestTypeHolder<shadow_using_ns::TestCase> {};
923// CHECK-MESSAGES: [[@LINE-1]]:45: warning: Google Test APIs named with 'case'
924// CHECK-FIXES: class ShadowTestTypeHolder<shadow_using_ns::TestSuite> {};
925
926namespace typedef_ns {
927
928typedef testing::TestCase MyTestCase;
929// CHECK-MESSAGES: [[@LINE-1]]:18: warning: Google Test APIs named with 'case'
930// CHECK-FIXES: typedef testing::TestSuite MyTestCase;
931
932const MyTestCase *testCaseUses(const MyTestCase &Case) {
933 auto Lambda = [&Case]() {};
934 (void)new MyTestCase();
935 const MyTestCase *Result = &Case;
936 return Result;
937}
938
939struct TestCaseHolder {
940 MyTestCase Case;
941};
942
943class MyTest : public MyTestCase {};
944
945template <typename T = MyTestCase>
946class TestTypeHolder {};
947
948template <>
949class TestTypeHolder<MyTestCase> {};
950
951} // namespace typedef_ns
952
953const typedef_ns::MyTestCase *typedefTestCaseUses(
954 const typedef_ns::MyTestCase &Case) {
955 auto Lambda = [&Case]() {};
956 (void)new typedef_ns::MyTestCase();
957 const typedef_ns::MyTestCase *Result = &Case;
958 return Result;
959}
960
961struct TypedefTestCaseHolder {
962 typedef_ns::MyTestCase Case;
963};
964
965class TypedefMyTest : public typedef_ns::MyTestCase {};
966template <typename T = typedef_ns::MyTestCase> class TypedefTestTypeHolder {};
967template <> class TypedefTestTypeHolder<typedef_ns::MyTestCase> {};
968
969namespace alias_ns {
970
971using MyTestCase = testing::TestCase;
972// CHECK-MESSAGES: [[@LINE-1]]:29: warning: Google Test APIs named with 'case'
973// CHECK-FIXES: using MyTestCase = testing::TestSuite;
974
975const MyTestCase *testCaseUses(const MyTestCase &Case) {
976 auto Lambda = [&Case]() {};
977 (void)new MyTestCase();
978 const MyTestCase *Result = &Case;
979 return Result;
980}
981
982struct TestCaseHolder {
983 MyTestCase Case;
984};
985
986class MyTest : public MyTestCase {};
987template <typename T = MyTestCase> class TestTypeHolder {};
988template <> class TestTypeHolder<MyTestCase> {};
989
990} // namespace alias_ns
991
992const alias_ns::MyTestCase *aliasTestCaseUses(
993 const alias_ns::MyTestCase &Case) {
994 auto Lambda = [&Case]() {};
995 (void)new alias_ns::MyTestCase();
996 const alias_ns::MyTestCase *Result = &Case;
997 return Result;
998}
999
1000struct AliasTestCaseHolder {
1001 alias_ns::MyTestCase Case;
1002};
1003
1004class AliasMyTest : public alias_ns::MyTestCase {};
1005template <typename T = alias_ns::MyTestCase> class AliasTestTypeHolder {};
1006template <> class AliasTestTypeHolder<alias_ns::MyTestCase> {};
1007
1008template <typename T>
1009void templateFunction(const T& t) {
1010 (void)t.current_test_case();
1011 // CHECK-MESSAGES: [[@LINE-1]]:11: warning: Google Test APIs named with 'case'
1012}
1013
1014void instantiateTemplateFunction(const testing::UnitTest &Test) {
1015 templateFunction(Test);
1016}
1017

source code of clang-tools-extra/test/clang-tidy/checkers/google/upgrade-googletest-case.cpp