llvm-project/clang-tools-extra/test/clang-tidy/checkers/google-upgrade-googletest-c...

1017 lines
43 KiB
C++

// RUN: %check_clang_tidy %s google-upgrade-googletest-case %t -- -- -I%S/Inputs
// RUN: %check_clang_tidy -check-suffix=NOSUITE %s google-upgrade-googletest-case %t -- -- -DNOSUITE -I%S/Inputs/gtest/nosuite
#include "gtest/gtest.h"
// When including a version of googletest without the replacement names, this
// check should not produce any diagnostics. The following dummy fix is present
// because `check_clang_tidy.py` requires at least one warning, fix or note.
void Dummy() {}
// CHECK-FIXES-NOSUITE: void Dummy() {}
// ----------------------------------------------------------------------------
// Macros
TYPED_TEST_CASE(FooTest, FooTypes);
// CHECK-MESSAGES: [[@LINE-1]]:1: warning: Google Test APIs named with 'case' are deprecated; use equivalent APIs named with 'suite'
// CHECK-FIXES: TYPED_TEST_SUITE(FooTest, FooTypes);
TYPED_TEST_CASE_P(FooTest);
// CHECK-MESSAGES: [[@LINE-1]]:1: warning: Google Test APIs named with 'case'
// CHECK-FIXES: TYPED_TEST_SUITE_P(FooTest);
REGISTER_TYPED_TEST_CASE_P(FooTest, FooTestName);
// CHECK-MESSAGES: [[@LINE-1]]:1: warning: Google Test APIs named with 'case'
// CHECK-FIXES: REGISTER_TYPED_TEST_SUITE_P(FooTest, FooTestName);
INSTANTIATE_TYPED_TEST_CASE_P(FooPrefix, FooTest, FooTypes);
// CHECK-MESSAGES: [[@LINE-1]]:1: warning: Google Test APIs named with 'case'
// CHECK-FIXES: INSTANTIATE_TYPED_TEST_SUITE_P(FooPrefix, FooTest, FooTypes);
#ifdef TYPED_TEST_CASE
// CHECK-MESSAGES: [[@LINE-1]]:2: warning: Google Test APIs named with 'case'
#undef TYPED_TEST_CASE
// CHECK-MESSAGES: [[@LINE-1]]:8: warning: Google Test APIs named with 'case'
#define TYPED_TEST_CASE(CaseName, Types, ...)
#endif
#ifdef TYPED_TEST_CASE_P
// CHECK-MESSAGES: [[@LINE-1]]:2: warning: Google Test APIs named with 'case'
#undef TYPED_TEST_CASE_P
// CHECK-MESSAGES: [[@LINE-1]]:8: warning: Google Test APIs named with 'case'
#define TYPED_TEST_CASE_P(SuiteName)
#endif
#ifdef REGISTER_TYPED_TEST_CASE_P
// CHECK-MESSAGES: [[@LINE-1]]:2: warning: Google Test APIs named with 'case'
#undef REGISTER_TYPED_TEST_CASE_P
// CHECK-MESSAGES: [[@LINE-1]]:8: warning: Google Test APIs named with 'case'
#define REGISTER_TYPED_TEST_CASE_P(SuiteName, ...)
#endif
#ifdef INSTANTIATE_TYPED_TEST_CASE_P
// CHECK-MESSAGES: [[@LINE-1]]:2: warning: Google Test APIs named with 'case'
#undef INSTANTIATE_TYPED_TEST_CASE_P
// CHECK-MESSAGES: [[@LINE-1]]:8: warning: Google Test APIs named with 'case'
#define INSTANTIATE_TYPED_TEST_CASE_P(Prefix, SuiteName, Types, ...)
#endif
TYPED_TEST_CASE(FooTest, FooTypes);
TYPED_TEST_CASE_P(FooTest);
REGISTER_TYPED_TEST_CASE_P(FooTest, FooTestName);
INSTANTIATE_TYPED_TEST_CASE_P(FooPrefix, FooTest, FooTypes);
// ----------------------------------------------------------------------------
// testing::Test
class FooTest : public testing::Test {
public:
static void SetUpTestCase();
// CHECK-MESSAGES: [[@LINE-1]]:15: warning: Google Test APIs named with 'case'
// CHECK-FIXES: static void SetUpTestSuite();
static void TearDownTestCase();
// CHECK-MESSAGES: [[@LINE-1]]:15: warning: Google Test APIs named with 'case'
// CHECK-FIXES: static void TearDownTestSuite();
};
void FooTest::SetUpTestCase() {}
// CHECK-MESSAGES: [[@LINE-1]]:15: warning: Google Test APIs named with 'case'
// CHECK-FIXES: void FooTest::SetUpTestSuite() {}
void FooTest::TearDownTestCase() {}
// CHECK-MESSAGES: [[@LINE-1]]:15: warning: Google Test APIs named with 'case'
// CHECK-FIXES: void FooTest::TearDownTestSuite() {}
template <typename T> class FooTypedTest : public testing::Test {
public:
static void SetUpTestCase();
// CHECK-MESSAGES: [[@LINE-1]]:15: warning: Google Test APIs named with 'case'
// CHECK-FIXES: static void SetUpTestSuite();
static void TearDownTestCase();
// CHECK-MESSAGES: [[@LINE-1]]:15: warning: Google Test APIs named with 'case'
// CHECK-FIXES: static void TearDownTestSuite();
};
template <typename T> void FooTypedTest<T>::SetUpTestCase() {}
// CHECK-MESSAGES: [[@LINE-1]]:45: warning: Google Test APIs named with 'case'
// CHECK-FIXES: void FooTypedTest<T>::SetUpTestSuite() {}
template <typename T> void FooTypedTest<T>::TearDownTestCase() {}
// CHECK-MESSAGES: [[@LINE-1]]:45: warning: Google Test APIs named with 'case'
// CHECK-FIXES: void FooTypedTest<T>::TearDownTestSuite() {}
class BarTest : public testing::Test {
public:
using Test::SetUpTestCase;
// CHECK-MESSAGES: [[@LINE-1]]:15: warning: Google Test APIs named with 'case'
// CHECK-FIXES: using Test::SetUpTestSuite;
using Test::TearDownTestCase;
// CHECK-MESSAGES: [[@LINE-1]]:15: warning: Google Test APIs named with 'case'
// CHECK-FIXES: using Test::TearDownTestSuite;
};
class BarTest2 : public FooTest {
public:
using FooTest::SetUpTestCase;
// CHECK-MESSAGES: [[@LINE-1]]:18: warning: Google Test APIs named with 'case'
// CHECK-FIXES: using FooTest::SetUpTestSuite;
using FooTest::TearDownTestCase;
// CHECK-MESSAGES: [[@LINE-1]]:18: warning: Google Test APIs named with 'case'
// CHECK-FIXES: using FooTest::TearDownTestSuite;
};
// If a derived type already has the replacements, we only provide a warning
// since renaming or deleting the old declarations may not be safe.
class BarTest3 : public testing::Test {
public:
static void SetUpTestCase() {}
// CHECK-MESSAGES: [[@LINE-1]]:15: warning: Google Test APIs named with 'case'
static void SetUpTestSuite() {}
static void TearDownTestCase() {}
// CHECK-MESSAGES: [[@LINE-1]]:15: warning: Google Test APIs named with 'case'
static void TearDownTestSuite() {}
};
namespace nesting_ns {
namespace testing {
class Test {
public:
static void SetUpTestCase();
static void TearDownTestCase();
};
} // namespace testing
void Test() {
testing::Test::SetUpTestCase();
testing::Test::TearDownTestCase();
}
} // namespace nesting_ns
template <typename T>
void testInstantiationOnlyWarns() {
T::SetUpTestCase();
// CHECK-MESSAGES: [[@LINE-1]]:6: warning: Google Test APIs named with 'case'
T::TearDownTestCase();
// CHECK-MESSAGES: [[@LINE-1]]:6: warning: Google Test APIs named with 'case'
}
#define SET_UP_TEST_CASE_MACRO_REPLACE SetUpTestCase
#define TEST_SET_UP_TEST_CASE_MACRO_WARN_ONLY ::testing::Test::SetUpTestCase
void setUpTearDownCallAndReference() {
testing::Test::SetUpTestCase();
// CHECK-MESSAGES: [[@LINE-1]]:18: warning: Google Test APIs named with 'case'
// CHECK-FIXES: testing::Test::SetUpTestSuite();
FooTest::SetUpTestCase();
// CHECK-MESSAGES: [[@LINE-1]]:12: warning: Google Test APIs named with 'case'
// CHECK-FIXES: FooTest::SetUpTestSuite();
testing::Test::TearDownTestCase();
// CHECK-MESSAGES: [[@LINE-1]]:18: warning: Google Test APIs named with 'case'
// CHECK-FIXES: testing::Test::TearDownTestSuite();
FooTest::TearDownTestCase();
// CHECK-MESSAGES: [[@LINE-1]]:12: warning: Google Test APIs named with 'case'
// CHECK-FIXES: FooTest::TearDownTestSuite();
auto F = &testing::Test::SetUpTestCase;
// CHECK-MESSAGES: [[@LINE-1]]:28: warning: Google Test APIs named with 'case'
// CHECK-FIXES: auto F = &testing::Test::SetUpTestSuite;
F = &testing::Test::TearDownTestCase;
// CHECK-MESSAGES: [[@LINE-1]]:23: warning: Google Test APIs named with 'case'
// CHECK-FIXES: F = &testing::Test::TearDownTestSuite;
F = &FooTest::SetUpTestCase;
// CHECK-MESSAGES: [[@LINE-1]]:17: warning: Google Test APIs named with 'case'
// CHECK-FIXES: F = &FooTest::SetUpTestSuite;
F = &FooTest::TearDownTestCase;
// CHECK-MESSAGES: [[@LINE-1]]:17: warning: Google Test APIs named with 'case'
// CHECK-FIXES: F = &FooTest::TearDownTestSuite;
using MyTest = testing::Test;
MyTest::SetUpTestCase();
// CHECK-MESSAGES: [[@LINE-1]]:11: warning: Google Test APIs named with 'case'
// CHECK-FIXES: MyTest::SetUpTestSuite();
MyTest::TearDownTestCase();
// CHECK-MESSAGES: [[@LINE-1]]:11: warning: Google Test APIs named with 'case'
// CHECK-FIXES: MyTest::TearDownTestSuite();
BarTest3::SetUpTestCase();
// CHECK-MESSAGES: [[@LINE-1]]:13: warning: Google Test APIs named with 'case'
// CHECK-FIXES: BarTest3::SetUpTestSuite();
BarTest3::TearDownTestCase();
// CHECK-MESSAGES: [[@LINE-1]]:13: warning: Google Test APIs named with 'case'
// CHECK-FIXES: BarTest3::TearDownTestSuite();
testInstantiationOnlyWarns<testing::Test>();
testing::Test::SET_UP_TEST_CASE_MACRO_REPLACE();
// CHECK-MESSAGES: [[@LINE-1]]:18: warning: Google Test APIs named with 'case'
// CHECK-FIXES: testing::Test::SetUpTestSuite();
TEST_SET_UP_TEST_CASE_MACRO_WARN_ONLY();
// CHECK-MESSAGES: [[@LINE-1]]:3: warning: Google Test APIs named with 'case'
}
// ----------------------------------------------------------------------------
// testing::TestInfo
class FooTestInfo : public testing::TestInfo {
public:
const char *test_case_name() const;
// CHECK-MESSAGES: [[@LINE-1]]:15: warning: Google Test APIs named with 'case'
// CHECK-FIXES: const char *test_suite_name() const;
};
const char *FooTestInfo::test_case_name() const {}
// CHECK-MESSAGES: [[@LINE-1]]:26: warning: Google Test APIs named with 'case'
// CHECK-FIXES: const char *FooTestInfo::test_suite_name() const {}
class BarTestInfo : public testing::TestInfo {
public:
using TestInfo::test_case_name;
// CHECK-MESSAGES: [[@LINE-1]]:19: warning: Google Test APIs named with 'case'
// CHECK-FIXES: using TestInfo::test_suite_name;
};
class BarTestInfo2 : public FooTestInfo {
public:
using FooTestInfo::test_case_name;
// CHECK-MESSAGES: [[@LINE-1]]:22: warning: Google Test APIs named with 'case'
// CHECK-FIXES: using FooTestInfo::test_suite_name;
};
class BarTestInfo3 : public testing::TestInfo {
public:
const char* test_case_name() const;
// CHECK-MESSAGES: [[@LINE-1]]:15: warning: Google Test APIs named with 'case'
const char* test_suite_name() const;
};
namespace nesting_ns {
namespace testing {
class TestInfo {
public:
const char *test_case_name() const;
};
} // namespace testing
void FuncInfo() {
testing::TestInfo t;
(void)t.test_case_name();
}
} // namespace nesting_ns
template <typename T>
void testInfoInstantiationOnlyWarns() {
T t;
(void)t.test_case_name();
// CHECK-MESSAGES: [[@LINE-1]]:11: warning: Google Test APIs named with 'case'
}
#define TEST_CASE_NAME_MACRO_REPLACE test_case_name
#define TEST_CASE_NAME_MACRO_WARN_ONLY testing::TestInfo().test_case_name
void testInfoCallAndReference() {
(void)testing::TestInfo().test_case_name();
// CHECK-MESSAGES: [[@LINE-1]]:29: warning: Google Test APIs named with 'case'
// CHECK-FIXES: (void)testing::TestInfo().test_suite_name();
(void)FooTestInfo().test_case_name();
// CHECK-MESSAGES: [[@LINE-1]]:23: warning: Google Test APIs named with 'case'
// CHECK-FIXES: (void)FooTestInfo().test_suite_name();
auto F1 = &testing::TestInfo::test_case_name;
// CHECK-MESSAGES: [[@LINE-1]]:33: warning: Google Test APIs named with 'case'
// CHECK-FIXES: auto F1 = &testing::TestInfo::test_suite_name;
auto F2 = &FooTestInfo::test_case_name;
// CHECK-MESSAGES: [[@LINE-1]]:27: warning: Google Test APIs named with 'case'
// CHECK-FIXES: auto F2 = &FooTestInfo::test_suite_name;
using MyTestInfo = testing::TestInfo;
(void)MyTestInfo().test_case_name();
// CHECK-MESSAGES: [[@LINE-1]]:22: warning: Google Test APIs named with 'case'
// CHECK-FIXES: (void)MyTestInfo().test_suite_name();
(void)BarTestInfo3().test_case_name();
// CHECK-MESSAGES: [[@LINE-1]]:24: warning: Google Test APIs named with 'case'
// CHECK-FIXES: (void)BarTestInfo3().test_suite_name();
testInfoInstantiationOnlyWarns<testing::TestInfo>();
(void)testing::TestInfo().TEST_CASE_NAME_MACRO_REPLACE();
// CHECK-MESSAGES: [[@LINE-1]]:29: warning: Google Test APIs named with 'case'
// CHECK-FIXES: (void)testing::TestInfo().test_suite_name();
(void)TEST_CASE_NAME_MACRO_WARN_ONLY();
// CHECK-MESSAGES: [[@LINE-1]]:9: warning: Google Test APIs named with 'case'
}
// ----------------------------------------------------------------------------
// testing::TestEventListener
class FooTestEventListener : public testing::TestEventListener {
public:
void OnTestCaseStart(const testing::TestCase &) override;
// CHECK-MESSAGES: [[@LINE-1]]:8: warning: Google Test APIs named with 'case'
// CHECK-MESSAGES: [[@LINE-2]]:39: warning: Google Test APIs named with 'case'
// CHECK-FIXES: void OnTestSuiteStart(const testing::TestSuite &) override;
void OnTestCaseEnd(const testing::TestCase &) override;
// CHECK-MESSAGES: [[@LINE-1]]:8: warning: Google Test APIs named with 'case'
// CHECK-MESSAGES: [[@LINE-2]]:37: warning: Google Test APIs named with 'case'
// CHECK-FIXES: void OnTestSuiteEnd(const testing::TestSuite &) override;
};
void FooTestEventListener::OnTestCaseStart(const testing::TestCase &) {}
// CHECK-MESSAGES: [[@LINE-1]]:28: warning: Google Test APIs named with 'case'
// CHECK-MESSAGES: [[@LINE-2]]:59: warning: Google Test APIs named with 'case'
// CHECK-FIXES: void FooTestEventListener::OnTestSuiteStart(const testing::TestSuite &) {}
void FooTestEventListener::OnTestCaseEnd(const testing::TestCase &) {}
// CHECK-MESSAGES: [[@LINE-1]]:28: warning: Google Test APIs named with 'case'
// CHECK-MESSAGES: [[@LINE-2]]:57: warning: Google Test APIs named with 'case'
// CHECK-FIXES: void FooTestEventListener::OnTestSuiteEnd(const testing::TestSuite &) {}
class BarTestEventListener : public testing::TestEventListener {
public:
using TestEventListener::OnTestCaseStart;
// CHECK-MESSAGES: [[@LINE-1]]:28: warning: Google Test APIs named with 'case'
// CHECK-FIXES: using TestEventListener::OnTestSuiteStart;
using TestEventListener::OnTestCaseEnd;
// CHECK-MESSAGES: [[@LINE-1]]:28: warning: Google Test APIs named with 'case'
// CHECK-FIXES: using TestEventListener::OnTestSuiteEnd;
};
class BarTestEventListener2 : public BarTestEventListener {
public:
using BarTestEventListener::OnTestCaseStart;
// CHECK-MESSAGES: [[@LINE-1]]:31: warning: Google Test APIs named with 'case'
// CHECK-FIXES: using BarTestEventListener::OnTestSuiteStart;
using BarTestEventListener::OnTestCaseEnd;
// CHECK-MESSAGES: [[@LINE-1]]:31: warning: Google Test APIs named with 'case'
// CHECK-FIXES: using BarTestEventListener::OnTestSuiteEnd;
};
#ifndef NOSUITE
class BarTestEventListener3 : public testing::TestEventListener {
public:
void OnTestCaseStart(const testing::TestSuite &) override;
// CHECK-MESSAGES: [[@LINE-1]]:8: warning: Google Test APIs named with 'case'
void OnTestSuiteStart(const testing::TestSuite &) override;
void OnTestCaseEnd(const testing::TestSuite &) override;
// CHECK-MESSAGES: [[@LINE-1]]:8: warning: Google Test APIs named with 'case'
void OnTestSuiteEnd(const testing::TestSuite &) override;
};
#endif
namespace nesting_ns {
namespace testing {
class TestEventListener {
public:
virtual void OnTestCaseStart(const ::testing::TestCase &);
// CHECK-MESSAGES: [[@LINE-1]]:49: warning: Google Test APIs named with 'case'
// CHECK-FIXES: virtual void OnTestCaseStart(const ::testing::TestSuite &);
virtual void OnTestCaseEnd(const ::testing::TestCase &);
// CHECK-MESSAGES: [[@LINE-1]]:47: warning: Google Test APIs named with 'case'
// CHECK-FIXES: virtual void OnTestCaseEnd(const ::testing::TestSuite &);
};
} // namespace testing
void FuncTestEventListener(::testing::TestCase &Case) {
// CHECK-MESSAGES: [[@LINE-1]]:39: warning: Google Test APIs named with 'case'
// CHECK-FIXES: void FuncTestEventListener(::testing::TestSuite &Case) {
testing::TestEventListener().OnTestCaseStart(Case);
testing::TestEventListener().OnTestCaseEnd(Case);
}
} // namespace nesting_ns
#ifndef NOSUITE
template <typename T>
void testEventListenerInstantiationOnlyWarns() {
T().OnTestCaseStart(testing::TestSuite());
// CHECK-MESSAGES: [[@LINE-1]]:7: warning: Google Test APIs named with 'case'
T().OnTestCaseEnd(testing::TestSuite());
// CHECK-MESSAGES: [[@LINE-1]]:7: warning: Google Test APIs named with 'case'
}
#endif
#define ON_TEST_CASE_START_MACRO_REPLACE OnTestCaseStart
#define ON_TEST_CASE_START_MACRO_WARN_ONLY \
testing::TestEventListener().OnTestCaseStart
#define ON_TEST_CASE_END_MACRO_REPLACE OnTestCaseEnd
#define ON_TEST_CASE_END_MACRO_WARN_ONLY \
testing::TestEventListener().OnTestCaseEnd
void testEventListenerCallAndReference(testing::TestCase &Case) {
// CHECK-MESSAGES: [[@LINE-1]]:49: warning: Google Test APIs named with 'case'
// CHECK-FIXES: void testEventListenerCallAndReference(testing::TestSuite &Case) {
testing::TestEventListener().OnTestCaseStart(Case);
// CHECK-MESSAGES: [[@LINE-1]]:32: warning: Google Test APIs named with 'case'
// CHECK-FIXES: testing::TestEventListener().OnTestSuiteStart(Case);
testing::TestEventListener().OnTestCaseEnd(Case);
// CHECK-MESSAGES: [[@LINE-1]]:32: warning: Google Test APIs named with 'case'
// CHECK-FIXES: testing::TestEventListener().OnTestSuiteEnd(Case);
FooTestEventListener().OnTestCaseStart(Case);
// CHECK-MESSAGES: [[@LINE-1]]:26: warning: Google Test APIs named with 'case'
// CHECK-FIXES: FooTestEventListener().OnTestSuiteStart(Case);
FooTestEventListener().OnTestCaseEnd(Case);
// CHECK-MESSAGES: [[@LINE-1]]:26: warning: Google Test APIs named with 'case'
// CHECK-FIXES: FooTestEventListener().OnTestSuiteEnd(Case);
auto F1 = &testing::TestEventListener::OnTestCaseStart;
// CHECK-MESSAGES: [[@LINE-1]]:42: warning: Google Test APIs named with 'case'
// CHECK-FIXES: auto F1 = &testing::TestEventListener::OnTestSuiteStart;
F1 = &testing::TestEventListener::OnTestCaseEnd;
// CHECK-MESSAGES: [[@LINE-1]]:37: warning: Google Test APIs named with 'case'
// CHECK-FIXES: F1 = &testing::TestEventListener::OnTestSuiteEnd;
auto F2 = &FooTestEventListener::OnTestCaseStart;
// CHECK-MESSAGES: [[@LINE-1]]:36: warning: Google Test APIs named with 'case'
// CHECK-FIXES: auto F2 = &FooTestEventListener::OnTestSuiteStart;
F2 = &FooTestEventListener::OnTestCaseEnd;
// CHECK-MESSAGES: [[@LINE-1]]:31: warning: Google Test APIs named with 'case'
// CHECK-FIXES: F2 = &FooTestEventListener::OnTestSuiteEnd;
#ifndef NOSUITE
BarTestEventListener3().OnTestCaseStart(Case);
// CHECK-MESSAGES: [[@LINE-1]]:27: warning: Google Test APIs named with 'case'
// CHECK-FIXES: BarTestEventListener3().OnTestSuiteStart(Case);
BarTestEventListener3().OnTestCaseEnd(Case);
// CHECK-MESSAGES: [[@LINE-1]]:27: warning: Google Test APIs named with 'case'
// CHECK-FIXES: BarTestEventListener3().OnTestSuiteEnd(Case);
testEventListenerInstantiationOnlyWarns<testing::TestEventListener>();
#endif
testing::TestEventListener().ON_TEST_CASE_START_MACRO_REPLACE(Case);
// CHECK-MESSAGES: [[@LINE-1]]:32: warning: Google Test APIs named with 'case'
// CHECK-FIXES: testing::TestEventListener().OnTestSuiteStart(Case);
ON_TEST_CASE_START_MACRO_WARN_ONLY(Case);
// CHECK-MESSAGES: [[@LINE-1]]:3: warning: Google Test APIs named with 'case'
testing::TestEventListener().ON_TEST_CASE_END_MACRO_REPLACE(Case);
// CHECK-MESSAGES: [[@LINE-1]]:32: warning: Google Test APIs named with 'case'
// CHECK-FIXES: testing::TestEventListener().OnTestSuiteEnd(Case);
ON_TEST_CASE_END_MACRO_WARN_ONLY(Case);
// CHECK-MESSAGES: [[@LINE-1]]:3: warning: Google Test APIs named with 'case'
}
// ----------------------------------------------------------------------------
// testing::UnitTest
class FooUnitTest : public testing::UnitTest {
public:
testing::TestCase *current_test_case() const;
// CHECK-MESSAGES: [[@LINE-1]]:12: warning: Google Test APIs named with 'case'
// CHECK-MESSAGES: [[@LINE-2]]:22: warning: Google Test APIs named with 'case'
// CHECK-FIXES: testing::TestSuite *current_test_suite() const;
int successful_test_case_count() const;
// CHECK-MESSAGES: [[@LINE-1]]:7: warning: Google Test APIs named with 'case'
// CHECK-FIXES: int successful_test_suite_count() const;
int failed_test_case_count() const;
// CHECK-MESSAGES: [[@LINE-1]]:7: warning: Google Test APIs named with 'case'
// CHECK-FIXES: int failed_test_suite_count() const;
int total_test_case_count() const;
// CHECK-MESSAGES: [[@LINE-1]]:7: warning: Google Test APIs named with 'case'
// CHECK-FIXES: int total_test_suite_count() const;
int test_case_to_run_count() const;
// CHECK-MESSAGES: [[@LINE-1]]:7: warning: Google Test APIs named with 'case'
// CHECK-FIXES: int test_suite_to_run_count() const;
const testing::TestCase *GetTestCase(int) const;
// CHECK-MESSAGES: [[@LINE-1]]:18: warning: Google Test APIs named with 'case'
// CHECK-MESSAGES: [[@LINE-2]]:28: warning: Google Test APIs named with 'case'
// CHECK-FIXES: const testing::TestSuite *GetTestSuite(int) const;
};
testing::TestCase *FooUnitTest::current_test_case() const {}
// CHECK-MESSAGES: [[@LINE-1]]:10: warning: Google Test APIs named with 'case'
// CHECK-MESSAGES: [[@LINE-2]]:33: warning: Google Test APIs named with 'case'
// CHECK-FIXES: testing::TestSuite *FooUnitTest::current_test_suite() const {}
int FooUnitTest::successful_test_case_count() const {}
// CHECK-MESSAGES: [[@LINE-1]]:18: warning: Google Test APIs named with 'case'
// CHECK-FIXES: int FooUnitTest::successful_test_suite_count() const {}
int FooUnitTest::failed_test_case_count() const {}
// CHECK-MESSAGES: [[@LINE-1]]:18: warning: Google Test APIs named with 'case'
// CHECK-FIXES: int FooUnitTest::failed_test_suite_count() const {}
int FooUnitTest::total_test_case_count() const {}
// CHECK-MESSAGES: [[@LINE-1]]:18: warning: Google Test APIs named with 'case'
// CHECK-FIXES: int FooUnitTest::total_test_suite_count() const {}
int FooUnitTest::test_case_to_run_count() const {}
// CHECK-MESSAGES: [[@LINE-1]]:18: warning: Google Test APIs named with 'case'
// CHECK-FIXES: int FooUnitTest::test_suite_to_run_count() const {}
const testing::TestCase *FooUnitTest::GetTestCase(int) const {}
// CHECK-MESSAGES: [[@LINE-1]]:16: warning: Google Test APIs named with 'case'
// CHECK-MESSAGES: [[@LINE-2]]:39: warning: Google Test APIs named with 'case'
// CHECK-FIXES: const testing::TestSuite *FooUnitTest::GetTestSuite(int) const {}
// Type derived from testing::TestCase
class BarUnitTest : public testing::UnitTest {
public:
using testing::UnitTest::current_test_case;
// CHECK-MESSAGES: [[@LINE-1]]:28: warning: Google Test APIs named with 'case'
// CHECK-FIXES: using testing::UnitTest::current_test_suite;
using testing::UnitTest::successful_test_case_count;
// CHECK-MESSAGES: [[@LINE-1]]:28: warning: Google Test APIs named with 'case'
// CHECK-FIXES: using testing::UnitTest::successful_test_suite_count;
using testing::UnitTest::failed_test_case_count;
// CHECK-MESSAGES: [[@LINE-1]]:28: warning: Google Test APIs named with 'case'
// CHECK-FIXES: using testing::UnitTest::failed_test_suite_count;
using testing::UnitTest::total_test_case_count;
// CHECK-MESSAGES: [[@LINE-1]]:28: warning: Google Test APIs named with 'case'
// CHECK-FIXES: using testing::UnitTest::total_test_suite_count;
using testing::UnitTest::test_case_to_run_count;
// CHECK-MESSAGES: [[@LINE-1]]:28: warning: Google Test APIs named with 'case'
// CHECK-FIXES: using testing::UnitTest::test_suite_to_run_count;
using testing::UnitTest::GetTestCase;
// CHECK-MESSAGES: [[@LINE-1]]:28: warning: Google Test APIs named with 'case'
// CHECK-FIXES: using testing::UnitTest::GetTestSuite;
};
class BarUnitTest2 : public BarUnitTest {
using BarUnitTest::current_test_case;
// CHECK-MESSAGES: [[@LINE-1]]:22: warning: Google Test APIs named with 'case'
// CHECK-FIXES: using BarUnitTest::current_test_suite;
using BarUnitTest::successful_test_case_count;
// CHECK-MESSAGES: [[@LINE-1]]:22: warning: Google Test APIs named with 'case'
// CHECK-FIXES: using BarUnitTest::successful_test_suite_count;
using BarUnitTest::failed_test_case_count;
// CHECK-MESSAGES: [[@LINE-1]]:22: warning: Google Test APIs named with 'case'
// CHECK-FIXES: using BarUnitTest::failed_test_suite_count;
using BarUnitTest::total_test_case_count;
// CHECK-MESSAGES: [[@LINE-1]]:22: warning: Google Test APIs named with 'case'
// CHECK-FIXES: using BarUnitTest::total_test_suite_count;
using BarUnitTest::test_case_to_run_count;
// CHECK-MESSAGES: [[@LINE-1]]:22: warning: Google Test APIs named with 'case'
// CHECK-FIXES: using BarUnitTest::test_suite_to_run_count;
using BarUnitTest::GetTestCase;
// CHECK-MESSAGES: [[@LINE-1]]:22: warning: Google Test APIs named with 'case'
// CHECK-FIXES: using BarUnitTest::GetTestSuite;
};
#ifndef NOSUITE
class BarUnitTest3 : public testing::UnitTest {
testing::TestSuite *current_test_case() const;
// CHECK-MESSAGES: [[@LINE-1]]:23: warning: Google Test APIs named with 'case'
int successful_test_case_count() const;
// CHECK-MESSAGES: [[@LINE-1]]:7: warning: Google Test APIs named with 'case'
int failed_test_case_count() const;
// CHECK-MESSAGES: [[@LINE-1]]:7: warning: Google Test APIs named with 'case'
int total_test_case_count() const;
// CHECK-MESSAGES: [[@LINE-1]]:7: warning: Google Test APIs named with 'case'
int test_case_to_run_count() const;
// CHECK-MESSAGES: [[@LINE-1]]:7: warning: Google Test APIs named with 'case'
const testing::TestSuite *GetTestCase(int) const;
// CHECK-MESSAGES: [[@LINE-1]]:29: warning: Google Test APIs named with 'case'
testing::TestSuite *current_test_suite() const;
int successful_test_suite_count() const;
int failed_test_suite_count() const;
int total_test_suite_count() const;
int test_suite_to_run_count() const;
const testing::TestSuite *GetTestSuite(int) const;
};
#endif
namespace nesting_ns {
namespace testing {
class TestSuite;
class UnitTest {
public:
TestSuite *current_test_case() const;
int successful_test_case_count() const;
int failed_test_case_count() const;
int total_test_case_count() const;
int test_case_to_run_count() const;
const TestSuite *GetTestCase(int) const;
};
} // namespace testing
void FuncUnitTest() {
testing::UnitTest t;
(void)t.current_test_case();
(void)t.successful_test_case_count();
(void)t.failed_test_case_count();
(void)t.total_test_case_count();
(void)t.test_case_to_run_count();
(void)t.GetTestCase(0);
}
} // namespace nesting_ns
template <typename T>
void unitTestInstantiationOnlyWarns() {
T t;
(void)t.current_test_case();
// CHECK-MESSAGES: [[@LINE-1]]:11: warning: Google Test APIs named with 'case'
(void)t.successful_test_case_count();
// CHECK-MESSAGES: [[@LINE-1]]:11: warning: Google Test APIs named with 'case'
(void)t.failed_test_case_count();
// CHECK-MESSAGES: [[@LINE-1]]:11: warning: Google Test APIs named with 'case'
(void)t.total_test_case_count();
// CHECK-MESSAGES: [[@LINE-1]]:11: warning: Google Test APIs named with 'case'
(void)t.test_case_to_run_count();
// CHECK-MESSAGES: [[@LINE-1]]:11: warning: Google Test APIs named with 'case'
(void)t.GetTestCase(0);
// CHECK-MESSAGES: [[@LINE-1]]:11: warning: Google Test APIs named with 'case'
}
#define UNIT_TEST_NAME_MACRO_REPLACE1 current_test_case
#define UNIT_TEST_NAME_MACRO_REPLACE2 successful_test_case_count
#define UNIT_TEST_NAME_MACRO_REPLACE3 failed_test_case_count
#define UNIT_TEST_NAME_MACRO_REPLACE4 total_test_case_count
#define UNIT_TEST_NAME_MACRO_REPLACE5 test_case_to_run_count
#define UNIT_TEST_NAME_MACRO_REPLACE6 GetTestCase
#define UNIT_TEST_NAME_MACRO_WARN_ONLY1 testing::UnitTest().current_test_case
#define UNIT_TEST_NAME_MACRO_WARN_ONLY2 \
testing::UnitTest().successful_test_case_count
#define UNIT_TEST_NAME_MACRO_WARN_ONLY3 \
testing::UnitTest().failed_test_case_count
#define UNIT_TEST_NAME_MACRO_WARN_ONLY4 \
testing::UnitTest().total_test_case_count
#define UNIT_TEST_NAME_MACRO_WARN_ONLY5 \
testing::UnitTest().test_case_to_run_count
#define UNIT_TEST_NAME_MACRO_WARN_ONLY6 testing::UnitTest().GetTestCase
void unitTestCallAndReference() {
(void)testing::UnitTest().current_test_case();
// CHECK-MESSAGES: [[@LINE-1]]:29: warning: Google Test APIs named with 'case'
// CHECK-FIXES: (void)testing::UnitTest().current_test_suite();
(void)testing::UnitTest().successful_test_case_count();
// CHECK-MESSAGES: [[@LINE-1]]:29: warning: Google Test APIs named with 'case'
// CHECK-FIXES: (void)testing::UnitTest().successful_test_suite_count();
(void)testing::UnitTest().failed_test_case_count();
// CHECK-MESSAGES: [[@LINE-1]]:29: warning: Google Test APIs named with 'case'
// CHECK-FIXES: (void)testing::UnitTest().failed_test_suite_count();
(void)testing::UnitTest().total_test_case_count();
// CHECK-MESSAGES: [[@LINE-1]]:29: warning: Google Test APIs named with 'case'
// CHECK-FIXES: (void)testing::UnitTest().total_test_suite_count();
(void)testing::UnitTest().test_case_to_run_count();
// CHECK-MESSAGES: [[@LINE-1]]:29: warning: Google Test APIs named with 'case'
// CHECK-FIXES: (void)testing::UnitTest().test_suite_to_run_count();
(void)testing::UnitTest().GetTestCase(0);
// CHECK-MESSAGES: [[@LINE-1]]:29: warning: Google Test APIs named with 'case'
// CHECK-FIXES: (void)testing::UnitTest().GetTestSuite(0);
(void)FooUnitTest().current_test_case();
// CHECK-MESSAGES: [[@LINE-1]]:23: warning: Google Test APIs named with 'case'
// CHECK-FIXES: (void)FooUnitTest().current_test_suite();
(void)FooUnitTest().successful_test_case_count();
// CHECK-MESSAGES: [[@LINE-1]]:23: warning: Google Test APIs named with 'case'
// CHECK-FIXES: (void)FooUnitTest().successful_test_suite_count();
(void)FooUnitTest().failed_test_case_count();
// CHECK-MESSAGES: [[@LINE-1]]:23: warning: Google Test APIs named with 'case'
// CHECK-FIXES: (void)FooUnitTest().failed_test_suite_count();
(void)FooUnitTest().total_test_case_count();
// CHECK-MESSAGES: [[@LINE-1]]:23: warning: Google Test APIs named with 'case'
// CHECK-FIXES: (void)FooUnitTest().total_test_suite_count();
(void)FooUnitTest().test_case_to_run_count();
// CHECK-MESSAGES: [[@LINE-1]]:23: warning: Google Test APIs named with 'case'
// CHECK-FIXES: (void)FooUnitTest().test_suite_to_run_count();
(void)FooUnitTest().GetTestCase(0);
// CHECK-MESSAGES: [[@LINE-1]]:23: warning: Google Test APIs named with 'case'
// CHECK-FIXES: (void)FooUnitTest().GetTestSuite(0);
auto U1 = &testing::UnitTest::current_test_case;
// CHECK-MESSAGES: [[@LINE-1]]:33: warning: Google Test APIs named with 'case'
// CHECK-FIXES: auto U1 = &testing::UnitTest::current_test_suite;
auto U2 = &testing::UnitTest::successful_test_case_count;
// CHECK-MESSAGES: [[@LINE-1]]:33: warning: Google Test APIs named with 'case'
// CHECK-FIXES: auto U2 = &testing::UnitTest::successful_test_suite_count;
auto U3 = &testing::UnitTest::failed_test_case_count;
// CHECK-MESSAGES: [[@LINE-1]]:33: warning: Google Test APIs named with 'case'
// CHECK-FIXES: auto U3 = &testing::UnitTest::failed_test_suite_count;
auto U4 = &testing::UnitTest::total_test_case_count;
// CHECK-MESSAGES: [[@LINE-1]]:33: warning: Google Test APIs named with 'case'
// CHECK-FIXES: auto U4 = &testing::UnitTest::total_test_suite_count;
auto U5 = &testing::UnitTest::test_case_to_run_count;
// CHECK-MESSAGES: [[@LINE-1]]:33: warning: Google Test APIs named with 'case'
// CHECK-FIXES: auto U5 = &testing::UnitTest::test_suite_to_run_count;
auto U6 = &testing::UnitTest::GetTestCase;
// CHECK-MESSAGES: [[@LINE-1]]:33: warning: Google Test APIs named with 'case'
// CHECK-FIXES: auto U6 = &testing::UnitTest::GetTestSuite;
auto F1 = &FooUnitTest::current_test_case;
// CHECK-MESSAGES: [[@LINE-1]]:27: warning: Google Test APIs named with 'case'
// CHECK-FIXES: auto F1 = &FooUnitTest::current_test_suite;
auto F2 = &FooUnitTest::successful_test_case_count;
// CHECK-MESSAGES: [[@LINE-1]]:27: warning: Google Test APIs named with 'case'
// CHECK-FIXES: auto F2 = &FooUnitTest::successful_test_suite_count;
auto F3 = &FooUnitTest::failed_test_case_count;
// CHECK-MESSAGES: [[@LINE-1]]:27: warning: Google Test APIs named with 'case'
// CHECK-FIXES: auto F3 = &FooUnitTest::failed_test_suite_count;
auto F4 = &FooUnitTest::total_test_case_count;
// CHECK-MESSAGES: [[@LINE-1]]:27: warning: Google Test APIs named with 'case'
// CHECK-FIXES: auto F4 = &FooUnitTest::total_test_suite_count;
auto F5 = &FooUnitTest::test_case_to_run_count;
// CHECK-MESSAGES: [[@LINE-1]]:27: warning: Google Test APIs named with 'case'
// CHECK-FIXES: auto F5 = &FooUnitTest::test_suite_to_run_count;
auto F6 = &FooUnitTest::GetTestCase;
// CHECK-MESSAGES: [[@LINE-1]]:27: warning: Google Test APIs named with 'case'
// CHECK-FIXES: auto F6 = &FooUnitTest::GetTestSuite;
using MyUnitTest = testing::UnitTest;
(void)MyUnitTest().current_test_case();
// CHECK-MESSAGES: [[@LINE-1]]:22: warning: Google Test APIs named with 'case'
// CHECK-FIXES: (void)MyUnitTest().current_test_suite();
(void)MyUnitTest().successful_test_case_count();
// CHECK-MESSAGES: [[@LINE-1]]:22: warning: Google Test APIs named with 'case'
// CHECK-FIXES: (void)MyUnitTest().successful_test_suite_count();
(void)MyUnitTest().failed_test_case_count();
// CHECK-MESSAGES: [[@LINE-1]]:22: warning: Google Test APIs named with 'case'
// CHECK-FIXES: (void)MyUnitTest().failed_test_suite_count();
(void)MyUnitTest().total_test_case_count();
// CHECK-MESSAGES: [[@LINE-1]]:22: warning: Google Test APIs named with 'case'
// CHECK-FIXES: (void)MyUnitTest().total_test_suite_count();
(void)MyUnitTest().test_case_to_run_count();
// CHECK-MESSAGES: [[@LINE-1]]:22: warning: Google Test APIs named with 'case'
// CHECK-FIXES: (void)MyUnitTest().test_suite_to_run_count();
(void)MyUnitTest().GetTestCase(0);
// CHECK-MESSAGES: [[@LINE-1]]:22: warning: Google Test APIs named with 'case'
// CHECK-FIXES: (void)MyUnitTest().GetTestSuite(0);
unitTestInstantiationOnlyWarns<testing::UnitTest>();
(void)testing::UnitTest().UNIT_TEST_NAME_MACRO_REPLACE1();
// CHECK-MESSAGES: [[@LINE-1]]:29: warning: Google Test APIs named with 'case'
// CHECK-FIXES: (void)testing::UnitTest().current_test_suite();
(void)testing::UnitTest().UNIT_TEST_NAME_MACRO_REPLACE2();
// CHECK-MESSAGES: [[@LINE-1]]:29: warning: Google Test APIs named with 'case'
// CHECK-FIXES: (void)testing::UnitTest().successful_test_suite_count();
(void)testing::UnitTest().UNIT_TEST_NAME_MACRO_REPLACE3();
// CHECK-MESSAGES: [[@LINE-1]]:29: warning: Google Test APIs named with 'case'
// CHECK-FIXES: (void)testing::UnitTest().failed_test_suite_count();
(void)testing::UnitTest().UNIT_TEST_NAME_MACRO_REPLACE4();
// CHECK-MESSAGES: [[@LINE-1]]:29: warning: Google Test APIs named with 'case'
// CHECK-FIXES: (void)testing::UnitTest().total_test_suite_count();
(void)testing::UnitTest().UNIT_TEST_NAME_MACRO_REPLACE5();
// CHECK-MESSAGES: [[@LINE-1]]:29: warning: Google Test APIs named with 'case'
// CHECK-FIXES: (void)testing::UnitTest().test_suite_to_run_count();
(void)testing::UnitTest().UNIT_TEST_NAME_MACRO_REPLACE6(0);
// CHECK-MESSAGES: [[@LINE-1]]:29: warning: Google Test APIs named with 'case'
// CHECK-FIXES: (void)testing::UnitTest().GetTestSuite(0);
UNIT_TEST_NAME_MACRO_WARN_ONLY1();
// CHECK-MESSAGES: [[@LINE-1]]:3: warning: Google Test APIs named with 'case'
UNIT_TEST_NAME_MACRO_WARN_ONLY2();
// CHECK-MESSAGES: [[@LINE-1]]:3: warning: Google Test APIs named with 'case'
UNIT_TEST_NAME_MACRO_WARN_ONLY3();
// CHECK-MESSAGES: [[@LINE-1]]:3: warning: Google Test APIs named with 'case'
UNIT_TEST_NAME_MACRO_WARN_ONLY4();
// CHECK-MESSAGES: [[@LINE-1]]:3: warning: Google Test APIs named with 'case'
UNIT_TEST_NAME_MACRO_WARN_ONLY5();
// CHECK-MESSAGES: [[@LINE-1]]:3: warning: Google Test APIs named with 'case'
UNIT_TEST_NAME_MACRO_WARN_ONLY6(0);
// CHECK-MESSAGES: [[@LINE-1]]:3: warning: Google Test APIs named with 'case'
}
// ----------------------------------------------------------------------------
// testing::TestCase
template <typename T>
void TestCaseInTemplate() {
T t;
testing::TestCase Case;
// CHECK-MESSAGES: [[@LINE-1]]:12: warning: Google Test APIs named with 'case'
// CHECK-FIXES: testing::TestSuite Case;
}
#define TEST_CASE_CAN_FIX TestCase
#define TEST_CASE_WARN_ONLY testing::TestCase
const testing::TestCase *testCaseUses(const testing::TestCase &Case) {
// CHECK-MESSAGES: [[@LINE-1]]:16: warning: Google Test APIs named with 'case'
// CHECK-MESSAGES: [[@LINE-2]]:54: warning: Google Test APIs named with 'case'
// CHECK-FIXES: const testing::TestSuite *testCaseUses(const testing::TestSuite &Case) {
// No change for implicit declarations:
auto Lambda = [&Case]() {};
TestCaseInTemplate<testing::TestCase>();
// CHECK-MESSAGES: [[@LINE-1]]:31: warning: Google Test APIs named with 'case'
// CHECK-FIXES: TestCaseInTemplate<testing::TestSuite>();
testing::TEST_CASE_CAN_FIX C1;
// CHECK-MESSAGES: [[@LINE-1]]:12: warning: Google Test APIs named with 'case'
// CHECK-FIXES: testing::TestSuite C1;
TEST_CASE_WARN_ONLY C2;
// CHECK-MESSAGES: [[@LINE-1]]:3: warning: Google Test APIs named with 'case'
(void)new testing::TestCase();
// CHECK-MESSAGES: [[@LINE-1]]:22: warning: Google Test APIs named with 'case'
// CHECK-FIXES: (void)new testing::TestSuite();
const testing::TestCase *Result = &Case;
// CHECK-MESSAGES: [[@LINE-1]]:18: warning: Google Test APIs named with 'case'
// CHECK-FIXES: const testing::TestSuite *Result = &Case;
return Result;
}
struct TestCaseHolder {
testing::TestCase Case;
// CHECK-MESSAGES: [[@LINE-1]]:12: warning: Google Test APIs named with 'case'
// CHECK-FIXES: testing::TestSuite Case;
};
class MyTest : public testing::TestCase {};
// CHECK-MESSAGES: [[@LINE-1]]:32: warning: Google Test APIs named with 'case'
// CHECK-FIXES: class MyTest : public testing::TestSuite {};
template <typename T = testing::TestCase>
// CHECK-MESSAGES: [[@LINE-1]]:33: warning: Google Test APIs named with 'case'
// CHECK-FIXES: template <typename T = testing::TestSuite>
class TestTypeHolder {};
template <>
class TestTypeHolder<testing::TestCase> {};
// CHECK-MESSAGES: [[@LINE-1]]:31: warning: Google Test APIs named with 'case'
// CHECK-FIXES: class TestTypeHolder<testing::TestSuite> {};
namespace shadow_using_ns {
using testing::TestCase;
// CHECK-MESSAGES: [[@LINE-1]]:16: warning: Google Test APIs named with 'case'
// CHECK-FIXES: using testing::TestSuite;
const TestCase *testCaseUses(const TestCase &Case) {
// CHECK-MESSAGES: [[@LINE-1]]:7: warning: Google Test APIs named with 'case'
// CHECK-MESSAGES: [[@LINE-2]]:36: warning: Google Test APIs named with 'case'
// CHECK-FIXES: const TestSuite *testCaseUses(const TestSuite &Case) {
// No change for implicit declarations:
auto Lambda = [&Case]() {};
(void)new TestCase();
// CHECK-MESSAGES: [[@LINE-1]]:13: warning: Google Test APIs named with 'case'
// CHECK-FIXES: (void)new TestSuite();
const TestCase *Result = &Case;
// CHECK-MESSAGES: [[@LINE-1]]:9: warning: Google Test APIs named with 'case'
// CHECK-FIXES: const TestSuite *Result = &Case;
return Result;
}
struct TestCaseHolder {
TestCase Case;
// CHECK-MESSAGES: [[@LINE-1]]:3: warning: Google Test APIs named with 'case'
// CHECK-FIXES: TestSuite Case;
};
class MyTest : public TestCase {};
// CHECK-MESSAGES: [[@LINE-1]]:23: warning: Google Test APIs named with 'case'
// CHECK-FIXES: class MyTest : public TestSuite {};
template <typename T = TestCase>
// CHECK-MESSAGES: [[@LINE-1]]:24: warning: Google Test APIs named with 'case'
// CHECK-FIXES: template <typename T = TestSuite>
class TestTypeHolder {};
template <>
class TestTypeHolder<TestCase> {};
// CHECK-MESSAGES: [[@LINE-1]]:22: warning: Google Test APIs named with 'case'
// CHECK-FIXES: class TestTypeHolder<TestSuite> {};
} // namespace shadow_using_ns
const shadow_using_ns::TestCase *shadowTestCaseUses(
const shadow_using_ns::TestCase &Case) {
// CHECK-MESSAGES: [[@LINE-2]]:24: warning: Google Test APIs named with 'case'
// CHECK-MESSAGES: [[@LINE-2]]:28: warning: Google Test APIs named with 'case'
// CHECK-FIXES: const shadow_using_ns::TestSuite *shadowTestCaseUses(
// CHECK-FIXES: const shadow_using_ns::TestSuite &Case) {
// No match for implicit declarations, as in the lambda capture:
auto Lambda = [&Case]() {};
(void)new shadow_using_ns::TestCase();
// CHECK-MESSAGES: [[@LINE-1]]:30: warning: Google Test APIs named with 'case'
// CHECK-FIXES: (void)new shadow_using_ns::TestSuite();
const shadow_using_ns::TestCase *Result = &Case;
// CHECK-MESSAGES: [[@LINE-1]]:26: warning: Google Test APIs named with 'case'
// CHECK-FIXES: const shadow_using_ns::TestSuite *Result = &Case;
return Result;
}
struct ShadowTestCaseHolder {
shadow_using_ns::TestCase Case;
// CHECK-MESSAGES: [[@LINE-1]]:20: warning: Google Test APIs named with 'case'
// CHECK-FIXES: shadow_using_ns::TestSuite Case;
};
class ShadowMyTest : public shadow_using_ns::TestCase {};
// CHECK-MESSAGES: [[@LINE-1]]:46: warning: Google Test APIs named with 'case'
// CHECK-FIXES: class ShadowMyTest : public shadow_using_ns::TestSuite {};
template <typename T = shadow_using_ns::TestCase>
// CHECK-MESSAGES: [[@LINE-1]]:41: warning: Google Test APIs named with 'case'
// CHECK-FIXES: template <typename T = shadow_using_ns::TestSuite>
class ShadowTestTypeHolder {};
template <>
class ShadowTestTypeHolder<shadow_using_ns::TestCase> {};
// CHECK-MESSAGES: [[@LINE-1]]:45: warning: Google Test APIs named with 'case'
// CHECK-FIXES: class ShadowTestTypeHolder<shadow_using_ns::TestSuite> {};
namespace typedef_ns {
typedef testing::TestCase MyTestCase;
// CHECK-MESSAGES: [[@LINE-1]]:18: warning: Google Test APIs named with 'case'
// CHECK-FIXES: typedef testing::TestSuite MyTestCase;
const MyTestCase *testCaseUses(const MyTestCase &Case) {
auto Lambda = [&Case]() {};
(void)new MyTestCase();
const MyTestCase *Result = &Case;
return Result;
}
struct TestCaseHolder {
MyTestCase Case;
};
class MyTest : public MyTestCase {};
template <typename T = MyTestCase>
class TestTypeHolder {};
template <>
class TestTypeHolder<MyTestCase> {};
} // namespace typedef_ns
const typedef_ns::MyTestCase *typedefTestCaseUses(
const typedef_ns::MyTestCase &Case) {
auto Lambda = [&Case]() {};
(void)new typedef_ns::MyTestCase();
const typedef_ns::MyTestCase *Result = &Case;
return Result;
}
struct TypedefTestCaseHolder {
typedef_ns::MyTestCase Case;
};
class TypedefMyTest : public typedef_ns::MyTestCase {};
template <typename T = typedef_ns::MyTestCase> class TypedefTestTypeHolder {};
template <> class TypedefTestTypeHolder<typedef_ns::MyTestCase> {};
namespace alias_ns {
using MyTestCase = testing::TestCase;
// CHECK-MESSAGES: [[@LINE-1]]:29: warning: Google Test APIs named with 'case'
// CHECK-FIXES: using MyTestCase = testing::TestSuite;
const MyTestCase *testCaseUses(const MyTestCase &Case) {
auto Lambda = [&Case]() {};
(void)new MyTestCase();
const MyTestCase *Result = &Case;
return Result;
}
struct TestCaseHolder {
MyTestCase Case;
};
class MyTest : public MyTestCase {};
template <typename T = MyTestCase> class TestTypeHolder {};
template <> class TestTypeHolder<MyTestCase> {};
} // namespace alias_ns
const alias_ns::MyTestCase *aliasTestCaseUses(
const alias_ns::MyTestCase &Case) {
auto Lambda = [&Case]() {};
(void)new alias_ns::MyTestCase();
const alias_ns::MyTestCase *Result = &Case;
return Result;
}
struct AliasTestCaseHolder {
alias_ns::MyTestCase Case;
};
class AliasMyTest : public alias_ns::MyTestCase {};
template <typename T = alias_ns::MyTestCase> class AliasTestTypeHolder {};
template <> class AliasTestTypeHolder<alias_ns::MyTestCase> {};
template <typename T>
void templateFunction(const T& t) {
(void)t.current_test_case();
// CHECK-MESSAGES: [[@LINE-1]]:11: warning: Google Test APIs named with 'case'
}
void instantiateTemplateFunction(const testing::UnitTest &Test) {
templateFunction(Test);
}