diff options
author | James Dennett <jdennett@google.com> | 2018-05-21 17:57:01 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-21 17:57:01 (GMT) |
commit | 89286a4cdf503c421c6156af19a6013b7d4a98c9 (patch) | |
tree | 4779f3f0c759c4f2fe2643cd45151dbae7e0b1a2 | |
parent | 54e331b88bca8e9ab9de55153a3e6d295299aad0 (diff) | |
parent | 08d5b1f33af8c18785fb8ca02792b5fac81e248f (diff) | |
download | googletest-89286a4cdf503c421c6156af19a6013b7d4a98c9.zip googletest-89286a4cdf503c421c6156af19a6013b7d4a98c9.tar.gz googletest-89286a4cdf503c421c6156af19a6013b7d4a98c9.tar.bz2 |
Merge branch 'master' into StdLibVersioning
-rw-r--r-- | googletest/src/gtest.cc | 12 | ||||
-rw-r--r-- | googletest/test/gtest_unittest.cc | 22 |
2 files changed, 30 insertions, 4 deletions
diff --git a/googletest/src/gtest.cc b/googletest/src/gtest.cc index 73e9bf8..1b2aad2 100644 --- a/googletest/src/gtest.cc +++ b/googletest/src/gtest.cc @@ -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_ != NULL) { + return ¤t_test_info_->result_; + } + if (current_test_case_ != NULL) { + return ¤t_test_case_->ad_hoc_test_result_; + } + return &ad_hoc_test_result_; } // Shuffles all test cases, and the tests within each test case, diff --git a/googletest/test/gtest_unittest.cc b/googletest/test/gtest_unittest.cc index 2b5a7e1..662a8ab 100644 --- a/googletest/test/gtest_unittest.cc +++ b/googletest/test/gtest_unittest.cc @@ -7773,3 +7773,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()); +} |