Merge pull request #1503 from sheepmaster/upstream_188748737
Allow macros inside of parametrized test names.
This commit is contained in:
commit
f35fe6de3b
@ -1371,8 +1371,6 @@ internal::CartesianProductHolder10<Generator1, Generator2, Generator3,
|
|||||||
}
|
}
|
||||||
# endif // GTEST_HAS_COMBINE
|
# endif // GTEST_HAS_COMBINE
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# define TEST_P(test_case_name, test_name) \
|
# define TEST_P(test_case_name, test_name) \
|
||||||
class GTEST_TEST_CLASS_NAME_(test_case_name, test_name) \
|
class GTEST_TEST_CLASS_NAME_(test_case_name, test_name) \
|
||||||
: public test_case_name { \
|
: public test_case_name { \
|
||||||
@ -1386,8 +1384,8 @@ internal::CartesianProductHolder10<Generator1, Generator2, Generator3,
|
|||||||
#test_case_name, \
|
#test_case_name, \
|
||||||
::testing::internal::CodeLocation(\
|
::testing::internal::CodeLocation(\
|
||||||
__FILE__, __LINE__))->AddTestPattern(\
|
__FILE__, __LINE__))->AddTestPattern(\
|
||||||
#test_case_name, \
|
GTEST_STRINGIFY_(test_case_name), \
|
||||||
#test_name, \
|
GTEST_STRINGIFY_(test_name), \
|
||||||
new ::testing::internal::TestMetaFactory< \
|
new ::testing::internal::TestMetaFactory< \
|
||||||
GTEST_TEST_CLASS_NAME_(\
|
GTEST_TEST_CLASS_NAME_(\
|
||||||
test_case_name, test_name)>()); \
|
test_case_name, test_name)>()); \
|
||||||
|
@ -436,8 +436,6 @@ internal::CartesianProductHolder$i<$for j, [[Generator$j]]> Combine(
|
|||||||
]]
|
]]
|
||||||
# endif // GTEST_HAS_COMBINE
|
# endif // GTEST_HAS_COMBINE
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# define TEST_P(test_case_name, test_name) \
|
# define TEST_P(test_case_name, test_name) \
|
||||||
class GTEST_TEST_CLASS_NAME_(test_case_name, test_name) \
|
class GTEST_TEST_CLASS_NAME_(test_case_name, test_name) \
|
||||||
: public test_case_name { \
|
: public test_case_name { \
|
||||||
@ -451,8 +449,8 @@ internal::CartesianProductHolder$i<$for j, [[Generator$j]]> Combine(
|
|||||||
#test_case_name, \
|
#test_case_name, \
|
||||||
::testing::internal::CodeLocation(\
|
::testing::internal::CodeLocation(\
|
||||||
__FILE__, __LINE__))->AddTestPattern(\
|
__FILE__, __LINE__))->AddTestPattern(\
|
||||||
#test_case_name, \
|
GTEST_STRINGIFY_(test_case_name), \
|
||||||
#test_name, \
|
GTEST_STRINGIFY_(test_name), \
|
||||||
new ::testing::internal::TestMetaFactory< \
|
new ::testing::internal::TestMetaFactory< \
|
||||||
GTEST_TEST_CLASS_NAME_(\
|
GTEST_TEST_CLASS_NAME_(\
|
||||||
test_case_name, test_name)>()); \
|
test_case_name, test_name)>()); \
|
||||||
|
@ -75,6 +75,9 @@
|
|||||||
#define GTEST_CONCAT_TOKEN_(foo, bar) GTEST_CONCAT_TOKEN_IMPL_(foo, bar)
|
#define GTEST_CONCAT_TOKEN_(foo, bar) GTEST_CONCAT_TOKEN_IMPL_(foo, bar)
|
||||||
#define GTEST_CONCAT_TOKEN_IMPL_(foo, bar) foo ## bar
|
#define GTEST_CONCAT_TOKEN_IMPL_(foo, bar) foo ## bar
|
||||||
|
|
||||||
|
// Stringifies its argument.
|
||||||
|
#define GTEST_STRINGIFY_(name) #name
|
||||||
|
|
||||||
class ProtocolMessage;
|
class ProtocolMessage;
|
||||||
namespace proto2 { class Message; }
|
namespace proto2 { class Message; }
|
||||||
|
|
||||||
|
@ -848,6 +848,34 @@ TEST_P(NamingTest, TestsReportCorrectNamesAndParameters) {
|
|||||||
|
|
||||||
INSTANTIATE_TEST_CASE_P(ZeroToFiveSequence, NamingTest, Range(0, 5));
|
INSTANTIATE_TEST_CASE_P(ZeroToFiveSequence, NamingTest, Range(0, 5));
|
||||||
|
|
||||||
|
// Tests that macros in test names are expanded correctly.
|
||||||
|
class MacroNamingTest : public TestWithParam<int> {};
|
||||||
|
|
||||||
|
#define PREFIX_WITH_FOO(test_name) Foo##test_name
|
||||||
|
#define PREFIX_WITH_MACRO(test_name) Macro##test_name
|
||||||
|
|
||||||
|
TEST_P(PREFIX_WITH_MACRO(NamingTest), PREFIX_WITH_FOO(SomeTestName)) {
|
||||||
|
const ::testing::TestInfo* const test_info =
|
||||||
|
::testing::UnitTest::GetInstance()->current_test_info();
|
||||||
|
|
||||||
|
EXPECT_STREQ("FortyTwo/MacroNamingTest", test_info->test_case_name());
|
||||||
|
EXPECT_STREQ("FooSomeTestName", test_info->name());
|
||||||
|
}
|
||||||
|
|
||||||
|
INSTANTIATE_TEST_CASE_P(FortyTwo, MacroNamingTest, Values(42));
|
||||||
|
|
||||||
|
// Tests the same thing for non-parametrized tests.
|
||||||
|
class MacroNamingTestNonParametrized : public ::testing::Test {};
|
||||||
|
|
||||||
|
TEST_F(PREFIX_WITH_MACRO(NamingTestNonParametrized),
|
||||||
|
PREFIX_WITH_FOO(SomeTestName)) {
|
||||||
|
const ::testing::TestInfo* const test_info =
|
||||||
|
::testing::UnitTest::GetInstance()->current_test_info();
|
||||||
|
|
||||||
|
EXPECT_STREQ("MacroNamingTestNonParametrized", test_info->test_case_name());
|
||||||
|
EXPECT_STREQ("FooSomeTestName", test_info->name());
|
||||||
|
}
|
||||||
|
|
||||||
// Tests that user supplied custom parameter names are working correctly.
|
// Tests that user supplied custom parameter names are working correctly.
|
||||||
// Runs the test with a builtin helper method which uses PrintToString,
|
// Runs the test with a builtin helper method which uses PrintToString,
|
||||||
// as well as a custom function and custom functor to ensure all possible
|
// as well as a custom function and custom functor to ensure all possible
|
||||||
|
Loading…
Reference in New Issue
Block a user