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
							
								
									d7bf63d150
								
							
						
					
					
						commit
						dace0609bf
					
				@ -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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user