Pretty print AlternativeService in test macros.
Implement PrintTo(const AlternativeService&, std::ostream*) so that when
EXPECT_EQ or ASSERT_EQ fails between two AlternativeService structs, the test
output contains protocol names and hostnames pretty printed, instead of a binary
blob including useless things like the memory address of where std::string
stores the hostname. See src/testing/gtest/include/gtest/gtest-printers.h for
more information.
Currently used in AlternateProtocolServerPropertiesTest.BrokenShadowsCanonical
only, but more tests involving EXPECT_EQ between AlternativeService structs are
coming.
An earlier version of this CL landed at https://crrev.com/1212813006 and got
reverted because on iOS, the helper function required registering an ataxit
handler. This version does things differently by
* using PrintTo instead of operator<<, just because this is listed first in the
comments in gtest-printers.h;
* defining the function in http_server_properties_impl_unittests.cc instead of
declaring it in http_server_properties.h with NET_EXPORT, this will make sure
that no static initializers will be introduced.
Note, however, that this helper function cannot be defined in anonymous
namespace, gtest would not find it there.
BUG=392575
Review URL: https://codereview.chromium.org/1213133003
Cr-Commit-Position: refs/heads/master@{#336763}
diff --git a/net/http/http_server_properties_impl_unittest.cc b/net/http/http_server_properties_impl_unittest.cc
index 243c3fdd..e7fa7b4 100644
--- a/net/http/http_server_properties_impl_unittest.cc
+++ b/net/http/http_server_properties_impl_unittest.cc
@@ -41,6 +41,10 @@
}
};
+void PrintTo(const AlternativeService& alternative_service, std::ostream* os) {
+ *os << alternative_service.ToString();
+}
+
namespace {
class HttpServerPropertiesImplTest : public testing::Test {