Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
googletest
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Chen Yisong
googletest
Commits
5db9cbbc
Commit
5db9cbbc
authored
Feb 26, 2016
by
Doug Greiman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Restructure $XML_OUTPUT_FILE logic
parent
12b2f23e
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
32 additions
and
26 deletions
+32
-26
gtest-port.h
googletest/include/gtest/internal/gtest-port.h
+1
-2
gtest-port.cc
googletest/src/gtest-port.cc
+19
-18
gtest.cc
googletest/src/gtest.cc
+1
-1
gtest_env_var_test.py
googletest/test/gtest_env_var_test.py
+11
-5
No files found.
googletest/include/gtest/internal/gtest-port.h
View file @
5db9cbbc
...
...
@@ -2546,8 +2546,7 @@ 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
OutputFromGTestEnv
(
const
char
*
default_val
);
std
::
string
StringFromGTestEnv
(
const
char
*
flag
,
const
char
*
default_val
);
}
// namespace internal
}
// namespace testing
...
...
googletest/src/gtest-port.cc
View file @
5db9cbbc
...
...
@@ -1226,30 +1226,31 @@ 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
;
}
// 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
)
{
const
char
*
value
=
posix
::
GetEnv
(
env_var
.
c_str
());
if
(
value
!=
NULL
)
{
return
value
;
}
value
=
posix
::
GetEnv
(
"XML_OUTPUT_FILE"
);
if
(
value
)
{
return
std
::
string
(
"xml:"
)
+
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
;
}
...
...
googletest/src/gtest.cc
View file @
5db9cbbc
...
...
@@ -237,7 +237,7 @@ GTEST_DEFINE_bool_(list_tests, false,
GTEST_DEFINE_string_
(
output
,
internal
::
OutputFromGTestEnv
(
""
),
internal
::
StringFromGTestEnv
(
"output"
,
""
),
"A format (currently must be
\"
xml
\"
), optionally followed "
"by a colon and an output file name or directory. A directory "
"is indicated by a trailing pathname separator. "
...
...
googletest/test/gtest_env_var_test.py
View file @
5db9cbbc
...
...
@@ -99,18 +99,24 @@ class GTestEnvVarTest(gtest_test_utils.TestCase):
TestFlag
(
'stack_trace_depth'
,
'0'
,
'100'
)
def
testXmlOutputFile
(
self
):
"""Test that $XML_OUTPUT_FILE affects the output flag."""
"""Test that $XML_OUTPUT_FILE affects the output flag."""
# $XML_OUTPUT_FILE sets output flag
SetEnvVar
(
'XML_OUTPUT_FILE'
,
'tmp/bar.xml'
)
AssertEq
(
'xml:tmp/bar.xml'
,
GetFlag
(
'output'
))
try
:
# $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'
))
# $XML_OUTPUT_FILE without $GTEST_OUTPUT sets output flag
SetEnvVar
(
'GTEST_OUTPUT'
,
None
)
AssertEq
(
'xml:tmp/bar.xml'
,
GetFlag
(
'output'
))
# If neither set, flag has default value
SetEnvVar
(
'XML_OUTPUT_FILE'
,
None
)
SetEnvVar
(
'GTEST_OUTPUT'
,
None
)
AssertEq
(
''
,
GetFlag
(
'output'
))
finally
:
SetEnvVar
(
'GTEST_OUTPUT'
,
None
)
SetEnvVar
(
'XML_OUTPUT_FILE'
,
None
)
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