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_;
|
||||
}
|
||||
|
||||
// Returns the TestResult for the test that's currently running, or
|
||||
// the TestResult for the ad hoc test if no test is running.
|
||||
// Returns the most specific TestResult currently running.
|
||||
TestResult* UnitTestImpl::current_test_result() {
|
||||
return current_test_info_ ?
|
||||
&(current_test_info_->result_) : &ad_hoc_test_result_;
|
||||
if (current_test_info_ != nullptr) {
|
||||
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,
|
||||
|
|
|
@ -7748,3 +7748,25 @@ TEST(SkipPrefixTest, DoesNotSkipWhenPrefixDoesNotMatch) {
|
|||
EXPECT_FALSE(SkipPrefix("world!", &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