From ec94d9f24c92a5090fda5567156d6dde99cdbf31 Mon Sep 17 00:00:00 2001 From: Abseil Team Date: Mon, 8 Jun 2020 08:23:02 -0400 Subject: [PATCH] Googletest export Fail TEST_Ps or TYPED_TEST_Ps that are defined but are not instantiated, as well as the opposite case, where INSTANTIATE_TEST_SUITE_P or INSTANTIATE_TYPED_TEST_SUITE_P is used but without any matching TEST_P or TYPED_TEST_P. PiperOrigin-RevId: 315255779 --- googletest/src/gtest.cc | 4 ++-- .../googletest-output-test-golden-lin.txt | 24 ++++++++++++++----- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/googletest/src/gtest.cc b/googletest/src/gtest.cc index 5a8999f6..2e79ea1f 100644 --- a/googletest/src/gtest.cc +++ b/googletest/src/gtest.cc @@ -432,8 +432,8 @@ namespace { // inserted to report ether an error or a log message. // // This configuration bit will likely be removed at some point. -constexpr bool kErrorOnUninstantiatedParameterizedTest = false; -constexpr bool kErrorOnUninstantiatedTypeParameterizedTest = false; +constexpr bool kErrorOnUninstantiatedParameterizedTest = true; +constexpr bool kErrorOnUninstantiatedTypeParameterizedTest = true; // A test that fails at a given file/line location with a given message. class FailureTest : public Test { diff --git a/googletest/test/googletest-output-test-golden-lin.txt b/googletest/test/googletest-output-test-golden-lin.txt index 8bc45800..85debe85 100644 --- a/googletest/test/googletest-output-test-golden-lin.txt +++ b/googletest/test/googletest-output-test-golden-lin.txt @@ -984,6 +984,7 @@ Stack trace: (omitted) [ FAILED ] PrintingStrings/ParamTest.Failure/a, where GetParam() = "a" [----------] 3 tests from GoogleTestVerification [ RUN ] GoogleTestVerification.UninstantiatedParamaterizedTestSuite +googletest-output-test_.cc:#: Failure Paramaterized test suite NoTests is instantiated via INSTANTIATE_TEST_SUITE_P, but no tests are defined via TEST_P . No test cases will run. Ideally, INSTANTIATE_TEST_SUITE_P should only ever be invoked from code that always depend on code that provides TEST_P. Failing to do so is often an indication of dead code, e.g. the last TEST_P was removed but the rest got left behind. @@ -991,8 +992,11 @@ Ideally, INSTANTIATE_TEST_SUITE_P should only ever be invoked from code that alw To suppress this error for this test suite, insert the following line (in a non-header) in the namespace it is defined in: GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(NoTests); -[ OK ] GoogleTestVerification.UninstantiatedParamaterizedTestSuite +Stack trace: (omitted) + +[ FAILED ] GoogleTestVerification.UninstantiatedParamaterizedTestSuite [ RUN ] GoogleTestVerification.UninstantiatedParamaterizedTestSuite +googletest-output-test_.cc:#: Failure Paramaterized test suite DetectNotInstantiatedTest is defined via TEST_P, but never instantiated. None of the test cases will run. Either no INSTANTIATE_TEST_SUITE_P is provided or the only ones provided expand to nothing. Ideally, TEST_P definitions should only ever be included as part of binaries that intend to use them. (As opposed to, for example, being placed in a library that may be linked in to get other utilities.) @@ -1000,8 +1004,11 @@ Ideally, TEST_P definitions should only ever be included as part of binaries tha To suppress this error for this test suite, insert the following line (in a non-header) in the namespace it is defined in: GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(DetectNotInstantiatedTest); -[ OK ] GoogleTestVerification.UninstantiatedParamaterizedTestSuite +Stack trace: (omitted) + +[ FAILED ] GoogleTestVerification.UninstantiatedParamaterizedTestSuite [ RUN ] GoogleTestVerification.UninstantiatedTypeParamaterizedTestSuite +googletest-output-test_.cc:#: Failure Type paramaterized test suite DetectNotInstantiatedTypesTest is defined via REGISTER_TYPED_TEST_SUITE_P, but never instantiated via INSTANTIATE_TYPED_TEST_SUITE_P. None of the test cases will run. Ideally, TYPED_TEST_P definitions should only ever be included as part of binaries that intend to use them. (As opposed to, for example, being placed in a library that may be linked in to get other utilities.) @@ -1009,7 +1016,9 @@ Ideally, TYPED_TEST_P definitions should only ever be included as part of binari To suppress this error for this test suite, insert the following line (in a non-header) in the namespace it is definedin in: GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(DetectNotInstantiatedTypesTest); -[ OK ] GoogleTestVerification.UninstantiatedTypeParamaterizedTestSuite +Stack trace: (omitted) + +[ FAILED ] GoogleTestVerification.UninstantiatedTypeParamaterizedTestSuite [----------] Global test environment tear-down BarEnvironment::TearDown() called. googletest-output-test_.cc:#: Failure @@ -1024,8 +1033,8 @@ Expected fatal failure. Stack trace: (omitted) [==========] 88 tests from 41 test suites ran. -[ PASSED ] 34 tests. -[ FAILED ] 54 tests, listed below: +[ PASSED ] 31 tests. +[ FAILED ] 57 tests, listed below: [ FAILED ] NonfatalFailureTest.EscapesStringOperands [ FAILED ] NonfatalFailureTest.DiffForLongStrings [ FAILED ] FatalFailureTest.FatalFailureInSubroutine @@ -1080,8 +1089,11 @@ Stack trace: (omitted) [ FAILED ] BadDynamicFixture2.Derived [ FAILED ] PrintingFailingParams/FailingParamTest.Fails/0, where GetParam() = 2 [ FAILED ] PrintingStrings/ParamTest.Failure/a, where GetParam() = "a" +[ FAILED ] GoogleTestVerification.UninstantiatedParamaterizedTestSuite +[ FAILED ] GoogleTestVerification.UninstantiatedParamaterizedTestSuite +[ FAILED ] GoogleTestVerification.UninstantiatedTypeParamaterizedTestSuite -54 FAILED TESTS +57 FAILED TESTS  YOU HAVE 1 DISABLED TEST Note: Google Test filter = FatalFailureTest.*:LoggingTest.*