From 48d68936fb3fcf2bdb06670724f4f3757f334b36 Mon Sep 17 00:00:00 2001 From: bcsgh <33939446+bcsgh@users.noreply.github.com> Date: Thu, 23 Jan 2020 18:37:19 -0800 Subject: [PATCH] Set kErrorOnUninstantiatedParameterizedTest et al. to true to begin reporting missing instantiations as errors. --- googletest/src/gtest.cc | 4 +-- .../googletest-output-test-golden-lin.txt | 27 ++++++++++++++----- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/googletest/src/gtest.cc b/googletest/src/gtest.cc index 095778e6..b8f6a5c3 100644 --- a/googletest/src/gtest.cc +++ b/googletest/src/gtest.cc @@ -414,8 +414,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..ed9b3350 100644 --- a/googletest/test/googletest-output-test-golden-lin.txt +++ b/googletest/test/googletest-output-test-golden-lin.txt @@ -984,6 +984,8 @@ 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 +993,12 @@ 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 +1006,12 @@ 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 +1019,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 +1036,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 +1092,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.*