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
e588eb1f
Commit
e588eb1f
authored
Feb 27, 2020
by
Abseil Team
Committed by
CJ Johnson
Feb 28, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Googletest export
Rename internal color enumerators to avoid conflicts with curses.h macro definitions. Fixes #2685 PiperOrigin-RevId: 297639382
parent
909b1ccf
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
50 additions
and
47 deletions
+50
-47
gtest.h
googletest/include/gtest/gtest.h
+1
-1
gtest.cc
googletest/src/gtest.cc
+49
-46
No files found.
googletest/include/gtest/gtest.h
View file @
e588eb1f
...
...
@@ -1807,7 +1807,7 @@ class GTEST_API_ AssertHelper {
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
AssertHelper
);
};
enum
GTestColor
{
COLOR_DEFAULT
,
COLOR_RED
,
COLOR_GREEN
,
COLOR_YELLOW
};
enum
class
GTestColor
{
kDefault
,
kRed
,
kGreen
,
kYellow
};
GTEST_API_
GTEST_ATTRIBUTE_PRINTF_
(
2
,
3
)
void
ColoredPrintf
(
GTestColor
color
,
const
char
*
fmt
,
...
...
googletest/src/gtest.cc
View file @
e588eb1f
...
...
@@ -3093,9 +3093,12 @@ static void PrintTestPartResult(const TestPartResult& test_part_result) {
// Returns the character attribute for the given color.
static
WORD
GetColorAttribute
(
GTestColor
color
)
{
switch
(
color
)
{
case
COLOR_RED
:
return
FOREGROUND_RED
;
case
COLOR_GREEN
:
return
FOREGROUND_GREEN
;
case
COLOR_YELLOW
:
return
FOREGROUND_RED
|
FOREGROUND_GREEN
;
case
GTestColor
:
:
kRed
:
return
FOREGROUND_RED
;
case
GTestColor
:
:
kGreen
:
return
FOREGROUND_GREEN
;
case
GTestColor
:
:
kYellow
:
return
FOREGROUND_RED
|
FOREGROUND_GREEN
;
default
:
return
0
;
}
}
...
...
@@ -3133,13 +3136,16 @@ static WORD GetNewColor(GTestColor color, WORD old_color_attrs) {
#else
// Returns the ANSI color code for the given color.
COLOR_DEFAULT
is
// Returns the ANSI color code for the given color.
GTestColor::kDefault
is
// an invalid input.
static
const
char
*
GetAnsiColorCode
(
GTestColor
color
)
{
switch
(
color
)
{
case
COLOR_RED
:
return
"1"
;
case
COLOR_GREEN
:
return
"2"
;
case
COLOR_YELLOW
:
return
"3"
;
case
GTestColor
:
:
kRed
:
return
"1"
;
case
GTestColor
:
:
kGreen
:
return
"2"
;
case
GTestColor
:
:
kYellow
:
return
"3"
;
default
:
return
nullptr
;
}
...
...
@@ -3198,7 +3204,7 @@ void ColoredPrintf(GTestColor color, const char* fmt, ...) {
#else
static
const
bool
in_color_mode
=
ShouldUseColor
(
posix
::
IsATTY
(
posix
::
FileNo
(
stdout
))
!=
0
);
const
bool
use_color
=
in_color_mode
&&
(
color
!=
COLOR_DEFAULT
);
const
bool
use_color
=
in_color_mode
&&
(
color
!=
GTestColor
::
kDefault
);
#endif // GTEST_OS_WINDOWS_MOBILE || GTEST_OS_ZOS
if
(
!
use_color
)
{
...
...
@@ -3310,25 +3316,24 @@ void PrettyUnitTestResultPrinter::OnTestIterationStart(
// Prints the filter if it's not *. This reminds the user that some
// tests may be skipped.
if
(
!
String
::
CStringEquals
(
filter
,
kUniversalFilter
))
{
ColoredPrintf
(
COLOR_YELLOW
,
"Note: %s filter = %s
\n
"
,
GTEST_NAME_
,
filter
);
ColoredPrintf
(
GTestColor
::
kYellow
,
"Note: %s filter = %s
\n
"
,
GTEST_NAME_
,
filter
);
}
if
(
internal
::
ShouldShard
(
kTestTotalShards
,
kTestShardIndex
,
false
))
{
const
int32_t
shard_index
=
Int32FromEnvOrDie
(
kTestShardIndex
,
-
1
);
ColoredPrintf
(
COLOR_YELLOW
,
"Note: This is test shard %d of %s.
\n
"
,
ColoredPrintf
(
GTestColor
::
kYellow
,
"Note: This is test shard %d of %s.
\n
"
,
static_cast
<
int
>
(
shard_index
)
+
1
,
internal
::
posix
::
GetEnv
(
kTestTotalShards
));
}
if
(
GTEST_FLAG
(
shuffle
))
{
ColoredPrintf
(
COLOR_YELLOW
,
ColoredPrintf
(
GTestColor
::
kYellow
,
"Note: Randomizing tests' orders with a seed of %d .
\n
"
,
unit_test
.
random_seed
());
}
ColoredPrintf
(
COLOR_GREEN
,
"[==========] "
);
ColoredPrintf
(
GTestColor
::
kGreen
,
"[==========] "
);
printf
(
"Running %s from %s.
\n
"
,
FormatTestCount
(
unit_test
.
test_to_run_count
()).
c_str
(),
FormatTestSuiteCount
(
unit_test
.
test_suite_to_run_count
()).
c_str
());
...
...
@@ -3337,7 +3342,7 @@ void PrettyUnitTestResultPrinter::OnTestIterationStart(
void
PrettyUnitTestResultPrinter
::
OnEnvironmentsSetUpStart
(
const
UnitTest
&
/*unit_test*/
)
{
ColoredPrintf
(
COLOR_GREEN
,
"[----------] "
);
ColoredPrintf
(
GTestColor
::
kGreen
,
"[----------] "
);
printf
(
"Global test environment set-up.
\n
"
);
fflush
(
stdout
);
}
...
...
@@ -3346,7 +3351,7 @@ void PrettyUnitTestResultPrinter::OnEnvironmentsSetUpStart(
void
PrettyUnitTestResultPrinter
::
OnTestCaseStart
(
const
TestCase
&
test_case
)
{
const
std
::
string
counts
=
FormatCountableNoun
(
test_case
.
test_to_run_count
(),
"test"
,
"tests"
);
ColoredPrintf
(
COLOR_GREEN
,
"[----------] "
);
ColoredPrintf
(
GTestColor
::
kGreen
,
"[----------] "
);
printf
(
"%s from %s"
,
counts
.
c_str
(),
test_case
.
name
());
if
(
test_case
.
type_param
()
==
nullptr
)
{
printf
(
"
\n
"
);
...
...
@@ -3360,7 +3365,7 @@ void PrettyUnitTestResultPrinter::OnTestSuiteStart(
const
TestSuite
&
test_suite
)
{
const
std
::
string
counts
=
FormatCountableNoun
(
test_suite
.
test_to_run_count
(),
"test"
,
"tests"
);
ColoredPrintf
(
COLOR_GREEN
,
"[----------] "
);
ColoredPrintf
(
GTestColor
::
kGreen
,
"[----------] "
);
printf
(
"%s from %s"
,
counts
.
c_str
(),
test_suite
.
name
());
if
(
test_suite
.
type_param
()
==
nullptr
)
{
printf
(
"
\n
"
);
...
...
@@ -3372,7 +3377,7 @@ void PrettyUnitTestResultPrinter::OnTestSuiteStart(
#endif // GTEST_REMOVE_LEGACY_TEST_CASEAPI_
void
PrettyUnitTestResultPrinter
::
OnTestStart
(
const
TestInfo
&
test_info
)
{
ColoredPrintf
(
COLOR_GREEN
,
"[ RUN ] "
);
ColoredPrintf
(
GTestColor
::
kGreen
,
"[ RUN ] "
);
PrintTestName
(
test_info
.
test_suite_name
(),
test_info
.
name
());
printf
(
"
\n
"
);
fflush
(
stdout
);
...
...
@@ -3395,11 +3400,11 @@ void PrettyUnitTestResultPrinter::OnTestPartResult(
void
PrettyUnitTestResultPrinter
::
OnTestEnd
(
const
TestInfo
&
test_info
)
{
if
(
test_info
.
result
()
->
Passed
())
{
ColoredPrintf
(
COLOR_GREEN
,
"[ OK ] "
);
ColoredPrintf
(
GTestColor
::
kGreen
,
"[ OK ] "
);
}
else
if
(
test_info
.
result
()
->
Skipped
())
{
ColoredPrintf
(
COLOR_GREEN
,
"[ SKIPPED ] "
);
ColoredPrintf
(
GTestColor
::
kGreen
,
"[ SKIPPED ] "
);
}
else
{
ColoredPrintf
(
COLOR_RED
,
"[ FAILED ] "
);
ColoredPrintf
(
GTestColor
::
kRed
,
"[ FAILED ] "
);
}
PrintTestName
(
test_info
.
test_suite_name
(),
test_info
.
name
());
if
(
test_info
.
result
()
->
Failed
())
...
...
@@ -3420,7 +3425,7 @@ void PrettyUnitTestResultPrinter::OnTestCaseEnd(const TestCase& test_case) {
const
std
::
string
counts
=
FormatCountableNoun
(
test_case
.
test_to_run_count
(),
"test"
,
"tests"
);
ColoredPrintf
(
COLOR_GREEN
,
"[----------] "
);
ColoredPrintf
(
GTestColor
::
kGreen
,
"[----------] "
);
printf
(
"%s from %s (%s ms total)
\n\n
"
,
counts
.
c_str
(),
test_case
.
name
(),
internal
::
StreamableToString
(
test_case
.
elapsed_time
()).
c_str
());
fflush
(
stdout
);
...
...
@@ -3431,7 +3436,7 @@ void PrettyUnitTestResultPrinter::OnTestSuiteEnd(const TestSuite& test_suite) {
const
std
::
string
counts
=
FormatCountableNoun
(
test_suite
.
test_to_run_count
(),
"test"
,
"tests"
);
ColoredPrintf
(
COLOR_GREEN
,
"[----------] "
);
ColoredPrintf
(
GTestColor
::
kGreen
,
"[----------] "
);
printf
(
"%s from %s (%s ms total)
\n\n
"
,
counts
.
c_str
(),
test_suite
.
name
(),
internal
::
StreamableToString
(
test_suite
.
elapsed_time
()).
c_str
());
fflush
(
stdout
);
...
...
@@ -3440,7 +3445,7 @@ void PrettyUnitTestResultPrinter::OnTestSuiteEnd(const TestSuite& test_suite) {
void
PrettyUnitTestResultPrinter
::
OnEnvironmentsTearDownStart
(
const
UnitTest
&
/*unit_test*/
)
{
ColoredPrintf
(
COLOR_GREEN
,
"[----------] "
);
ColoredPrintf
(
GTestColor
::
kGreen
,
"[----------] "
);
printf
(
"Global test environment tear-down
\n
"
);
fflush
(
stdout
);
}
...
...
@@ -3448,7 +3453,7 @@ void PrettyUnitTestResultPrinter::OnEnvironmentsTearDownStart(
// Internal helper for printing the list of failed tests.
void
PrettyUnitTestResultPrinter
::
PrintFailedTests
(
const
UnitTest
&
unit_test
)
{
const
int
failed_test_count
=
unit_test
.
failed_test_count
();
ColoredPrintf
(
COLOR_RED
,
"[ FAILED ] "
);
ColoredPrintf
(
GTestColor
::
kRed
,
"[ FAILED ] "
);
printf
(
"%s, listed below:
\n
"
,
FormatTestCount
(
failed_test_count
).
c_str
());
for
(
int
i
=
0
;
i
<
unit_test
.
total_test_suite_count
();
++
i
)
{
...
...
@@ -3461,7 +3466,7 @@ void PrettyUnitTestResultPrinter::PrintFailedTests(const UnitTest& unit_test) {
if
(
!
test_info
.
should_run
()
||
!
test_info
.
result
()
->
Failed
())
{
continue
;
}
ColoredPrintf
(
COLOR_RED
,
"[ FAILED ] "
);
ColoredPrintf
(
GTestColor
::
kRed
,
"[ FAILED ] "
);
printf
(
"%s.%s"
,
test_suite
.
name
(),
test_info
.
name
());
PrintFullTestCommentIfPresent
(
test_info
);
printf
(
"
\n
"
);
...
...
@@ -3482,7 +3487,7 @@ void PrettyUnitTestResultPrinter::PrintFailedTestSuites(
continue
;
}
if
(
test_suite
.
ad_hoc_test_result
().
Failed
())
{
ColoredPrintf
(
COLOR_RED
,
"[ FAILED ] "
);
ColoredPrintf
(
GTestColor
::
kRed
,
"[ FAILED ] "
);
printf
(
"%s: SetUpTestSuite or TearDownTestSuite
\n
"
,
test_suite
.
name
());
++
suite_failure_count
;
}
...
...
@@ -3510,7 +3515,7 @@ void PrettyUnitTestResultPrinter::PrintSkippedTests(const UnitTest& unit_test) {
if
(
!
test_info
.
should_run
()
||
!
test_info
.
result
()
->
Skipped
())
{
continue
;
}
ColoredPrintf
(
COLOR_GREEN
,
"[ SKIPPED ] "
);
ColoredPrintf
(
GTestColor
::
kGreen
,
"[ SKIPPED ] "
);
printf
(
"%s.%s"
,
test_suite
.
name
(),
test_info
.
name
());
printf
(
"
\n
"
);
}
...
...
@@ -3519,7 +3524,7 @@ void PrettyUnitTestResultPrinter::PrintSkippedTests(const UnitTest& unit_test) {
void
PrettyUnitTestResultPrinter
::
OnTestIterationEnd
(
const
UnitTest
&
unit_test
,
int
/*iteration*/
)
{
ColoredPrintf
(
COLOR_GREEN
,
"[==========] "
);
ColoredPrintf
(
GTestColor
::
kGreen
,
"[==========] "
);
printf
(
"%s from %s ran."
,
FormatTestCount
(
unit_test
.
test_to_run_count
()).
c_str
(),
FormatTestSuiteCount
(
unit_test
.
test_suite_to_run_count
()).
c_str
());
...
...
@@ -3528,12 +3533,12 @@ void PrettyUnitTestResultPrinter::OnTestIterationEnd(const UnitTest& unit_test,
internal
::
StreamableToString
(
unit_test
.
elapsed_time
()).
c_str
());
}
printf
(
"
\n
"
);
ColoredPrintf
(
COLOR_GREEN
,
"[ PASSED ] "
);
ColoredPrintf
(
GTestColor
::
kGreen
,
"[ PASSED ] "
);
printf
(
"%s.
\n
"
,
FormatTestCount
(
unit_test
.
successful_test_count
()).
c_str
());
const
int
skipped_test_count
=
unit_test
.
skipped_test_count
();
if
(
skipped_test_count
>
0
)
{
ColoredPrintf
(
COLOR_GREEN
,
"[ SKIPPED ] "
);
ColoredPrintf
(
GTestColor
::
kGreen
,
"[ SKIPPED ] "
);
printf
(
"%s, listed below:
\n
"
,
FormatTestCount
(
skipped_test_count
).
c_str
());
PrintSkippedTests
(
unit_test
);
}
...
...
@@ -3548,10 +3553,8 @@ void PrettyUnitTestResultPrinter::OnTestIterationEnd(const UnitTest& unit_test,
if
(
unit_test
.
Passed
())
{
printf
(
"
\n
"
);
// Add a spacer if no FAILURE banner is displayed.
}
ColoredPrintf
(
COLOR_YELLOW
,
" YOU HAVE %d DISABLED %s
\n\n
"
,
num_disabled
,
num_disabled
==
1
?
"TEST"
:
"TESTS"
);
ColoredPrintf
(
GTestColor
::
kYellow
,
" YOU HAVE %d DISABLED %s
\n\n
"
,
num_disabled
,
num_disabled
==
1
?
"TEST"
:
"TESTS"
);
}
// Ensure that Google Test output is printed before, e.g., heapchecker output.
fflush
(
stdout
);
...
...
@@ -5554,14 +5557,14 @@ bool UnitTestImpl::RunAllTests() {
if
(
!
gtest_is_initialized_before_run_all_tests
)
{
ColoredPrintf
(
COLOR_RED
,
GTestColor
::
kRed
,
"
\n
IMPORTANT NOTICE - DO NOT IGNORE:
\n
"
"This test program did NOT call "
GTEST_INIT_GOOGLE_TEST_NAME_
"() before calling RUN_ALL_TESTS(). This is INVALID. Soon "
GTEST_NAME_
" will start to enforce the valid usage. "
"Please fix it ASAP, or IT WILL START TO FAIL.
\n
"
);
// NOLINT
#if GTEST_FOR_GOOGLE_
ColoredPrintf
(
COLOR_RED
,
ColoredPrintf
(
GTestColor
::
kRed
,
"For more details, see http://wiki/Main/ValidGUnitMain.
\n
"
);
#endif // GTEST_FOR_GOOGLE_
}
...
...
@@ -5578,7 +5581,7 @@ void WriteToShardStatusFileIfNeeded() {
if
(
test_shard_file
!=
nullptr
)
{
FILE
*
const
file
=
posix
::
FOpen
(
test_shard_file
,
"w"
);
if
(
file
==
nullptr
)
{
ColoredPrintf
(
COLOR_RED
,
ColoredPrintf
(
GTestColor
::
kRed
,
"Could not write to the test shard status file
\"
%s
\"
"
"specified by the %s environment variable.
\n
"
,
test_shard_file
,
kTestShardStatusFile
);
...
...
@@ -5612,7 +5615,7 @@ bool ShouldShard(const char* total_shards_env,
<<
"Invalid environment variables: you have "
<<
kTestShardIndex
<<
" = "
<<
shard_index
<<
", but have left "
<<
kTestTotalShards
<<
" unset.
\n
"
;
ColoredPrintf
(
COLOR_RED
,
"%s"
,
msg
.
GetString
().
c_str
());
ColoredPrintf
(
GTestColor
::
kRed
,
"%s"
,
msg
.
GetString
().
c_str
());
fflush
(
stdout
);
exit
(
EXIT_FAILURE
);
}
else
if
(
total_shards
!=
-
1
&&
shard_index
==
-
1
)
{
...
...
@@ -5620,7 +5623,7 @@ bool ShouldShard(const char* total_shards_env,
<<
"Invalid environment variables: you have "
<<
kTestTotalShards
<<
" = "
<<
total_shards
<<
", but have left "
<<
kTestShardIndex
<<
" unset.
\n
"
;
ColoredPrintf
(
COLOR_RED
,
"%s"
,
msg
.
GetString
().
c_str
());
ColoredPrintf
(
GTestColor
::
kRed
,
"%s"
,
msg
.
GetString
().
c_str
());
fflush
(
stdout
);
exit
(
EXIT_FAILURE
);
}
else
if
(
shard_index
<
0
||
shard_index
>=
total_shards
)
{
...
...
@@ -5629,7 +5632,7 @@ bool ShouldShard(const char* total_shards_env,
<<
kTestShardIndex
<<
" < "
<<
kTestTotalShards
<<
", but you have "
<<
kTestShardIndex
<<
"="
<<
shard_index
<<
", "
<<
kTestTotalShards
<<
"="
<<
total_shards
<<
".
\n
"
;
ColoredPrintf
(
COLOR_RED
,
"%s"
,
msg
.
GetString
().
c_str
());
ColoredPrintf
(
GTestColor
::
kRed
,
"%s"
,
msg
.
GetString
().
c_str
());
fflush
(
stdout
);
exit
(
EXIT_FAILURE
);
}
...
...
@@ -6019,7 +6022,7 @@ static bool HasGoogleTestFlagPrefix(const char* str) {
// @D changes to the default terminal text color.
//
static
void
PrintColorEncoded
(
const
char
*
str
)
{
GTestColor
color
=
COLOR_DEFAULT
;
// The current color.
GTestColor
color
=
GTestColor
::
kDefault
;
// The current color.
// Conceptually, we split the string into segments divided by escape
// sequences. Then we print one segment at a time. At the end of
...
...
@@ -6039,13 +6042,13 @@ static void PrintColorEncoded(const char* str) {
if
(
ch
==
'@'
)
{
ColoredPrintf
(
color
,
"@"
);
}
else
if
(
ch
==
'D'
)
{
color
=
COLOR_DEFAULT
;
color
=
GTestColor
::
kDefault
;
}
else
if
(
ch
==
'R'
)
{
color
=
COLOR_RED
;
color
=
GTestColor
::
kRed
;
}
else
if
(
ch
==
'G'
)
{
color
=
COLOR_GREEN
;
color
=
GTestColor
::
kGreen
;
}
else
if
(
ch
==
'Y'
)
{
color
=
COLOR_YELLOW
;
color
=
GTestColor
::
kYellow
;
}
else
{
--
str
;
}
...
...
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