Fix the bug where ad_hoc_test_result() functions of UnitTest and TestCase objects would return failures registered at TestCase and UnitTest scopes, respectively.
This commit is contained in:
parent
045e7f9ee4
commit
ec5ad0f869
|
@ -5340,11 +5340,15 @@ OsStackTraceGetterInterface* UnitTestImpl::os_stack_trace_getter() {
|
||||||
return os_stack_trace_getter_;
|
return os_stack_trace_getter_;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns the TestResult for the test that's currently running, or
|
// Returns the most specific TestResult currently running.
|
||||||
// the TestResult for the ad hoc test if no test is running.
|
|
||||||
TestResult* UnitTestImpl::current_test_result() {
|
TestResult* UnitTestImpl::current_test_result() {
|
||||||
return current_test_info_ ?
|
if (current_test_info_ != nullptr) {
|
||||||
&(current_test_info_->result_) : &ad_hoc_test_result_;
|
return ¤t_test_info_->result_;
|
||||||
|
}
|
||||||
|
if (current_test_case_ != nullptr) {
|
||||||
|
return ¤t_test_case_->ad_hoc_test_result_;
|
||||||
|
}
|
||||||
|
return &ad_hoc_test_result_;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Shuffles all test cases, and the tests within each test case,
|
// Shuffles all test cases, and the tests within each test case,
|
||||||
|
|
|
@ -7748,3 +7748,25 @@ TEST(SkipPrefixTest, DoesNotSkipWhenPrefixDoesNotMatch) {
|
||||||
EXPECT_FALSE(SkipPrefix("world!", &p));
|
EXPECT_FALSE(SkipPrefix("world!", &p));
|
||||||
EXPECT_EQ(str, p);
|
EXPECT_EQ(str, p);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Tests ad_hoc_test_result().
|
||||||
|
|
||||||
|
class AdHocTestResultTest : public testing::Test {
|
||||||
|
protected:
|
||||||
|
static void SetUpTestCase() {
|
||||||
|
FAIL() << "A failure happened inside SetUpTestCase().";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
TEST_F(AdHocTestResultTest, AdHocTestResultForTestCaseShowsFailure) {
|
||||||
|
const testing::TestResult& test_result = testing::UnitTest::GetInstance()
|
||||||
|
->current_test_case()
|
||||||
|
->ad_hoc_test_result();
|
||||||
|
EXPECT_TRUE(test_result.Failed());
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(AdHocTestResultTest, AdHocTestResultTestForUnitTestDoesNotShowFailure) {
|
||||||
|
const testing::TestResult& test_result =
|
||||||
|
testing::UnitTest::GetInstance()->ad_hoc_test_result();
|
||||||
|
EXPECT_FALSE(test_result.Failed());
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user