Add a helper for comparing byte strings.

We compare pointer/length pairs constantly. To avoid needing to type it
everywhere and get GTest's output, add a StringPiece-alike for byte
slices which supports ==, !=, and std::ostream.

BUG=129

Change-Id: I108342cbd2c6a58fec0b9cb87ebdf50364bda099
Reviewed-on: https://boringssl-review.googlesource.com/13625
Reviewed-by: David Benjamin <davidben@google.com>
Commit-Queue: David Benjamin <davidben@google.com>
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
diff --git a/ssl/ssl_test.cc b/ssl/ssl_test.cc
index e12c613..dfab976 100644
--- a/ssl/ssl_test.cc
+++ b/ssl/ssl_test.cc
@@ -1503,8 +1503,7 @@
   ASSERT_TRUE(SSL_SESSION_to_bytes(session1.get(), &s1_bytes, &s1_len));
   bssl::UniquePtr<uint8_t> free_s1(s1_bytes);
 
-  ASSERT_EQ(s0_len, s1_len);
-  EXPECT_EQ(0, OPENSSL_memcmp(s0_bytes, s1_bytes, s0_len));
+  EXPECT_EQ(Bytes(s0_bytes, s0_len), Bytes(s1_bytes, s1_len));
 }
 
 static void ExpectFDs(const SSL *ssl, int rfd, int wfd) {
@@ -3076,10 +3075,8 @@
   bssl::UniquePtr<uint8_t> free_der3(der3);
 
   // They must also encode identically.
-  ASSERT_EQ(der2_len, der_len);
-  EXPECT_EQ(0, OPENSSL_memcmp(der, der2, static_cast<size_t>(der_len)));
-  ASSERT_EQ(der3_len, der_len);
-  EXPECT_EQ(0, OPENSSL_memcmp(der, der3, static_cast<size_t>(der_len)));
+  EXPECT_EQ(Bytes(der, der_len), Bytes(der2, der2_len));
+  EXPECT_EQ(Bytes(der, der_len), Bytes(der3, der3_len));
 }
 
 // TODO(davidben): Convert this file to GTest properly.