Add correct line number to TEST_P test cases for gtest_output.
This commit is contained in:
parent
23b2a3b1cf
commit
921972cba3
@ -428,7 +428,7 @@ internal::CartesianProductHolder<Generator...> Combine(const Generator&... g) {
|
|||||||
->AddTestPattern( \
|
->AddTestPattern( \
|
||||||
GTEST_STRINGIFY_(test_suite_name), GTEST_STRINGIFY_(test_name), \
|
GTEST_STRINGIFY_(test_suite_name), GTEST_STRINGIFY_(test_name), \
|
||||||
new ::testing::internal::TestMetaFactory<GTEST_TEST_CLASS_NAME_( \
|
new ::testing::internal::TestMetaFactory<GTEST_TEST_CLASS_NAME_( \
|
||||||
test_suite_name, test_name)>()); \
|
test_suite_name, test_name)>(), __LINE__); \
|
||||||
return 0; \
|
return 0; \
|
||||||
} \
|
} \
|
||||||
static int gtest_registering_dummy_ GTEST_ATTRIBUTE_UNUSED_; \
|
static int gtest_registering_dummy_ GTEST_ATTRIBUTE_UNUSED_; \
|
||||||
|
@ -520,9 +520,9 @@ class ParameterizedTestSuiteInfo : public ParameterizedTestSuiteInfoBase {
|
|||||||
// parameter index. For the test SequenceA/FooTest.DoBar/1 FooTest is
|
// parameter index. For the test SequenceA/FooTest.DoBar/1 FooTest is
|
||||||
// test suite base name and DoBar is test base name.
|
// test suite base name and DoBar is test base name.
|
||||||
void AddTestPattern(const char* test_suite_name, const char* test_base_name,
|
void AddTestPattern(const char* test_suite_name, const char* test_base_name,
|
||||||
TestMetaFactoryBase<ParamType>* meta_factory) {
|
TestMetaFactoryBase<ParamType>* meta_factory, int line) {
|
||||||
tests_.push_back(std::shared_ptr<TestInfo>(
|
tests_.push_back(std::shared_ptr<TestInfo>(
|
||||||
new TestInfo(test_suite_name, test_base_name, meta_factory)));
|
new TestInfo(test_suite_name, test_base_name, meta_factory, line)));
|
||||||
}
|
}
|
||||||
// INSTANTIATE_TEST_SUITE_P macro uses AddGenerator() to record information
|
// INSTANTIATE_TEST_SUITE_P macro uses AddGenerator() to record information
|
||||||
// about a generator.
|
// about a generator.
|
||||||
@ -589,7 +589,7 @@ class ParameterizedTestSuiteInfo : public ParameterizedTestSuiteInfoBase {
|
|||||||
MakeAndRegisterTestInfo(
|
MakeAndRegisterTestInfo(
|
||||||
test_suite_name.c_str(), test_name_stream.GetString().c_str(),
|
test_suite_name.c_str(), test_name_stream.GetString().c_str(),
|
||||||
nullptr, // No type parameter.
|
nullptr, // No type parameter.
|
||||||
PrintToString(*param_it).c_str(), code_location_,
|
PrintToString(*param_it).c_str(), CodeLocation(code_location_.file, test_info->line),
|
||||||
GetTestSuiteTypeId(),
|
GetTestSuiteTypeId(),
|
||||||
SuiteApiResolver<TestSuite>::GetSetUpCaseOrSuite(file, line),
|
SuiteApiResolver<TestSuite>::GetSetUpCaseOrSuite(file, line),
|
||||||
SuiteApiResolver<TestSuite>::GetTearDownCaseOrSuite(file, line),
|
SuiteApiResolver<TestSuite>::GetTearDownCaseOrSuite(file, line),
|
||||||
@ -610,14 +610,16 @@ class ParameterizedTestSuiteInfo : public ParameterizedTestSuiteInfoBase {
|
|||||||
// with TEST_P macro.
|
// with TEST_P macro.
|
||||||
struct TestInfo {
|
struct TestInfo {
|
||||||
TestInfo(const char* a_test_suite_base_name, const char* a_test_base_name,
|
TestInfo(const char* a_test_suite_base_name, const char* a_test_base_name,
|
||||||
TestMetaFactoryBase<ParamType>* a_test_meta_factory)
|
TestMetaFactoryBase<ParamType>* a_test_meta_factory, int line)
|
||||||
: test_suite_base_name(a_test_suite_base_name),
|
: test_suite_base_name(a_test_suite_base_name),
|
||||||
test_base_name(a_test_base_name),
|
test_base_name(a_test_base_name),
|
||||||
test_meta_factory(a_test_meta_factory) {}
|
test_meta_factory(a_test_meta_factory),
|
||||||
|
line(line) {}
|
||||||
|
|
||||||
const std::string test_suite_base_name;
|
const std::string test_suite_base_name;
|
||||||
const std::string test_base_name;
|
const std::string test_base_name;
|
||||||
const std::unique_ptr<TestMetaFactoryBase<ParamType> > test_meta_factory;
|
const std::unique_ptr<TestMetaFactoryBase<ParamType> > test_meta_factory;
|
||||||
|
const int line;
|
||||||
};
|
};
|
||||||
using TestInfoContainer = ::std::vector<std::shared_ptr<TestInfo> >;
|
using TestInfoContainer = ::std::vector<std::shared_ptr<TestInfo> >;
|
||||||
// Records data received from INSTANTIATE_TEST_SUITE_P macros:
|
// Records data received from INSTANTIATE_TEST_SUITE_P macros:
|
||||||
|
Loading…
Reference in New Issue
Block a user