aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShahbaz Youssefi <syoussefi@google.com>2019-12-10 10:01:25 -0500
committerShahbaz Youssefi <syoussefi@chromium.org>2019-12-16 13:01:59 -0500
commit1800a38fb7d8d4f923fc450875afa3bc16f01151 (patch)
tree944119bf036d3169cc2cbfa0c01930d0ee75f362
parent4b7809c2f5236b16a2e3b45e2b5ade48fb6a3c0c (diff)
downloadgoogletest-1800a38fb7d8d4f923fc450875afa3bc16f01151.tar.gz
googletest-1800a38fb7d8d4f923fc450875afa3bc16f01151.tar.bz2
googletest-1800a38fb7d8d4f923fc450875afa3bc16f01151.zip
Revert "Googletest export": disallow empty prefix
This reverts commit 20b5b8ecc7a81d23b4716e22a2b35fd53379c8c6. Reason for revert: Breaks existing applications, such as ANGLE (angleproject.org), requires adding an extra prefix that needs to be typed for no reason (when testing from command line) and increases the logs' sizes by a non-trivial amount due to the very large number of tests ANGLE runs. Original commit message: Add a compile time check to ensure that the parameters to TEST_P and INSTANTIATE_TEST_SUITE_P are not empty. Some compilers already fail in that case and, even where it works, it's likely to result in technically invalid code by virtue of creating reserved identifiers: https://en.cppreference.com/w/cpp/language/identifiers First, every project is perfectly capable of adding a prefix if they want to support such a compiler. This change penalizes every project. Second, using a prefix such as `_p` also results in reserved identifiers, so this change is not really solving the problem. For that matter, instead of generating `gtest_##prefix##...`, you can generate `gtest_x##prefix##...` to correctly fix the issue, including when empty prefixes are used.
-rw-r--r--googletest/include/gtest/gtest-param-test.h20
-rw-r--r--googletest/test/googletest-output-test-golden-lin.txt6
-rw-r--r--googletest/test/googletest-output-test_.cc2
-rw-r--r--googletest/test/gtest_unittest.cc2
4 files changed, 10 insertions, 20 deletions
diff --git a/googletest/include/gtest/gtest-param-test.h b/googletest/include/gtest/gtest-param-test.h
index f61e3c5d..70593da5 100644
--- a/googletest/include/gtest/gtest-param-test.h
+++ b/googletest/include/gtest/gtest-param-test.h
@@ -58,9 +58,7 @@ class FooTest : public ::testing::TestWithParam<const char*> {
// Then, use the TEST_P macro to define as many parameterized tests
// for this fixture as you want. The _P suffix is for "parameterized"
-// or "pattern", whichever you prefer to think. The arguments to the
-// TEST_P macro are the test_suite_name and test_case (both which must be
-// non-empty) that will form the test name.
+// or "pattern", whichever you prefer to think.
TEST_P(FooTest, DoesBlah) {
// Inside a test, access the test parameter with the GetParam() method
@@ -103,10 +101,10 @@ INSTANTIATE_TEST_SUITE_P(InstantiationName,
// To distinguish different instances of the pattern, (yes, you
// can instantiate it more than once) the first argument to the
-// INSTANTIATE_TEST_SUITE_P macro is a prefix (which must be non-empty) that
-// will be added to the actual test suite name. Remember to pick unique prefixes
-// for different instantiations. The tests from the instantiation above will
-// have these names:
+// INSTANTIATE_TEST_SUITE_P macro is a prefix that will be added to the
+// actual test suite name. Remember to pick unique prefixes for different
+// instantiations. The tests from the instantiation above will have
+// these names:
//
// * InstantiationName/FooTest.DoesBlah/0 for "meeny"
// * InstantiationName/FooTest.DoesBlah/1 for "miny"
@@ -414,10 +412,6 @@ internal::CartesianProductHolder<Generator...> Combine(const Generator&... g) {
}
#define TEST_P(test_suite_name, test_name) \
- static_assert(sizeof(GTEST_STRINGIFY_(test_suite_name)) > 1, \
- "test_suite_name must not be empty"); \
- static_assert(sizeof(GTEST_STRINGIFY_(test_name)) > 1, \
- "test_name must not be empty"); \
class GTEST_TEST_CLASS_NAME_(test_suite_name, test_name) \
: public test_suite_name { \
public: \
@@ -464,10 +458,6 @@ internal::CartesianProductHolder<Generator...> Combine(const Generator&... g) {
#define GTEST_GET_SECOND_(first, second, ...) second
#define INSTANTIATE_TEST_SUITE_P(prefix, test_suite_name, ...) \
- static_assert(sizeof(GTEST_STRINGIFY_(test_suite_name)) > 1, \
- "test_suite_name must not be empty"); \
- static_assert(sizeof(GTEST_STRINGIFY_(prefix)) > 1, \
- "prefix must not be empty"); \
static ::testing::internal::ParamGenerator<test_suite_name::ParamType> \
gtest_##prefix##test_suite_name##_EvalGenerator_() { \
return GTEST_EXPAND_(GTEST_GET_FIRST_(__VA_ARGS__, DUMMY_PARAM_)); \
diff --git a/googletest/test/googletest-output-test-golden-lin.txt b/googletest/test/googletest-output-test-golden-lin.txt
index a4cade31..a08140e1 100644
--- a/googletest/test/googletest-output-test-golden-lin.txt
+++ b/googletest/test/googletest-output-test-golden-lin.txt
@@ -966,9 +966,9 @@ Expected equality of these values:
Stack trace: (omitted)
[ FAILED ] PrintingFailingParams/FailingParamTest.Fails/0, where GetParam() = 2
-[----------] 1 test from All/EmptyBasenameParamInst
-[ RUN ] All/EmptyBasenameParamInst.Passes/0
-[ OK ] All/EmptyBasenameParamInst.Passes/0
+[----------] 1 test from EmptyBasenameParamInst
+[ RUN ] EmptyBasenameParamInst.Passes/0
+[ OK ] EmptyBasenameParamInst.Passes/0
[----------] 2 tests from PrintingStrings/ParamTest
[ RUN ] PrintingStrings/ParamTest.Success/a
[ OK ] PrintingStrings/ParamTest.Success/a
diff --git a/googletest/test/googletest-output-test_.cc b/googletest/test/googletest-output-test_.cc
index 59b2c89b..1c7943c3 100644
--- a/googletest/test/googletest-output-test_.cc
+++ b/googletest/test/googletest-output-test_.cc
@@ -102,7 +102,7 @@ class EmptyBasenameParamInst : public testing::TestWithParam<int> {};
TEST_P(EmptyBasenameParamInst, Passes) { EXPECT_EQ(1, GetParam()); }
-INSTANTIATE_TEST_SUITE_P(All, EmptyBasenameParamInst, testing::Values(1));
+INSTANTIATE_TEST_SUITE_P(, EmptyBasenameParamInst, testing::Values(1));
static const char kGoldenString[] = "\"Line\0 1\"\nLine 2";
diff --git a/googletest/test/gtest_unittest.cc b/googletest/test/gtest_unittest.cc
index 7acc2280..83df6a71 100644
--- a/googletest/test/gtest_unittest.cc
+++ b/googletest/test/gtest_unittest.cc
@@ -5349,7 +5349,7 @@ TEST_P(CodeLocationForTESTP, Verify) {
VERIFY_CODE_LOCATION;
}
-INSTANTIATE_TEST_SUITE_P(All, CodeLocationForTESTP, Values(0));
+INSTANTIATE_TEST_SUITE_P(, CodeLocationForTESTP, Values(0));
template <typename T>
class CodeLocationForTYPEDTEST : public Test {