Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
yangql
googletest
Commits
72416fab
Commit
72416fab
authored
Mar 15, 2016
by
Billy Donahue
Browse files
Merge pull request #724 from duggelz/master
Read Bazel's $XML_OUTPUT_FILE environment variable
parents
eba17963
d23cf2b1
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
38 additions
and
5 deletions
+38
-5
googletest/include/gtest/internal/gtest-port.h
googletest/include/gtest/internal/gtest-port.h
+1
-2
googletest/src/gtest-port.cc
googletest/src/gtest-port.cc
+23
-3
googletest/test/gtest_env_var_test.py
googletest/test/gtest_env_var_test.py
+14
-0
No files found.
googletest/include/gtest/internal/gtest-port.h
View file @
72416fab
...
...
@@ -2546,10 +2546,9 @@ bool ParseInt32(const Message& src_text, const char* str, Int32* value);
// corresponding to the given Google Test flag.
bool
BoolFromGTestEnv
(
const
char
*
flag
,
bool
default_val
);
GTEST_API_
Int32
Int32FromGTestEnv
(
const
char
*
flag
,
Int32
default_val
);
const
char
*
StringFromGTestEnv
(
const
char
*
flag
,
const
char
*
default_val
);
std
::
string
StringFromGTestEnv
(
const
char
*
flag
,
const
char
*
default_val
);
}
// namespace internal
}
// namespace testing
#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_
googletest/src/gtest-port.cc
View file @
72416fab
...
...
@@ -1226,13 +1226,33 @@ Int32 Int32FromGTestEnv(const char* flag, Int32 default_value) {
// Reads and returns the string environment variable corresponding to
// the given flag; if it's not set, returns default_value.
const
char
*
StringFromGTestEnv
(
const
char
*
flag
,
const
char
*
default_value
)
{
std
::
string
StringFromGTestEnv
(
const
char
*
flag
,
const
char
*
default_value
)
{
#if defined(GTEST_GET_STRING_FROM_ENV_)
return
GTEST_GET_STRING_FROM_ENV_
(
flag
,
default_value
);
#endif // defined(GTEST_GET_STRING_FROM_ENV_)
const
std
::
string
env_var
=
FlagToEnvVar
(
flag
);
const
char
*
const
value
=
posix
::
GetEnv
(
env_var
.
c_str
());
return
value
==
NULL
?
default_value
:
value
;
const
char
*
value
=
posix
::
GetEnv
(
env_var
.
c_str
());
if
(
value
!=
NULL
)
{
return
value
;
}
// As a special case for the 'output' flag, if GTEST_OUTPUT is not
// set, we look for XML_OUTPUT_FILE, which is set by the Bazel build
// system. The value of XML_OUTPUT_FILE is a filename without the
// "xml:" prefix of GTEST_OUTPUT.
//
// The net priority order after flag processing is thus:
// --gtest_output command line flag
// GTEST_OUTPUT environment variable
// XML_OUTPUT_FILE environment variable
// 'default_value'
if
(
strcmp
(
flag
,
"output"
)
==
0
)
{
value
=
posix
::
GetEnv
(
"XML_OUTPUT_FILE"
);
if
(
value
!=
NULL
)
{
return
std
::
string
(
"xml:"
)
+
value
;
}
}
return
default_value
;
}
}
// namespace internal
...
...
googletest/test/gtest_env_var_test.py
View file @
72416fab
...
...
@@ -87,6 +87,7 @@ class GTestEnvVarTest(gtest_test_utils.TestCase):
TestFlag
(
'break_on_failure'
,
'1'
,
'0'
)
TestFlag
(
'color'
,
'yes'
,
'auto'
)
TestFlag
(
'filter'
,
'FooTest.Bar'
,
'*'
)
SetEnvVar
(
'XML_OUTPUT_FILE'
,
None
)
# For 'output' test
TestFlag
(
'output'
,
'xml:tmp/foo.xml'
,
''
)
TestFlag
(
'print_time'
,
'0'
,
'1'
)
TestFlag
(
'repeat'
,
'999'
,
'1'
)
...
...
@@ -98,6 +99,19 @@ class GTestEnvVarTest(gtest_test_utils.TestCase):
TestFlag
(
'death_test_use_fork'
,
'1'
,
'0'
)
TestFlag
(
'stack_trace_depth'
,
'0'
,
'100'
)
def
testXmlOutputFile
(
self
):
"""Tests that $XML_OUTPUT_FILE affects the output flag."""
SetEnvVar
(
'GTEST_OUTPUT'
,
None
)
SetEnvVar
(
'XML_OUTPUT_FILE'
,
'tmp/bar.xml'
)
AssertEq
(
'xml:tmp/bar.xml'
,
GetFlag
(
'output'
))
def
testXmlOutputFileOverride
(
self
):
"""Tests that $XML_OUTPUT_FILE is overridden by $GTEST_OUTPUT"""
SetEnvVar
(
'GTEST_OUTPUT'
,
'xml:tmp/foo.xml'
)
SetEnvVar
(
'XML_OUTPUT_FILE'
,
'tmp/bar.xml'
)
AssertEq
(
'xml:tmp/foo.xml'
,
GetFlag
(
'output'
))
if
__name__
==
'__main__'
:
gtest_test_utils
.
Main
()
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment