Merge pull request #1503 from sheepmaster/upstream_188748737
Allow macros inside of parametrized test names.
This commit is contained in:
		
						commit
						851bd65ed9
					
				@ -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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user