Introduce IovecToStringPiece() in QuicStreamSequencerBufferTest.

Introduce IovecToStringPiece() helper method for brevity.  Also, previously
std::string() objects were instantiated at almost every call site, which
involves unnecessary copying.  Creating a QuicStringPiece works just as fine.

gfe-relnote: n/a, test-only change.
PiperOrigin-RevId: 254789421
Change-Id: I75036c8b9f9f5e7a42ef53790facf97b59d32d39
diff --git a/quic/core/quic_stream_sequencer_buffer_test.cc b/quic/core/quic_stream_sequencer_buffer_test.cc
index f36e076..49f83f0 100644
--- a/quic/core/quic_stream_sequencer_buffer_test.cc
+++ b/quic/core/quic_stream_sequencer_buffer_test.cc
@@ -22,6 +22,11 @@
 
 namespace test {
 
+QuicStringPiece IovecToStringPiece(iovec iov) {
+  return QuicStringPiece(reinterpret_cast<const char*>(iov.iov_base),
+                         iov.iov_len);
+}
+
 char GetCharFromIOVecs(size_t offset, iovec iov[], size_t count) {
   size_t start_offset = 0;
   for (size_t i = 0; i < count; i++) {
@@ -313,7 +318,7 @@
   QUIC_LOG(ERROR) << error_details_;
   EXPECT_EQ(100u, read);
   EXPECT_EQ(100u, buffer_->BytesConsumed());
-  EXPECT_EQ(source, std::string(dest, read));
+  EXPECT_EQ(source, QuicStringPiece(dest, read));
   // The first block should be released as its data has been read out.
   EXPECT_EQ(nullptr, helper_->GetBlock(0));
   EXPECT_TRUE(helper_->CheckBufferInvariants());
@@ -478,8 +483,7 @@
   int iov_count = buffer_->GetReadableRegions(iovs, 2);
   EXPECT_EQ(1, iov_count);
   EXPECT_EQ(std::string(kBlockSizeBytes - 256, 'a'),
-            std::string(reinterpret_cast<const char*>(iovs[0].iov_base),
-                        iovs[0].iov_len));
+            IovecToStringPiece(iovs[0]));
 }
 
 TEST_F(QuicStreamSequencerBufferTest, GetReadableRegionsWithinOneBlock) {
@@ -492,9 +496,7 @@
   iovec iovs[2];
   int iov_count = buffer_->GetReadableRegions(iovs, 2);
   EXPECT_EQ(1, iov_count);
-  EXPECT_EQ(std::string(1024 - 256, 'a'),
-            std::string(reinterpret_cast<const char*>(iovs[0].iov_base),
-                        iovs[0].iov_len));
+  EXPECT_EQ(std::string(1024 - 256, 'a'), IovecToStringPiece(iovs[0]));
 }
 
 TEST_F(QuicStreamSequencerBufferTest,
@@ -536,9 +538,7 @@
   EXPECT_EQ(4, buffer_->GetReadableRegions(iovs1, 5));
   EXPECT_EQ(0.5 * kBlockSizeBytes, iovs1[2].iov_len);
   EXPECT_EQ(512u, iovs1[3].iov_len);
-  EXPECT_EQ(std::string(512, 'b'),
-            std::string(reinterpret_cast<const char*>(iovs1[3].iov_base),
-                        iovs1[3].iov_len));
+  EXPECT_EQ(std::string(512, 'b'), IovecToStringPiece(iovs1[3]));
 }
 
 TEST_F(QuicStreamSequencerBufferTest, GetReadableRegionEmpty) {
@@ -567,9 +567,7 @@
   // Get readable region from [256, 1024)
   iovec iov;
   EXPECT_TRUE(buffer_->GetReadableRegion(&iov));
-  EXPECT_EQ(
-      std::string(kBlockSizeBytes - 256, 'a'),
-      std::string(reinterpret_cast<const char*>(iov.iov_base), iov.iov_len));
+  EXPECT_EQ(std::string(kBlockSizeBytes - 256, 'a'), IovecToStringPiece(iov));
 }
 
 TEST_F(QuicStreamSequencerBufferTest, GetReadableRegionTillGap) {
@@ -581,9 +579,8 @@
   // Get readable region from [256, 1023)
   iovec iov;
   EXPECT_TRUE(buffer_->GetReadableRegion(&iov));
-  EXPECT_EQ(
-      std::string(kBlockSizeBytes - 1 - 256, 'a'),
-      std::string(reinterpret_cast<const char*>(iov.iov_base), iov.iov_len));
+  EXPECT_EQ(std::string(kBlockSizeBytes - 1 - 256, 'a'),
+            IovecToStringPiece(iov));
 }
 
 TEST_F(QuicStreamSequencerBufferTest, PrefetchEmptyBuffer) {
@@ -596,8 +593,7 @@
   buffer_->OnStreamData(0, source, &written_, &error_details_);
   iovec iov;
   EXPECT_TRUE(buffer_->PrefetchNextRegion(&iov));
-  EXPECT_EQ(source, std::string(reinterpret_cast<const char*>(iov.iov_base),
-                                iov.iov_len));
+  EXPECT_EQ(source, IovecToStringPiece(iov));
 }
 
 TEST_F(QuicStreamSequencerBufferTest, PrefetchBufferWithOffset) {
@@ -605,14 +601,12 @@
   buffer_->OnStreamData(0, source, &written_, &error_details_);
   iovec iov;
   EXPECT_TRUE(buffer_->PrefetchNextRegion(&iov));
-  EXPECT_EQ(source, std::string(reinterpret_cast<const char*>(iov.iov_base),
-                                iov.iov_len));
+  EXPECT_EQ(source, IovecToStringPiece(iov));
   // The second frame goes into the same bucket.
   std::string source2(800, 'a');
   buffer_->OnStreamData(1024, source2, &written_, &error_details_);
   EXPECT_TRUE(buffer_->PrefetchNextRegion(&iov));
-  EXPECT_EQ(source2, std::string(reinterpret_cast<const char*>(iov.iov_base),
-                                 iov.iov_len));
+  EXPECT_EQ(source2, IovecToStringPiece(iov));
 }
 
 TEST_F(QuicStreamSequencerBufferTest, PrefetchBufferWithMultipleBucket) {
@@ -621,18 +615,14 @@
   buffer_->OnStreamData(0, source, &written_, &error_details_);
   iovec iov;
   EXPECT_TRUE(buffer_->PrefetchNextRegion(&iov));
-  EXPECT_EQ(source, std::string(reinterpret_cast<const char*>(iov.iov_base),
-                                iov.iov_len));
+  EXPECT_EQ(source, IovecToStringPiece(iov));
   std::string source2(kBlockSizeBytes, 'b');
   buffer_->OnStreamData(data_size, source2, &written_, &error_details_);
   EXPECT_TRUE(buffer_->PrefetchNextRegion(&iov));
-  EXPECT_EQ(
-      std::string(kBlockSizeBytes - data_size, 'b'),
-      std::string(reinterpret_cast<const char*>(iov.iov_base), iov.iov_len));
+  EXPECT_EQ(std::string(kBlockSizeBytes - data_size, 'b'),
+            IovecToStringPiece(iov));
   EXPECT_TRUE(buffer_->PrefetchNextRegion(&iov));
-  EXPECT_EQ(
-      std::string(data_size, 'b'),
-      std::string(reinterpret_cast<const char*>(iov.iov_base), iov.iov_len));
+  EXPECT_EQ(std::string(data_size, 'b'), IovecToStringPiece(iov));
 }
 
 TEST_F(QuicStreamSequencerBufferTest, PrefetchBufferAfterBlockRetired) {
@@ -640,8 +630,7 @@
   buffer_->OnStreamData(0, source, &written_, &error_details_);
   iovec iov;
   EXPECT_TRUE(buffer_->PrefetchNextRegion(&iov));
-  EXPECT_EQ(source, std::string(reinterpret_cast<const char*>(iov.iov_base),
-                                iov.iov_len));
+  EXPECT_EQ(source, IovecToStringPiece(iov));
   // Read the whole block so it's retired.
   char dest[kBlockSizeBytes];
   helper_->Read(dest, kBlockSizeBytes);
@@ -650,8 +639,7 @@
   buffer_->OnStreamData(kBlockSizeBytes, source2, &written_, &error_details_);
 
   EXPECT_TRUE(buffer_->PrefetchNextRegion(&iov));
-  EXPECT_EQ(source2, std::string(reinterpret_cast<const char*>(iov.iov_base),
-                                 iov.iov_len));
+  EXPECT_EQ(source2, IovecToStringPiece(iov));
 }
 
 TEST_F(QuicStreamSequencerBufferTest, PrefetchContinously) {
@@ -659,13 +647,11 @@
   buffer_->OnStreamData(0, source, &written_, &error_details_);
   iovec iov;
   EXPECT_TRUE(buffer_->PrefetchNextRegion(&iov));
-  EXPECT_EQ(source, std::string(reinterpret_cast<const char*>(iov.iov_base),
-                                iov.iov_len));
+  EXPECT_EQ(source, IovecToStringPiece(iov));
   std::string source2(kBlockSizeBytes, 'b');
   buffer_->OnStreamData(kBlockSizeBytes, source2, &written_, &error_details_);
   EXPECT_TRUE(buffer_->PrefetchNextRegion(&iov));
-  EXPECT_EQ(source2, std::string(reinterpret_cast<const char*>(iov.iov_base),
-                                 iov.iov_len));
+  EXPECT_EQ(source2, IovecToStringPiece(iov));
 }
 
 TEST_F(QuicStreamSequencerBufferTest, ConsumeMoreThanPrefetch) {
@@ -675,16 +661,12 @@
   helper_->Read(dest, 30);
   iovec iov;
   EXPECT_TRUE(buffer_->PrefetchNextRegion(&iov));
-  EXPECT_EQ(
-      std::string(70, 'a'),
-      std::string(reinterpret_cast<const char*>(iov.iov_base), iov.iov_len));
+  EXPECT_EQ(std::string(70, 'a'), IovecToStringPiece(iov));
   std::string source2(100, 'b');
   buffer_->OnStreamData(100, source2, &written_, &error_details_);
   buffer_->MarkConsumed(100);
   EXPECT_TRUE(buffer_->PrefetchNextRegion(&iov));
-  EXPECT_EQ(
-      std::string(70, 'b'),
-      std::string(reinterpret_cast<const char*>(iov.iov_base), iov.iov_len));
+  EXPECT_EQ(std::string(70, 'b'), IovecToStringPiece(iov));
 }
 
 TEST_F(QuicStreamSequencerBufferTest, PrefetchMoreThanBufferHas) {
@@ -692,9 +674,7 @@
   buffer_->OnStreamData(0, source, &written_, &error_details_);
   iovec iov;
   EXPECT_TRUE(buffer_->PrefetchNextRegion(&iov));
-  EXPECT_EQ(
-      std::string(100, 'a'),
-      std::string(reinterpret_cast<const char*>(iov.iov_base), iov.iov_len));
+  EXPECT_EQ(std::string(100, 'a'), IovecToStringPiece(iov));
   EXPECT_FALSE(buffer_->PrefetchNextRegion(&iov));
 }
 
@@ -1052,8 +1032,7 @@
   // Prefetch all buffered data.
   iovec iov;
   EXPECT_TRUE(buffer_->PrefetchNextRegion(&iov));
-  EXPECT_EQ(kData, QuicStringPiece(reinterpret_cast<const char*>(iov.iov_base),
-                                   iov.iov_len));
+  EXPECT_EQ(kData, IovecToStringPiece(iov));
 
   // No more data to prefetch.
   EXPECT_FALSE(buffer_->PrefetchNextRegion(&iov));