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
2a468302
"docs/source/tutorials/darts.py" did not exist on "eb77376e026657a1c5b1317104a46868629c3439"
Commit
2a468302
authored
Jan 30, 2018
by
Gennadiy Civil
Browse files
Ability to optionally depend on Abseil plus upstream of 183716547
parent
6c0c3896
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
67 additions
and
0 deletions
+67
-0
BUILD.bazel
BUILD.bazel
+20
-0
WORKSPACE
WORKSPACE
+7
-0
googletest/include/gtest/gtest-printers.h
googletest/include/gtest/gtest-printers.h
+28
-0
googletest/test/gtest-printers_test.cc
googletest/test/gtest-printers_test.cc
+12
-0
No files found.
BUILD.bazel
View file @
2a468302
...
@@ -46,6 +46,12 @@ config_setting(
...
@@ -46,6 +46,12 @@ config_setting(
values
=
{
"cpu"
:
"x64_windows_msvc"
},
values
=
{
"cpu"
:
"x64_windows_msvc"
},
)
)
config_setting
(
name
=
"has_absl"
,
values
=
{
"define"
:
"absl=1"
},
)
# Google Test including Google Mock
# Google Test including Google Mock
cc_library
(
cc_library
(
name
=
"gtest"
,
name
=
"gtest"
,
...
@@ -88,6 +94,20 @@ cc_library(
...
@@ -88,6 +94,20 @@ cc_library(
"-pthread"
,
"-pthread"
,
],
],
}),
}),
defines
=
select
({
":has_absl"
:
[
"GTEST_HAS_ABSL=1"
,
],
"//conditions:default"
:
[],
}
),
deps
=
select
({
":has_absl"
:
[
"@com_google_absl//absl/types:optional"
,
],
"//conditions:default"
:
[],
}
)
)
)
cc_library
(
cc_library
(
...
...
WORKSPACE
View file @
2a468302
workspace
(
name
=
"com_google_googletest"
)
workspace
(
name
=
"com_google_googletest"
)
# Abseil
http_archive
(
name
=
"com_google_absl"
,
urls
=
[
"https://github.com/abseil/abseil-cpp/archive/master.zip"
],
strip_prefix
=
"abseil-cpp-master"
,
)
googletest/include/gtest/gtest-printers.h
View file @
2a468302
...
@@ -46,6 +46,10 @@
...
@@ -46,6 +46,10 @@
// 2. operator<<(ostream&, const T&) defined in either foo or the
// 2. operator<<(ostream&, const T&) defined in either foo or the
// global namespace.
// global namespace.
//
//
// However if T is an STL-style container then it is printed element-wise
// unless foo::PrintTo(const T&, ostream*) is defined. Note that
// operator<<() is ignored for container types.
//
// If none of the above is defined, it will print the debug string of
// If none of the above is defined, it will print the debug string of
// the value if it is a protocol buffer, or print the raw bytes in the
// the value if it is a protocol buffer, or print the raw bytes in the
// value otherwise.
// value otherwise.
...
@@ -107,6 +111,10 @@
...
@@ -107,6 +111,10 @@
# include <tuple>
# include <tuple>
#endif
#endif
#if GTEST_HAS_ABSL
#include "absl/types/optional.h"
#endif // GTEST_HAS_ABSL
namespace
testing
{
namespace
testing
{
// Definitions in the 'internal' and 'internal2' name spaces are
// Definitions in the 'internal' and 'internal2' name spaces are
...
@@ -722,6 +730,26 @@ class UniversalPrinter {
...
@@ -722,6 +730,26 @@ class UniversalPrinter {
GTEST_DISABLE_MSC_WARNINGS_POP_
()
GTEST_DISABLE_MSC_WARNINGS_POP_
()
};
};
#if GTEST_HAS_ABSL
// Printer for absl::optional
template
<
typename
T
>
class
UniversalPrinter
<::
absl
::
optional
<
T
>>
{
public:
static
void
Print
(
const
::
absl
::
optional
<
T
>&
value
,
::
std
::
ostream
*
os
)
{
*
os
<<
'('
;
if
(
!
value
)
{
*
os
<<
"nullopt"
;
}
else
{
UniversalPrint
(
*
value
,
os
);
}
*
os
<<
')'
;
}
};
#endif // GTEST_HAS_ABSL
// UniversalPrintArray(begin, len, os) prints an array of 'len'
// UniversalPrintArray(begin, len, os) prints an array of 'len'
// elements, starting at address 'begin'.
// elements, starting at address 'begin'.
template
<
typename
T
>
template
<
typename
T
>
...
...
googletest/test/gtest-printers_test.cc
View file @
2a468302
...
@@ -1765,5 +1765,17 @@ TEST(UniversalTersePrintTupleFieldsToStringsTestWithStd, PrintsTersely) {
...
@@ -1765,5 +1765,17 @@ TEST(UniversalTersePrintTupleFieldsToStringsTestWithStd, PrintsTersely) {
#endif // GTEST_HAS_STD_TUPLE_
#endif // GTEST_HAS_STD_TUPLE_
#if GTEST_HAS_ABSL
TEST
(
PrintOptionalTest
,
Basic
)
{
absl
::
optional
<
int
>
value
;
EXPECT_EQ
(
"(nullopt)"
,
PrintToString
(
value
));
value
=
{
7
};
EXPECT_EQ
(
"(7)"
,
PrintToString
(
value
));
EXPECT_EQ
(
"(1.1)"
,
PrintToString
(
absl
::
optional
<
double
>
{
1.1
}));
EXPECT_EQ
(
"(
\"
A
\"
)"
,
PrintToString
(
absl
::
optional
<
std
::
string
>
{
"A"
}));
}
#endif // GTEST_HAS_ABSL
}
// namespace gtest_printers_test
}
// namespace gtest_printers_test
}
// namespace testing
}
// namespace testing
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