diff options
author | Doug Greiman <dgreiman@google.com> | 2016-02-24 02:50:08 (GMT) |
---|---|---|
committer | Doug Greiman <dgreiman@google.com> | 2016-02-24 02:50:08 (GMT) |
commit | d6790f26cae2ced1ebdd35f9fa61893e9cee1007 (patch) | |
tree | f2a380e296b920b1d4b975d1c71092a7f5a4a7ba /googletest/src/gtest-port.cc | |
parent | ff5ffd457e032c8be8a64a7a94c824063c8b11e3 (diff) | |
download | googletest-d6790f26cae2ced1ebdd35f9fa61893e9cee1007.zip googletest-d6790f26cae2ced1ebdd35f9fa61893e9cee1007.tar.gz googletest-d6790f26cae2ced1ebdd35f9fa61893e9cee1007.tar.bz2 |
Read Bazel's $XML_OUTPUT_FILE environment variable
If $XML_OUTPUT_FILE is set, and $GTEST_OUTPUT and --gtest_output are not
specified, produce output as if GTEST_OUTPUT=xml:$XML_OUTPUT_FILE had
been set.
Diffstat (limited to 'googletest/src/gtest-port.cc')
-rw-r--r-- | googletest/src/gtest-port.cc | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/googletest/src/gtest-port.cc b/googletest/src/gtest-port.cc index 0162fac..05ffca0 100644 --- a/googletest/src/gtest-port.cc +++ b/googletest/src/gtest-port.cc @@ -1235,5 +1235,24 @@ const char* StringFromGTestEnv(const char* flag, const char* default_value) { return value == NULL ? default_value : value; } +// Reads and returns GTEST_OUTPUT and/or XML_OUTPUT_FILE environment +// variables; if neither is set, returns default value. +// XML_OUTPUT_FILE is set by the Bazel build system, and its format is +// a filename without the "xml:" prefix of GTEST_OUTPUT. +std::string OutputFromGTestEnv(const char* default_value) { +#if defined(GTEST_GET_STRING_FROM_ENV_) + return GTEST_GET_STRING_FROM_ENV_("output", default_value); +#endif // defined(GTEST_GET_STRING_FROM_ENV_) + const char* value = StringFromGTestEnv("output", NULL); + if (value) { + return value; + } + value = posix::GetEnv("XML_OUTPUT_FILE"); + if (value) { + return std::string("xml:") + value; + } + return default_value; +} + } // namespace internal } // namespace testing |