summaryrefslogtreecommitdiffstats
path: root/test/gtest_xml_output_unittest_.cc
diff options
context:
space:
mode:
Diffstat (limited to 'test/gtest_xml_output_unittest_.cc')
-rw-r--r--test/gtest_xml_output_unittest_.cc28
1 files changed, 28 insertions, 0 deletions
diff --git a/test/gtest_xml_output_unittest_.cc b/test/gtest_xml_output_unittest_.cc
index d7ce2c6..bfeda3d 100644
--- a/test/gtest_xml_output_unittest_.cc
+++ b/test/gtest_xml_output_unittest_.cc
@@ -40,6 +40,20 @@
#include <gtest/gtest.h>
+// TODO(vladl@google.com): Remove this include when the event listener API is
+// published and GetUnitTestImpl is no longer needed.
+//
+// Indicates that this translation unit is part of Google Test's
+// implementation. It must come before gtest-internal-inl.h is
+// included, or there will be a compiler error. This trick is to
+// prevent a user from accidentally including gtest-internal-inl.h in
+// his code.
+#define GTEST_IMPLEMENTATION_ 1
+#include "src/gtest-internal-inl.h"
+#undef GTEST_IMPLEMENTATION_
+
+using ::testing::InitGoogleTest;
+
class SuccessfulTest : public testing::Test {
};
@@ -118,3 +132,17 @@ TEST(NoFixtureTest, ExternalUtilityThatCallsRecordIntValuedProperty) {
TEST(NoFixtureTest, ExternalUtilityThatCallsRecordStringValuedProperty) {
ExternalUtilityThatCallsRecordProperty("key_for_utility_string", "1");
}
+
+int main(int argc, char** argv) {
+ InitGoogleTest(&argc, argv);
+
+ if (argc > 1 && strcmp(argv[1], "--shut_down_xml") == 0) {
+ // TODO(vladl@google.com): Replace GetUnitTestImpl()->listeners() with
+ // UnitTest::GetInstance()->listeners() when the event listener API is
+ // published.
+ ::testing::internal::EventListeners& listeners =
+ *::testing::internal::GetUnitTestImpl()->listeners();
+ delete listeners.Release(listeners.default_xml_generator());
+ }
+ return RUN_ALL_TESTS();
+}