gtest: Add mesa-gtest-extras.h with array ASSERT/EXPECT macros
There are no similar macros in gtest. They do recommend pulling another library (gmock) and use that, but having our own let us control the output more precisely. Extracted the code from a similar existing macro in blob_test.cpp, making changes to the output.
A check like
ASSERT_U8_ARRAY_EQUAL(expected_u8, result_u8, 32);
that fails will output
Expected 32 values to be equal but found 1 that differ:
expected_u8 values are:
[000] 29 44 00 00 44 60 cb 80 93 65 07 c0 08 00 40 29
[016] 03 81 00 00 5c a0 21 87 *b0 31 00 00 00 00 00 60
result_u8 values are:
[000] 29 44 00 00 44 60 cb 80 93 65 07 c0 08 00 40 29
[016] 03 81 00 00 5c a0 21 87 *af 31 00 00 00 00 00 60
and a check like
ASSERT_U64_ARRAY_EQUAL(expected_u64, result_u64, 4);
Expected 4 values to be equal but found 1 that differ:
expected_u64 values are:
[000] 80cb604400004429 29400008c0076593
[002] 8721a05c00008103 *60000000000031b0
result_u64 values are:
[000] 80cb604400004429 29400008c0076593
[002] 8721a05c00008103 *60000000000031af
Note the asterisk indicating wrong values.
The new header for extra macros is in src/gtest/include/ so it doesn't get in the way when updating the real gtest headers that are in src/gtest/include/gtest/.