From 84fabab02210b08d009ef08984f16b481e579364 Mon Sep 17 00:00:00 2001 From: sidhansu10 Date: Mon, 12 Jan 2026 22:58:06 +0530 Subject: [PATCH 1/2] Update main branch version to 1.17.0 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c784f3c7c..0567ae7da 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ cmake_minimum_required(VERSION 3.16) project(googletest-distribution) -set(GOOGLETEST_VERSION 1.16.0) +set(GOOGLETEST_VERSION 1.17.0) if(NOT CYGWIN AND NOT MSYS AND NOT ${CMAKE_SYSTEM_NAME} STREQUAL QNX) set(CMAKE_CXX_EXTENSIONS OFF) From 1a4b486758335cd1f367125e3005ff23c366d748 Mon Sep 17 00:00:00 2001 From: sidhansu10 Date: Thu, 19 Feb 2026 23:36:34 +0530 Subject: [PATCH 2/2] Add global environment error reporting to XML output --- googletest/src/gtest-internal-inl.h | 7 +++++++ googletest/src/gtest.cc | 22 ++++++++++++++++++++-- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/googletest/src/gtest-internal-inl.h b/googletest/src/gtest-internal-inl.h index 6a39b93be..e59107448 100644 --- a/googletest/src/gtest-internal-inl.h +++ b/googletest/src/gtest-internal-inl.h @@ -825,6 +825,10 @@ class GTEST_API_ UnitTestImpl { // UnitTest::Run() starts. bool catch_exceptions() const { return catch_exceptions_; } + const std::vector& global_env_failures() const { + return global_env_failures_; + } + private: // Returns true if a warning should be issued if no tests match the test // filter flag. @@ -969,6 +973,9 @@ class GTEST_API_ UnitTestImpl { // A per-thread stack of traces created by the SCOPED_TRACE() macro. internal::ThreadLocal > gtest_trace_stack_; + // Stores failures that occur in global environment setup/teardown. + std::vector global_env_failures_; + // The value of GTEST_FLAG(catch_exceptions) at the moment RunAllTests() // starts. bool catch_exceptions_; diff --git a/googletest/src/gtest.cc b/googletest/src/gtest.cc index 193f880be..061fafffa 100644 --- a/googletest/src/gtest.cc +++ b/googletest/src/gtest.cc @@ -1070,8 +1070,11 @@ DefaultGlobalTestPartResultReporter::DefaultGlobalTestPartResultReporter( void DefaultGlobalTestPartResultReporter::ReportTestPartResult( const TestPartResult& result) { + if (unit_test_->current_test_info() == nullptr) { + unit_test_->global_env_failures_.push_back(result); + return; + } unit_test_->current_test_result()->AddTestPartResult(result); - unit_test_->listeners()->repeater()->OnTestPartResult(result); } DefaultPerThreadTestPartResultReporter::DefaultPerThreadTestPartResultReporter( @@ -1080,7 +1083,11 @@ DefaultPerThreadTestPartResultReporter::DefaultPerThreadTestPartResultReporter( void DefaultPerThreadTestPartResultReporter::ReportTestPartResult( const TestPartResult& result) { - unit_test_->GetGlobalTestPartResultReporter()->ReportTestPartResult(result); + if (unit_test_->current_test_info() == nullptr) { + unit_test_->global_env_failures_.push_back(result); + return; + } + unit_test_->current_test_result()->AddTestPartResult(result); } // Returns the global test part result reporter. @@ -4478,6 +4485,17 @@ void XmlUnitTestResultPrinter::PrintXmlTestsList( for (auto test_suite : test_suites) { PrintXmlTestSuite(stream, *test_suite); } + if (!GetUnitTestImpl()->global_env_failures().empty()) { + *stream << " \n"; + for (const auto& failure : GetUnitTestImpl()->global_env_failures()) { + *stream << " \n"; + } + *stream << " \n"; + } *stream << "\n"; }