summaryrefslogtreecommitdiffstats
path: root/googletest/test/gtest_xml_output_unittest.py
diff options
context:
space:
mode:
authorDerek Mauro <dmauro@google.com>2018-07-10 18:30:42 (GMT)
committerDerek Mauro <dmauro@google.com>2018-07-10 18:30:42 (GMT)
commit4c417877648f5f240aecead1c19d7c1fd340423b (patch)
tree845c821bd6bc6015f82cb10f911158a2c6a92a16 /googletest/test/gtest_xml_output_unittest.py
parentba96d0b1161f540656efdaed035b3c062b60e006 (diff)
downloadgoogletest-4c417877648f5f240aecead1c19d7c1fd340423b.zip
googletest-4c417877648f5f240aecead1c19d7c1fd340423b.tar.gz
googletest-4c417877648f5f240aecead1c19d7c1fd340423b.tar.bz2
Adds stacktrace support from Abseil to Google Test
This change adds the ability to generate stacktraces in Google Test on both failures of assertions/expectations and on crashes. The stacktrace support is conditionally available only when using Abseil with Google Test. To use this support, run the test under Bazel with a command like this: bazel test --define absl=1 --test_env=GTEST_INSTALL_FAILURE_SIGNAL_HANDLER=1 //path/to/your:test The "--define absl=1" part enables stacktraces on assertion/expectation failures. The "--test_env=GTEST_INSTALL_FAILURE_SIGNAL_HANDLER=1" part enables the signal handler that logs a stacktrace in the event of a crash (this also requires the "--define absl=1" part). This is not the default since it may interfere with existing tests.
Diffstat (limited to 'googletest/test/gtest_xml_output_unittest.py')
-rwxr-xr-xgoogletest/test/gtest_xml_output_unittest.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/googletest/test/gtest_xml_output_unittest.py b/googletest/test/gtest_xml_output_unittest.py
index 6ffb6e3..faedd4e 100755
--- a/googletest/test/gtest_xml_output_unittest.py
+++ b/googletest/test/gtest_xml_output_unittest.py
@@ -47,17 +47,22 @@ GTEST_OUTPUT_FLAG = '--gtest_output'
GTEST_DEFAULT_OUTPUT_FILE = 'test_detail.xml'
GTEST_PROGRAM_NAME = 'gtest_xml_output_unittest_'
+# The flag indicating stacktraces are not supported
+NO_STACKTRACE_SUPPORT_FLAG = '--no_stacktrace_support'
+
# The environment variables for test sharding.
TOTAL_SHARDS_ENV_VAR = 'GTEST_TOTAL_SHARDS'
SHARD_INDEX_ENV_VAR = 'GTEST_SHARD_INDEX'
SHARD_STATUS_FILE_ENV_VAR = 'GTEST_SHARD_STATUS_FILE'
-SUPPORTS_STACK_TRACES = False
+SUPPORTS_STACK_TRACES = NO_STACKTRACE_SUPPORT_FLAG not in sys.argv
if SUPPORTS_STACK_TRACES:
STACK_TRACE_TEMPLATE = '\nStack trace:\n*'
else:
STACK_TRACE_TEMPLATE = ''
+ # unittest.main() can't handle unknown flags
+ sys.argv.remove(NO_STACKTRACE_SUPPORT_FLAG)
EXPECTED_NON_EMPTY_XML = """<?xml version="1.0" encoding="UTF-8"?>
<testsuites tests="23" failures="4" disabled="2" errors="0" time="*" timestamp="*" name="AllTests" ad_hoc_property="42">