diff --git a/googletest/include/gtest/gtest-param-test.h b/googletest/include/gtest/gtest-param-test.h index 19238ae4d..2dbac48e6 100644 --- a/googletest/include/gtest/gtest-param-test.h +++ b/googletest/include/gtest/gtest-param-test.h @@ -409,7 +409,7 @@ internal::CartesianProductHolder Combine(const Generator&... g) { #define TEST_P(test_suite_name, test_name) \ class GTEST_TEST_CLASS_NAME_(test_suite_name, test_name) \ - : public ::testing::internal::UserTestSuite { \ + : public test_suite_name, private ::testing::internal::NonCopyable { \ public: \ GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)() {} \ void TestBody() override; \ diff --git a/googletest/include/gtest/gtest.h b/googletest/include/gtest/gtest.h index 6ff2774f5..4f037ad7a 100644 --- a/googletest/include/gtest/gtest.h +++ b/googletest/include/gtest/gtest.h @@ -190,19 +190,12 @@ void ReportFailureInUnknownLocation(TestPartResult::Type result_type, const std::string& message); std::set* GetIgnoredParameterizedTestSuites(); -// Mix-in class for user tests. -// This allows us to add/delete members to/from test suites without having to -// modify the test macros themselves. -// This makes the code easier to read and maintain, as well making it easier -// for users to suppress any warnings originating from these members, as the -// members are now declared in an external header instead of in user code. -template -class UserTestSuite : public TestClass { +class NonCopyable { public: - UserTestSuite() = default; - UserTestSuite(const UserTestSuite &) = delete; - UserTestSuite &operator=(const UserTestSuite &) = delete; - virtual ~UserTestSuite() = default; + NonCopyable() = default; + NonCopyable(const NonCopyable &) = delete; + NonCopyable &operator=(const NonCopyable &) = delete; + ~NonCopyable() = default; }; } // namespace internal