DescriptionProvide gtest printers for ui/gfx geometry types
This provides PrintTo(..) functions for the geometric types in ui/gfx/
so that failing gtest assertions pretty-print the values instead of
dumping the bytes of the objects. This way gtest assertions on these
types can be written in the form:
EXPECT_EQ(a, b);
instead of
EXPECT_EQ(a.ToString(), b.ToString());
which is currently used (inconsistently) to provide more readable
failure messages.
This is a bit tricky since gtest uses streams and somewhat complicated
template expansion magic to pretty print values and we don't want to
link the stream-based code into production code paths. This declares the
PrintTo() functions in the headers defining each of the geometry types,
using the <iosfwd> header to keep stream bloat to a minimum, and defines
the formatters in gfx_test_support. This way every test that
instantiates these printers has to declare a dependency on
gfx_test_support or it fails to link, but a test does not have to
#include any particular header to see the correct printer declaration
and thus expand the template correctly.
If we were to declare the PrintTo() functions in a test only header such
a gfx_util.h then the pretty printers would work reliably only if
*every* target in a translation unit that instantiated the comparison
saw this declaration. If some unit tests in a target #included the
header and some did not then it would be intederminate whether the
template instantiation linked in to the test binary was the pretty
printed one or the hex dump one (and in practice this appears to be
inconsistent across clang and gcc for whatever reason).
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=282270
Patch Set 1 #Patch Set 2 : declaration in type headers, definition in gfx_test_support #Patch Set 3 : Add missing gfx_test_support deps #
Total comments: 10
Patch Set 4 : more deps for android, linux-gn, and ios #Patch Set 5 : #Patch Set 6 : fix gfx_unittests on ios #Patch Set 7 : typo #Patch Set 8 : add gfx_test_support dep to video_encode_accelerator_unittest #
Messages
Total messages: 21 (0 generated)
|