Commit 82670da6 by Derek Mauro

Merge branch 'master' into stacktrace

parents d772e203 df0d0a3f
...@@ -109,6 +109,7 @@ cc_library( ...@@ -109,6 +109,7 @@ cc_library(
"@com_google_absl//absl/debugging:symbolize", "@com_google_absl//absl/debugging:symbolize",
"@com_google_absl//absl/strings", "@com_google_absl//absl/strings",
"@com_google_absl//absl/types:optional", "@com_google_absl//absl/types:optional",
"@com_google_absl//absl/types:variant",
], ],
"//conditions:default": [], "//conditions:default": [],
}, },
......
If you're like us, you'd like to look at some Google Test sample code. The # Googletest Samples {#samples}
[samples folder](../samples) has a number of well-commented samples showing how to use a
variety of Google Test features.
* [Sample #1](../samples/sample1_unittest.cc) shows the basic steps of using Google Test to test C++ functions. If you're like us, you'd like to look at [googletest
* [Sample #2](../samples/sample2_unittest.cc) shows a more complex unit test for a class with multiple member functions. samples.](https://github.com/google/googletest/tree/master/googletest/samples)
* [Sample #3](../samples/sample3_unittest.cc) uses a test fixture. The sample directory has a number of well-commented samples showing how to use a
* [Sample #4](../samples/sample4_unittest.cc) is another basic example of using Google Test. variety of googletest features.
* [Sample #5](../samples/sample5_unittest.cc) teaches how to reuse a test fixture in multiple test cases by deriving sub-fixtures from it.
* [Sample #6](../samples/sample6_unittest.cc) demonstrates type-parameterized tests. * Sample #1 shows the basic steps of using googletest to test C++ functions.
* [Sample #7](../samples/sample7_unittest.cc) teaches the basics of value-parameterized tests. * Sample #2 shows a more complex unit test for a class with multiple member
* [Sample #8](../samples/sample8_unittest.cc) shows using `Combine()` in value-parameterized tests. functions.
* [Sample #9](../samples/sample9_unittest.cc) shows use of the listener API to modify Google Test's console output and the use of its reflection API to inspect test results. * Sample #3 uses a test fixture.
* [Sample #10](../samples/sample10_unittest.cc) shows use of the listener API to implement a primitive memory leak checker. * Sample #4 teaches you how to use googletest and `googletest.h` together to
get the best of both libraries.
* Sample #5 puts shared testing logic in a base test fixture, and reuses it in
derived fixtures.
* Sample #6 demonstrates type-parameterized tests.
* Sample #7 teaches the basics of value-parameterized tests.
* Sample #8 shows using `Combine()` in value-parameterized tests.
* Sample #9 shows use of the listener API to modify Google Test's console
output and the use of its reflection API to inspect test results.
* Sample #10 shows use of the listener API to implement a primitive memory
leak checker.
...@@ -114,6 +114,7 @@ ...@@ -114,6 +114,7 @@
#if GTEST_HAS_ABSL #if GTEST_HAS_ABSL
#include "absl/strings/string_view.h" #include "absl/strings/string_view.h"
#include "absl/types/optional.h" #include "absl/types/optional.h"
#include "absl/types/variant.h"
#endif // GTEST_HAS_ABSL #endif // GTEST_HAS_ABSL
namespace testing { namespace testing {
...@@ -787,6 +788,28 @@ class UniversalPrinter<::absl::optional<T>> { ...@@ -787,6 +788,28 @@ class UniversalPrinter<::absl::optional<T>> {
} }
}; };
// Printer for absl::variant
template <typename... T>
class UniversalPrinter<::absl::variant<T...>> {
public:
static void Print(const ::absl::variant<T...>& value, ::std::ostream* os) {
*os << '(';
absl::visit(Visitor{os}, value);
*os << ')';
}
private:
struct Visitor {
template <typename U>
void operator()(const U& u) const {
*os << "'" << GetTypeName<U>() << "' with value ";
UniversalPrint(u, os);
}
::std::ostream* os;
};
};
#endif // GTEST_HAS_ABSL #endif // GTEST_HAS_ABSL
// UniversalPrintArray(begin, len, os) prints an array of 'len' // UniversalPrintArray(begin, len, os) prints an array of 'len'
......
...@@ -313,7 +313,7 @@ ...@@ -313,7 +313,7 @@
// GTEST_DISABLE_MSC_WARNINGS_PUSH_(4800 4385) // GTEST_DISABLE_MSC_WARNINGS_PUSH_(4800 4385)
// /* code that triggers warnings C4800 and C4385 */ // /* code that triggers warnings C4800 and C4385 */
// GTEST_DISABLE_MSC_WARNINGS_POP_() // GTEST_DISABLE_MSC_WARNINGS_POP_()
#if _MSC_VER >= 1500 #if _MSC_VER >= 1400
# define GTEST_DISABLE_MSC_WARNINGS_PUSH_(warnings) \ # define GTEST_DISABLE_MSC_WARNINGS_PUSH_(warnings) \
__pragma(warning(push)) \ __pragma(warning(push)) \
__pragma(warning(disable: warnings)) __pragma(warning(disable: warnings))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment