Lines Matching full:chunk

42 using internal::Chunk;
157 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart) in TEST_F()
169 Chunk c0 = DecodeChunk(ctx_.responses()[0]); in TEST_F()
170 Chunk c1 = DecodeChunk(ctx_.responses()[1]); in TEST_F()
172 // First chunk should have all the read data. in TEST_F()
179 // Second chunk should be empty and set remaining_bytes = 0. in TEST_F()
186 EncodeChunk(Chunk::Final(ProtocolVersion::kLegacy, 3, OkStatus()))); in TEST_F()
195 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart) in TEST_F()
206 Chunk c0 = DecodeChunk(ctx_.responses().back()); in TEST_F()
215 Chunk(ProtocolVersion::kLegacy, Chunk::Type::kParametersContinue) in TEST_F()
222 Chunk c1 = DecodeChunk(ctx_.responses().back()); in TEST_F()
232 Chunk(ProtocolVersion::kLegacy, Chunk::Type::kParametersContinue) in TEST_F()
239 Chunk c2 = DecodeChunk(ctx_.responses()[2]); in TEST_F()
247 EncodeChunk(Chunk::Final(ProtocolVersion::kLegacy, 3, OkStatus()))); in TEST_F()
256 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart) in TEST_F()
264 Chunk(ProtocolVersion::kLegacy, Chunk::Type::kParametersContinue) in TEST_F()
279 Chunk c1 = DecodeChunk(ctx_.responses()[1]); in TEST_F()
292 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart) in TEST_F()
299 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
300 EXPECT_TRUE(pw::containers::Equal(span(kData).first(16), chunk.payload())); in TEST_F()
303 Chunk(ProtocolVersion::kLegacy, Chunk::Type::kParametersRetransmit) in TEST_F()
310 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
312 pw::containers::Equal(span(kData).subspan(2, 8), chunk.payload())); in TEST_F()
315 Chunk(ProtocolVersion::kLegacy, Chunk::Type::kParametersRetransmit) in TEST_F()
322 Chunk chunk = DecodeChunk(ctx_.responses()[2]); in TEST_F() local
324 span(&kData[17], kData.data() + kData.size()), chunk.payload())); in TEST_F()
331 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart) in TEST_F()
336 Chunk(ProtocolVersion::kLegacy, Chunk::Type::kParametersRetransmit) in TEST_F()
344 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
345 ASSERT_TRUE(chunk.status().has_value()); in TEST_F()
346 EXPECT_EQ(chunk.status().value(), Status::Unimplemented()); in TEST_F()
352 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart) in TEST_F()
363 Chunk c0 = DecodeChunk(ctx_.responses()[0]); in TEST_F()
364 Chunk c1 = DecodeChunk(ctx_.responses()[1]); in TEST_F()
365 Chunk c2 = DecodeChunk(ctx_.responses()[2]); in TEST_F()
366 Chunk c3 = DecodeChunk(ctx_.responses()[3]); in TEST_F()
367 Chunk c4 = DecodeChunk(ctx_.responses()[4]); in TEST_F()
402 EncodeChunk(Chunk::Final(ProtocolVersion::kLegacy, 3, OkStatus()))); in TEST_F()
411 // from sending a final chunk. in TEST_F()
413 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart) in TEST_F()
418 EncodeChunk(Chunk::Final(ProtocolVersion::kLegacy, 3, OkStatus()))); in TEST_F()
432 // from sending a final chunk. in TEST_F()
434 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart) in TEST_F()
456 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart) in TEST_F()
467 Chunk c0 = DecodeChunk(ctx_.responses()[0]); in TEST_F()
468 Chunk c1 = DecodeChunk(ctx_.responses()[1]); in TEST_F()
469 Chunk c2 = DecodeChunk(ctx_.responses()[2]); in TEST_F()
470 Chunk c3 = DecodeChunk(ctx_.responses()[3]); in TEST_F()
471 Chunk c4 = DecodeChunk(ctx_.responses()[4]); in TEST_F()
506 EncodeChunk(Chunk::Final(ProtocolVersion::kLegacy, 3, OkStatus()))); in TEST_F()
515 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart) in TEST_F()
528 Chunk::Final(ProtocolVersion::kLegacy, 3, Status::OutOfRange()))); in TEST_F()
538 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart) in TEST_F()
545 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
546 EXPECT_EQ(chunk.session_id(), 11u); in TEST_F()
547 ASSERT_TRUE(chunk.status().has_value()); in TEST_F()
548 EXPECT_EQ(chunk.status().value(), Status::NotFound()); in TEST_F()
553 Chunk(ProtocolVersion::kLegacy, Chunk::Type::kParametersRetransmit) in TEST_F()
558 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
563 EncodeChunk(Chunk::Final(ProtocolVersion::kLegacy, 3, OkStatus()))); in TEST_F()
573 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart) in TEST_F()
585 ctx_.SendClientStream( // Resend starting chunk in TEST_F()
586 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart) in TEST_F()
600 Chunk(ProtocolVersion::kLegacy, Chunk::Type::kParametersRetransmit) in TEST_F()
605 EncodeChunk(Chunk::Final(ProtocolVersion::kLegacy, 3, OkStatus()))); in TEST_F()
615 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart) in TEST_F()
625 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
626 EXPECT_EQ(chunk.status(), Status::ResourceExhausted()); in TEST_F()
634 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart) in TEST_F()
640 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
641 EXPECT_EQ(chunk.session_id(), 3u); in TEST_F()
642 EXPECT_EQ(chunk.remaining_bytes(), 0u); in TEST_F()
645 EncodeChunk(Chunk::Final(ProtocolVersion::kLegacy, 3, OkStatus()))); in TEST_F()
656 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart) in TEST_F()
666 Chunk c0 = DecodeChunk(ctx_.responses()[0]); in TEST_F()
667 Chunk c1 = DecodeChunk(ctx_.responses()[1]); in TEST_F()
669 // First chunk should have all the read data. in TEST_F()
676 // Second chunk should be empty and set remaining_bytes = 0. in TEST_F()
683 EncodeChunk(Chunk::Final(ProtocolVersion::kLegacy, 3, OkStatus()))); in TEST_F()
690 // non-initial chunk as a continuation of the transfer. in TEST_F()
694 Chunk(ProtocolVersion::kLegacy, Chunk::Type::kParametersRetransmit) in TEST_F()
702 Chunk c2 = DecodeChunk(ctx_.responses()[2]); in TEST_F()
783 Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart).set_session_id(7))); in TEST_F()
790 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
791 EXPECT_EQ(chunk.session_id(), 7u); in TEST_F()
792 EXPECT_EQ(chunk.window_end_offset(), 32u); in TEST_F()
793 ASSERT_TRUE(chunk.max_chunk_size_bytes().has_value()); in TEST_F()
794 EXPECT_EQ(chunk.max_chunk_size_bytes().value(), 37u); in TEST_F()
797 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
805 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
806 EXPECT_EQ(chunk.session_id(), 7u); in TEST_F()
807 ASSERT_TRUE(chunk.status().has_value()); in TEST_F()
808 EXPECT_EQ(chunk.status().value(), OkStatus()); in TEST_F()
820 Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart).set_session_id(7))); in TEST_F()
822 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
830 Chunk chunk = DecodeChunk(ctx_.responses()[1]); in TEST_F() local
831 EXPECT_EQ(chunk.session_id(), 7u); in TEST_F()
832 ASSERT_TRUE(chunk.status().has_value()); in TEST_F()
833 EXPECT_EQ(chunk.status().value(), Status::DataLoss()); in TEST_F()
841 Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart).set_session_id(7))); in TEST_F()
847 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
856 Chunk chunk = DecodeChunk(ctx_.responses()[0]); in TEST_F() local
857 EXPECT_EQ(chunk.session_id(), 7u); in TEST_F()
858 EXPECT_EQ(chunk.window_end_offset(), 32u); in TEST_F()
859 ASSERT_TRUE(chunk.max_chunk_size_bytes().has_value()); in TEST_F()
860 EXPECT_EQ(chunk.max_chunk_size_bytes().value(), 37u); in TEST_F()
869 Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart).set_session_id(7))); in TEST_F()
876 Chunk chunk = DecodeChunk(ctx_.responses()[0]); in TEST_F() local
877 EXPECT_EQ(chunk.session_id(), 7u); in TEST_F()
878 EXPECT_EQ(chunk.window_end_offset(), 32u); in TEST_F()
881 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
890 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
898 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
899 EXPECT_EQ(chunk.session_id(), 7u); in TEST_F()
900 ASSERT_TRUE(chunk.status().has_value()); in TEST_F()
901 EXPECT_EQ(chunk.status().value(), OkStatus()); in TEST_F()
916 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart) in TEST_F()
924 Chunk chunk = DecodeChunk(ctx_.responses()[1]); in TEST_F() local
925 EXPECT_EQ(chunk.session_id(), 7u); in TEST_F()
926 ASSERT_TRUE(chunk.status().has_value()); in TEST_F()
927 EXPECT_EQ(chunk.status().value(), Status::Internal()); in TEST_F()
932 Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart).set_session_id(7))); in TEST_F()
936 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
937 EXPECT_EQ(chunk.session_id(), 7u); in TEST_F()
938 EXPECT_EQ(chunk.offset(), 0u); in TEST_F()
939 EXPECT_EQ(chunk.window_end_offset(), 32u); in TEST_F()
944 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
951 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
959 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
960 EXPECT_EQ(chunk.session_id(), 7u); in TEST_F()
961 EXPECT_EQ(chunk.offset(), 8u); in TEST_F()
962 EXPECT_EQ(chunk.window_end_offset(), 32u); in TEST_F()
970 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
971 EXPECT_EQ(chunk.session_id(), 7u); in TEST_F()
972 EXPECT_EQ(chunk.offset(), 8u); in TEST_F()
973 EXPECT_EQ(chunk.window_end_offset(), 32u); in TEST_F()
978 Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart).set_session_id(7))); in TEST_F()
985 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
986 EXPECT_EQ(chunk.session_id(), 7u); in TEST_F()
987 EXPECT_EQ(chunk.window_end_offset(), 32u); in TEST_F()
991 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
999 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
1007 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
1015 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
1022 // Extend parameters chunk. in TEST_F()
1023 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
1024 EXPECT_EQ(chunk.session_id(), 7u); in TEST_F()
1025 EXPECT_EQ(chunk.window_end_offset(), 32u); in TEST_F()
1026 EXPECT_EQ(chunk.type(), Chunk::Type::kParametersContinue); in TEST_F()
1029 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
1037 chunk = DecodeChunk(ctx_.responses()[2]); in TEST_F()
1038 EXPECT_EQ(chunk.session_id(), 7u); in TEST_F()
1039 ASSERT_TRUE(chunk.status().has_value()); in TEST_F()
1040 EXPECT_EQ(chunk.status().value(), OkStatus()); in TEST_F()
1054 Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart).set_session_id(7))); in TEST_F()
1061 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
1062 EXPECT_EQ(chunk.session_id(), 7u); in TEST_F()
1063 EXPECT_EQ(chunk.window_end_offset(), 32u); in TEST_F()
1067 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
1075 // Receiver should respond immediately with a continue chunk as the end of in TEST_F()
1077 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
1078 EXPECT_EQ(chunk.session_id(), 7u); in TEST_F()
1079 EXPECT_EQ(chunk.offset(), 12u); in TEST_F()
1080 EXPECT_EQ(chunk.window_end_offset(), 32u); in TEST_F()
1081 EXPECT_EQ(chunk.type(), Chunk::Type::kParametersContinue); in TEST_F()
1086 Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart).set_session_id(7))); in TEST_F()
1093 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
1094 EXPECT_EQ(chunk.session_id(), 7u); in TEST_F()
1095 EXPECT_EQ(chunk.window_end_offset(), 32u); in TEST_F()
1098 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
1107 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
1108 EXPECT_EQ(chunk.session_id(), 7u); in TEST_F()
1109 ASSERT_TRUE(chunk.status().has_value()); in TEST_F()
1110 EXPECT_EQ(chunk.status().value(), Status::Internal()); in TEST_F()
1115 Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart).set_session_id(7))); in TEST_F()
1122 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
1123 EXPECT_EQ(chunk.session_id(), 7u); in TEST_F()
1124 EXPECT_EQ(chunk.window_end_offset(), 16u); in TEST_F()
1127 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
1134 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
1135 EXPECT_EQ(chunk.session_id(), 7u); in TEST_F()
1136 EXPECT_EQ(chunk.offset(), 8u); in TEST_F()
1137 EXPECT_EQ(chunk.window_end_offset(), 24u); in TEST_F()
1140 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
1147 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
1148 EXPECT_EQ(chunk.session_id(), 7u); in TEST_F()
1149 EXPECT_EQ(chunk.offset(), 16u); in TEST_F()
1150 EXPECT_EQ(chunk.window_end_offset(), 32u); in TEST_F()
1153 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
1160 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
1161 EXPECT_EQ(chunk.session_id(), 7u); in TEST_F()
1162 EXPECT_EQ(chunk.offset(), 24u); in TEST_F()
1163 EXPECT_EQ(chunk.window_end_offset(), 32u); in TEST_F()
1166 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
1174 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
1175 EXPECT_EQ(chunk.session_id(), 7u); in TEST_F()
1176 ASSERT_TRUE(chunk.status().has_value()); in TEST_F()
1177 EXPECT_EQ(chunk.status().value(), OkStatus()); in TEST_F()
1187 Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart).set_session_id(7))); in TEST_F()
1191 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
1192 EXPECT_EQ(chunk.session_id(), 7u); in TEST_F()
1193 EXPECT_EQ(chunk.window_end_offset(), 16u); in TEST_F()
1204 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart) in TEST_F()
1209 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
1210 EXPECT_EQ(chunk.session_id(), 987u); in TEST_F()
1211 EXPECT_EQ(chunk.window_end_offset(), 8u); in TEST_F()
1218 Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart).set_session_id(7))); in TEST_F()
1225 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
1226 EXPECT_EQ(chunk.session_id(), 7u); in TEST_F()
1227 EXPECT_EQ(chunk.offset(), 0u); in TEST_F()
1228 EXPECT_EQ(chunk.window_end_offset(), 32u); in TEST_F()
1231 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
1240 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
1248 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
1249 EXPECT_EQ(chunk.session_id(), 7u); in TEST_F()
1250 EXPECT_EQ(chunk.offset(), 8u); in TEST_F()
1251 EXPECT_EQ(chunk.window_end_offset(), 32u); in TEST_F()
1254 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
1262 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
1263 EXPECT_EQ(chunk.session_id(), 7u); in TEST_F()
1264 ASSERT_TRUE(chunk.status().has_value()); in TEST_F()
1265 EXPECT_EQ(chunk.status().value(), OkStatus()); in TEST_F()
1274 Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart).set_session_id(7))); in TEST_F()
1281 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
1282 EXPECT_EQ(chunk.session_id(), 7u); in TEST_F()
1283 EXPECT_EQ(chunk.window_end_offset(), 16u); in TEST_F()
1287 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
1293 // Transfer should resend a parameters chunk. in TEST_F()
1295 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
1296 EXPECT_EQ(chunk.session_id(), 7u); in TEST_F()
1297 EXPECT_EQ(chunk.type(), Chunk::Type::kParametersRetransmit); in TEST_F()
1298 EXPECT_EQ(chunk.offset(), 0u); in TEST_F()
1299 EXPECT_EQ(chunk.window_end_offset(), 16u); in TEST_F()
1304 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart) in TEST_F()
1309 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
1310 EXPECT_EQ(chunk.session_id(), 999u); in TEST_F()
1311 ASSERT_TRUE(chunk.status().has_value()); in TEST_F()
1312 EXPECT_EQ(chunk.status().value(), Status::NotFound()); in TEST_F()
1317 Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart).set_session_id(7))); in TEST_F()
1324 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
1325 EXPECT_EQ(chunk.session_id(), 7u); in TEST_F()
1326 EXPECT_EQ(chunk.window_end_offset(), 32u); in TEST_F()
1329 Chunk::Final(ProtocolVersion::kLegacy, 7, Status::DataLoss()))); in TEST_F()
1340 Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart).set_session_id(7))); in TEST_F()
1347 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
1355 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
1364 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
1365 EXPECT_EQ(chunk.session_id(), 7u); in TEST_F()
1366 EXPECT_EQ(chunk.offset(), 1u); in TEST_F()
1370 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
1383 Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart).set_session_id(7))); in TEST_F()
1393 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
1404 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
1419 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
1420 EXPECT_EQ(chunk.session_id(), 7u); in TEST_F()
1421 EXPECT_EQ(chunk.offset(), 0u); in TEST_F()
1422 EXPECT_EQ(chunk.window_end_offset(), 32u); in TEST_F()
1426 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
1439 Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart).set_session_id(7))); in TEST_F()
1445 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
1453 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
1454 ASSERT_TRUE(chunk.status().has_value()); in TEST_F()
1455 EXPECT_EQ(chunk.status().value(), OkStatus()); in TEST_F()
1458 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
1466 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
1467 ASSERT_TRUE(chunk.status().has_value()); in TEST_F()
1468 EXPECT_EQ(chunk.status().value(), OkStatus()); in TEST_F()
1473 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
1477 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
1492 Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart).set_session_id(7))); in TEST_F()
1498 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
1512 Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart).set_session_id(7))); in TEST_F()
1524 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
1562 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart) in TEST_F()
1569 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
1570 EXPECT_EQ(chunk.session_id(), 88u); in TEST_F()
1571 ASSERT_TRUE(chunk.status().has_value()); in TEST_F()
1572 EXPECT_EQ(chunk.status().value(), Status::DataLoss()); in TEST_F()
1578 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart) in TEST_F()
1585 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
1586 EXPECT_EQ(chunk.session_id(), 88u); in TEST_F()
1587 ASSERT_EQ(chunk.payload().size(), kData.size()); in TEST_F()
1589 chunk.payload().data(), kData.data(), chunk.payload().size()), in TEST_F()
1596 Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart).set_session_id(7))); in TEST_F()
1602 // First parameters chunk has the default window end offset of 16. in TEST_F()
1604 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
1605 EXPECT_EQ(chunk.session_id(), 7u); in TEST_F()
1606 EXPECT_EQ(chunk.window_end_offset(), 16u); in TEST_F()
1612 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
1618 // Second parameters chunk should use the new max pending bytes. in TEST_F()
1620 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
1621 EXPECT_EQ(chunk.session_id(), 7u); in TEST_F()
1622 EXPECT_EQ(chunk.offset(), 8u); in TEST_F()
1623 EXPECT_EQ(chunk.window_end_offset(), 8u + 12u); in TEST_F()
1628 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStart) in TEST_F()
1640 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
1641 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
1642 EXPECT_EQ(chunk.type(), Chunk::Type::kStartAck); in TEST_F()
1643 EXPECT_FALSE(chunk.desired_session_id().has_value()); in TEST_F()
1644 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
1645 EXPECT_EQ(chunk.resource_id(), 3u); in TEST_F()
1651 Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStartAckConfirmation) in TEST_F()
1660 // chunk and a remaining_bytes 0 chunk. in TEST_F()
1663 Chunk c1 = DecodeChunk(ctx_.responses()[1]); in TEST_F()
1665 EXPECT_EQ(c1.type(), Chunk::Type::kData); in TEST_F()
1673 Chunk c2 = DecodeChunk(ctx_.responses()[2]); in TEST_F()
1675 EXPECT_EQ(c2.type(), Chunk::Type::kData); in TEST_F()
1680 ctx_.SendClientStream(EncodeChunk(Chunk::Final( in TEST_F()
1690 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStart) in TEST_F()
1702 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
1703 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
1704 EXPECT_EQ(chunk.type(), Chunk::Type::kStartAck); in TEST_F()
1705 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
1706 EXPECT_EQ(chunk.resource_id(), 3u); in TEST_F()
1712 Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStartAckConfirmation) in TEST_F()
1723 Chunk c1 = DecodeChunk(ctx_.responses()[1]); in TEST_F()
1725 EXPECT_EQ(c1.type(), Chunk::Type::kData); in TEST_F()
1733 Chunk c2 = DecodeChunk(ctx_.responses()[2]); in TEST_F()
1735 EXPECT_EQ(c2.type(), Chunk::Type::kData); in TEST_F()
1745 Chunk c3 = DecodeChunk(ctx_.responses()[3]); in TEST_F()
1747 EXPECT_EQ(c3.type(), Chunk::Type::kData); in TEST_F()
1752 ctx_.SendClientStream(EncodeChunk(Chunk::Final( in TEST_F()
1762 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStart) in TEST_F()
1774 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
1775 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
1776 EXPECT_EQ(chunk.type(), Chunk::Type::kStartAck); in TEST_F()
1777 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
1778 EXPECT_EQ(chunk.resource_id(), 3u); in TEST_F()
1783 Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStartAckConfirmation) in TEST_F()
1791 Chunk c1 = DecodeChunk(ctx_.responses()[1]); in TEST_F()
1793 EXPECT_EQ(c1.type(), Chunk::Type::kData); in TEST_F()
1803 Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kParametersContinue) in TEST_F()
1812 Chunk c2 = DecodeChunk(ctx_.responses()[2]); in TEST_F()
1814 EXPECT_EQ(c2.type(), Chunk::Type::kData); in TEST_F()
1824 Chunk c3 = DecodeChunk(ctx_.responses()[3]); in TEST_F()
1826 EXPECT_EQ(c3.type(), Chunk::Type::kData); in TEST_F()
1831 ctx_.SendClientStream(EncodeChunk(Chunk::Final( in TEST_F()
1841 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStart) in TEST_F()
1853 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
1854 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
1855 EXPECT_EQ(chunk.type(), Chunk::Type::kStartAck); in TEST_F()
1856 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
1857 EXPECT_EQ(chunk.resource_id(), 3u); in TEST_F()
1859 // Send a terminating chunk instead of the third part of the handshake. in TEST_F()
1860 ctx_.SendClientStream(EncodeChunk(Chunk::Final(ProtocolVersion::kVersionTwo, in TEST_F()
1871 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStart) in TEST_F()
1883 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
1884 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
1885 EXPECT_EQ(chunk.type(), Chunk::Type::kStartAck); in TEST_F()
1886 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
1887 EXPECT_EQ(chunk.resource_id(), 3u); in TEST_F()
1892 Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStartAckConfirmation) in TEST_F()
1900 Chunk c1 = DecodeChunk(ctx_.responses()[1]); in TEST_F()
1902 EXPECT_EQ(c1.type(), Chunk::Type::kData); in TEST_F()
1913 Chunk(ProtocolVersion::kLegacy, Chunk::Type::kParametersContinue) in TEST_F()
1921 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
1922 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
1923 EXPECT_EQ(chunk.type(), Chunk::Type::kCompletion); in TEST_F()
1924 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
1925 ASSERT_TRUE(chunk.status().has_value()); in TEST_F()
1926 EXPECT_EQ(chunk.status().value(), Status::Internal()); in TEST_F()
1934 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStart) in TEST_F()
1944 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
1945 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
1946 EXPECT_EQ(chunk.type(), Chunk::Type::kStartAck); in TEST_F()
1947 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
1948 EXPECT_EQ(chunk.resource_id(), 3u); in TEST_F()
1950 // Complete the handshake, but send an invalid parameters chunk. The server in TEST_F()
1953 Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStartAckConfirmation) in TEST_F()
1962 Chunk c1 = DecodeChunk(ctx_.responses()[1]); in TEST_F()
1964 EXPECT_EQ(c1.type(), Chunk::Type::kCompletion); in TEST_F()
1972 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStart) in TEST_F()
1980 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
1981 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
1982 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
1983 EXPECT_EQ(chunk.type(), Chunk::Type::kCompletion); in TEST_F()
1984 EXPECT_EQ(chunk.status().value(), Status::NotFound()); in TEST_F()
1992 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStart) in TEST_F()
1998 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
1999 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2000 EXPECT_EQ(chunk.type(), Chunk::Type::kCompletion); in TEST_F()
2001 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2002 EXPECT_EQ(chunk.resource_id(), 99u); in TEST_F()
2003 EXPECT_EQ(chunk.status().value(), Status::DataLoss()); in TEST_F()
2010 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStart) in TEST_F()
2022 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
2023 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2024 EXPECT_EQ(chunk.type(), Chunk::Type::kStartAck); in TEST_F()
2025 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2026 EXPECT_EQ(chunk.resource_id(), 3u); in TEST_F()
2032 Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStartAckConfirmation) in TEST_F()
2044 Chunk c1 = DecodeChunk(ctx_.responses()[1]); in TEST_F()
2046 EXPECT_EQ(c1.type(), Chunk::Type::kData); in TEST_F()
2052 Chunk c2 = DecodeChunk(ctx_.responses()[2]); in TEST_F()
2054 EXPECT_EQ(c2.type(), Chunk::Type::kData); in TEST_F()
2060 Chunk c3 = DecodeChunk(ctx_.responses()[3]); in TEST_F()
2062 EXPECT_EQ(c3.type(), Chunk::Type::kData); in TEST_F()
2068 Chunk c4 = DecodeChunk(ctx_.responses()[4]); in TEST_F()
2070 EXPECT_EQ(c4.type(), Chunk::Type::kData); in TEST_F()
2076 ctx_.SendClientStream(EncodeChunk(Chunk::Final( in TEST_F()
2086 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStart) in TEST_F()
2098 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
2099 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2100 EXPECT_EQ(chunk.type(), Chunk::Type::kStartAck); in TEST_F()
2101 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2102 EXPECT_EQ(chunk.resource_id(), 7u); in TEST_F()
2106 Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStartAckConfirmation) in TEST_F()
2113 chunk = DecodeChunk(ctx_.responses()[1]); in TEST_F()
2114 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2115 EXPECT_EQ(chunk.type(), Chunk::Type::kParametersRetransmit); in TEST_F()
2116 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2117 EXPECT_EQ(chunk.offset(), 0u); in TEST_F()
2118 EXPECT_EQ(chunk.window_end_offset(), 32u); in TEST_F()
2119 ASSERT_TRUE(chunk.max_chunk_size_bytes().has_value()); in TEST_F()
2120 EXPECT_EQ(chunk.max_chunk_size_bytes().value(), 37u); in TEST_F()
2124 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kData) in TEST_F()
2133 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
2134 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2135 EXPECT_EQ(chunk.type(), Chunk::Type::kCompletion); in TEST_F()
2136 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2137 ASSERT_TRUE(chunk.status().has_value()); in TEST_F()
2138 EXPECT_EQ(chunk.status().value(), OkStatus()); in TEST_F()
2142 Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kCompletionAck) in TEST_F()
2155 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStart) in TEST_F()
2167 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
2168 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2169 EXPECT_EQ(chunk.type(), Chunk::Type::kStartAck); in TEST_F()
2170 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2171 EXPECT_EQ(chunk.resource_id(), 7u); in TEST_F()
2175 Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStartAckConfirmation) in TEST_F()
2182 chunk = DecodeChunk(ctx_.responses()[1]); in TEST_F()
2183 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2184 EXPECT_EQ(chunk.type(), Chunk::Type::kParametersRetransmit); in TEST_F()
2185 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2186 EXPECT_EQ(chunk.offset(), 0u); in TEST_F()
2187 EXPECT_EQ(chunk.window_end_offset(), 32u); in TEST_F()
2188 ASSERT_TRUE(chunk.max_chunk_size_bytes().has_value()); in TEST_F()
2189 EXPECT_EQ(chunk.max_chunk_size_bytes().value(), 37u); in TEST_F()
2193 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kData) in TEST_F()
2198 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kData) in TEST_F()
2207 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
2208 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2209 EXPECT_EQ(chunk.type(), Chunk::Type::kCompletion); in TEST_F()
2210 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2211 ASSERT_TRUE(chunk.status().has_value()); in TEST_F()
2212 EXPECT_EQ(chunk.status().value(), OkStatus()); in TEST_F()
2216 Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kCompletionAck) in TEST_F()
2229 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStart) in TEST_F()
2241 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
2242 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2243 EXPECT_EQ(chunk.type(), Chunk::Type::kStartAck); in TEST_F()
2244 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2245 EXPECT_EQ(chunk.resource_id(), 7u); in TEST_F()
2249 Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStartAckConfirmation) in TEST_F()
2256 chunk = DecodeChunk(ctx_.responses()[1]); in TEST_F()
2257 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2258 EXPECT_EQ(chunk.type(), Chunk::Type::kParametersRetransmit); in TEST_F()
2259 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2260 EXPECT_EQ(chunk.offset(), 0u); in TEST_F()
2261 EXPECT_EQ(chunk.window_end_offset(), 32u); in TEST_F()
2262 ASSERT_TRUE(chunk.max_chunk_size_bytes().has_value()); in TEST_F()
2263 EXPECT_EQ(chunk.max_chunk_size_bytes().value(), 37u); in TEST_F()
2267 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kData) in TEST_F()
2276 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kData) in TEST_F()
2284 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
2285 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2286 EXPECT_EQ(chunk.type(), Chunk::Type::kParametersContinue); in TEST_F()
2287 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2288 EXPECT_EQ(chunk.offset(), 16u); in TEST_F()
2289 EXPECT_EQ(chunk.window_end_offset(), 32u); in TEST_F()
2292 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kData) in TEST_F()
2300 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
2301 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2302 EXPECT_EQ(chunk.type(), Chunk::Type::kParametersContinue); in TEST_F()
2303 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2304 EXPECT_EQ(chunk.offset(), 24u); in TEST_F()
2305 EXPECT_EQ(chunk.window_end_offset(), 32u); in TEST_F()
2308 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kData) in TEST_F()
2317 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
2318 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2319 EXPECT_EQ(chunk.type(), Chunk::Type::kCompletion); in TEST_F()
2320 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2321 ASSERT_TRUE(chunk.status().has_value()); in TEST_F()
2322 EXPECT_EQ(chunk.status().value(), OkStatus()); in TEST_F()
2326 Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kCompletionAck) in TEST_F()
2339 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStart) in TEST_F()
2351 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
2352 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2353 EXPECT_EQ(chunk.type(), Chunk::Type::kStartAck); in TEST_F()
2354 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2355 EXPECT_EQ(chunk.resource_id(), 7u); in TEST_F()
2357 // Send an error chunk instead of completing the handshake. in TEST_F()
2359 EncodeChunk(Chunk::Final(ProtocolVersion::kVersionTwo, in TEST_F()
2370 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStart) in TEST_F()
2382 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
2383 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2384 EXPECT_EQ(chunk.type(), Chunk::Type::kStartAck); in TEST_F()
2385 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2386 EXPECT_EQ(chunk.resource_id(), 7u); in TEST_F()
2390 Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStartAckConfirmation) in TEST_F()
2397 chunk = DecodeChunk(ctx_.responses()[1]); in TEST_F()
2398 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2399 EXPECT_EQ(chunk.type(), Chunk::Type::kParametersRetransmit); in TEST_F()
2400 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2401 EXPECT_EQ(chunk.offset(), 0u); in TEST_F()
2402 EXPECT_EQ(chunk.window_end_offset(), 32u); in TEST_F()
2403 ASSERT_TRUE(chunk.max_chunk_size_bytes().has_value()); in TEST_F()
2404 EXPECT_EQ(chunk.max_chunk_size_bytes().value(), 37u); in TEST_F()
2406 // The transfer was configured to use protocol version 2. Send a legacy chunk in TEST_F()
2409 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kData) in TEST_F()
2419 chunk = DecodeChunk(ctx_.responses()[2]); in TEST_F()
2420 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2421 EXPECT_EQ(chunk.type(), Chunk::Type::kCompletion); in TEST_F()
2422 EXPECT_EQ(chunk.status().value(), Status::Internal()); in TEST_F()
2426 Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kCompletionAck) in TEST_F()
2435 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStart) in TEST_F()
2443 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
2444 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2445 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2446 EXPECT_FALSE(chunk.resource_id().has_value()); in TEST_F()
2447 EXPECT_EQ(chunk.type(), Chunk::Type::kCompletion); in TEST_F()
2448 EXPECT_EQ(chunk.status().value(), Status::NotFound()); in TEST_F()
2491 EncodeChunk(Chunk(ProtocolVersion::kLegacy, Chunk::Type::kStart) in TEST_F()
2502 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
2504 EXPECT_EQ(chunk.session_id(), 9u); in TEST_F()
2505 EXPECT_EQ(chunk.offset(), 0u); in TEST_F()
2506 ASSERT_EQ(chunk.payload().size(), 16u); in TEST_F()
2508 std::memcmp(chunk.payload().data(), kData.data(), chunk.payload().size()), in TEST_F()
2515 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
2516 EXPECT_EQ(chunk.session_id(), 9u); in TEST_F()
2517 EXPECT_EQ(chunk.offset(), 0u); in TEST_F()
2518 ASSERT_EQ(chunk.payload().size(), 16u); in TEST_F()
2520 std::memcmp(chunk.payload().data(), kData.data(), chunk.payload().size()), in TEST_F()
2524 Chunk(ProtocolVersion::kLegacy, Chunk::Type::kParametersContinue) in TEST_F()
2531 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
2532 EXPECT_EQ(chunk.session_id(), 9u); in TEST_F()
2533 EXPECT_EQ(chunk.offset(), 16u); in TEST_F()
2534 ASSERT_EQ(chunk.payload().size(), 16u); in TEST_F()
2537 chunk.payload().data(), kData.data() + 16, chunk.payload().size()), in TEST_F()
2543 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
2544 EXPECT_EQ(chunk.session_id(), 9u); in TEST_F()
2545 EXPECT_EQ(chunk.offset(), 16u); in TEST_F()
2546 ASSERT_EQ(chunk.payload().size(), 16u); in TEST_F()
2549 chunk.payload().data(), kData.data() + 16, chunk.payload().size()), in TEST_F()
2554 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
2555 EXPECT_EQ(chunk.session_id(), 9u); in TEST_F()
2556 EXPECT_EQ(chunk.offset(), 16u); in TEST_F()
2557 ASSERT_EQ(chunk.payload().size(), 16u); in TEST_F()
2560 chunk.payload().data(), kData.data() + 16, chunk.payload().size()), in TEST_F()
2565 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
2566 EXPECT_EQ(chunk.status(), Status::DeadlineExceeded()); in TEST_F()
2571 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStart) in TEST_F()
2583 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
2584 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2585 EXPECT_EQ(chunk.type(), Chunk::Type::kStartAck); in TEST_F()
2586 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2587 EXPECT_EQ(chunk.resource_id(), 9u); in TEST_F()
2593 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
2594 EXPECT_EQ(chunk.type(), Chunk::Type::kStartAck); in TEST_F()
2598 Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStartAckConfirmation) in TEST_F()
2605 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
2606 EXPECT_EQ(chunk.type(), Chunk::Type::kData); in TEST_F()
2611 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
2612 EXPECT_EQ(chunk.type(), Chunk::Type::kData); in TEST_F()
2616 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
2617 EXPECT_EQ(chunk.type(), Chunk::Type::kData); in TEST_F()
2621 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
2622 EXPECT_EQ(chunk.type(), Chunk::Type::kCompletion); in TEST_F()
2623 EXPECT_EQ(chunk.status(), Status::DeadlineExceeded()); in TEST_F()
2628 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStart) in TEST_F()
2640 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
2641 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2642 EXPECT_EQ(chunk.type(), Chunk::Type::kStartAck); in TEST_F()
2643 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2644 EXPECT_EQ(chunk.resource_id(), 7u); in TEST_F()
2649 // Client re-sends the same chunk instead of finishing the handshake. in TEST_F()
2651 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStart) in TEST_F()
2660 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
2661 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2662 EXPECT_EQ(chunk.type(), Chunk::Type::kStartAck); in TEST_F()
2663 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2664 EXPECT_EQ(chunk.resource_id(), 7u); in TEST_F()
2672 // START chunk. Server should immediately respond with a protocol error. in TEST_F()
2674 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStart) in TEST_F()
2685 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
2686 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2687 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2688 EXPECT_FALSE(chunk.resource_id().has_value()); in TEST_F()
2689 EXPECT_EQ(chunk.type(), Chunk::Type::kCompletion); in TEST_F()
2690 EXPECT_EQ(chunk.status().value(), Status::DataLoss()); in TEST_F()
2733 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStart) in TEST_F()
2745 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
2746 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2747 EXPECT_EQ(chunk.type(), Chunk::Type::kStartAck); in TEST_F()
2748 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2749 EXPECT_EQ(chunk.resource_id(), 7u); in TEST_F()
2753 Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStartAckConfirmation) in TEST_F()
2762 chunk = DecodeChunk(ctx_.responses()[1]); in TEST_F()
2763 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2764 EXPECT_EQ(chunk.type(), Chunk::Type::kParametersRetransmit); in TEST_F()
2765 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2766 EXPECT_EQ(chunk.offset(), 0u); in TEST_F()
2767 EXPECT_EQ(chunk.window_end_offset(), kExpectedMaxChunkSize); in TEST_F()
2768 ASSERT_TRUE(chunk.max_chunk_size_bytes().has_value()); in TEST_F()
2769 EXPECT_EQ(chunk.max_chunk_size_bytes().value(), kExpectedMaxChunkSize); in TEST_F()
2772 Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kData) in TEST_F()
2781 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
2782 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2783 EXPECT_EQ(chunk.type(), Chunk::Type::kParametersContinue); in TEST_F()
2784 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2785 EXPECT_EQ(chunk.offset(), kExpectedMaxChunkSize); in TEST_F()
2786 EXPECT_EQ(chunk.window_end_offset(), in TEST_F()
2787 chunk.offset() + 2 * kExpectedMaxChunkSize); in TEST_F()
2790 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kData) in TEST_F()
2792 .set_offset(chunk.offset()) in TEST_F()
2794 chunk.offset(), kExpectedMaxChunkSize)))); in TEST_F()
2800 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
2801 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2802 EXPECT_EQ(chunk.type(), Chunk::Type::kParametersContinue); in TEST_F()
2803 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2804 EXPECT_EQ(chunk.offset(), 2 * kExpectedMaxChunkSize); in TEST_F()
2805 EXPECT_EQ(chunk.window_end_offset(), in TEST_F()
2806 chunk.offset() + 4 * kExpectedMaxChunkSize); in TEST_F()
2809 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kData) in TEST_F()
2813 chunk.offset(), kExpectedMaxChunkSize)) in TEST_F()
2819 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
2820 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2821 EXPECT_EQ(chunk.type(), Chunk::Type::kCompletion); in TEST_F()
2822 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2823 ASSERT_TRUE(chunk.status().has_value()); in TEST_F()
2824 EXPECT_EQ(chunk.status().value(), OkStatus()); in TEST_F()
2828 Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kCompletionAck) in TEST_F()
2840 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStart) in TEST_F()
2852 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
2853 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2854 EXPECT_EQ(chunk.type(), Chunk::Type::kStartAck); in TEST_F()
2855 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2856 EXPECT_EQ(chunk.resource_id(), 7u); in TEST_F()
2860 Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStartAckConfirmation) in TEST_F()
2869 chunk = DecodeChunk(ctx_.responses()[1]); in TEST_F()
2870 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2871 EXPECT_EQ(chunk.type(), Chunk::Type::kParametersRetransmit); in TEST_F()
2872 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2873 EXPECT_EQ(chunk.offset(), 0u); in TEST_F()
2874 EXPECT_EQ(chunk.window_end_offset(), kExpectedMaxChunkSize); in TEST_F()
2875 ASSERT_TRUE(chunk.max_chunk_size_bytes().has_value()); in TEST_F()
2876 EXPECT_EQ(chunk.max_chunk_size_bytes().value(), kExpectedMaxChunkSize); in TEST_F()
2879 Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kData) in TEST_F()
2888 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
2889 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2890 EXPECT_EQ(chunk.type(), Chunk::Type::kParametersContinue); in TEST_F()
2891 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2892 EXPECT_EQ(chunk.offset(), kExpectedMaxChunkSize); in TEST_F()
2893 EXPECT_EQ(chunk.window_end_offset(), in TEST_F()
2894 chunk.offset() + 2 * kExpectedMaxChunkSize); in TEST_F()
2897 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kData) in TEST_F()
2899 .set_offset(chunk.offset()) in TEST_F()
2901 chunk.offset(), kExpectedMaxChunkSize)))); in TEST_F()
2907 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
2908 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2909 EXPECT_EQ(chunk.type(), Chunk::Type::kParametersContinue); in TEST_F()
2910 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2911 EXPECT_EQ(chunk.offset(), 2 * kExpectedMaxChunkSize); in TEST_F()
2912 EXPECT_EQ(chunk.window_end_offset(), in TEST_F()
2913 chunk.offset() + 4 * kExpectedMaxChunkSize); in TEST_F()
2920 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
2921 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2922 EXPECT_EQ(chunk.type(), Chunk::Type::kParametersRetransmit); in TEST_F()
2923 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2924 EXPECT_EQ(chunk.offset(), 2 * kExpectedMaxChunkSize); in TEST_F()
2925 EXPECT_EQ(chunk.window_end_offset(), in TEST_F()
2926 chunk.offset() + 2 * kExpectedMaxChunkSize); in TEST_F()
2928 // Send the appropriate chunk. in TEST_F()
2930 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kData) in TEST_F()
2934 chunk.offset(), kExpectedMaxChunkSize)))); in TEST_F()
2939 // Window size should now only increase by one chunk instead of doubling. in TEST_F()
2940 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
2941 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2942 EXPECT_EQ(chunk.type(), Chunk::Type::kParametersContinue); in TEST_F()
2943 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2944 EXPECT_EQ(chunk.offset(), 3 * kExpectedMaxChunkSize); in TEST_F()
2945 EXPECT_EQ(chunk.window_end_offset(), in TEST_F()
2946 chunk.offset() + 3 * kExpectedMaxChunkSize); in TEST_F()
2950 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kData) in TEST_F()
2954 chunk.offset(), kExpectedMaxChunkSize)) in TEST_F()
2960 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
2961 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2962 EXPECT_EQ(chunk.type(), Chunk::Type::kCompletion); in TEST_F()
2963 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2964 ASSERT_TRUE(chunk.status().has_value()); in TEST_F()
2965 EXPECT_EQ(chunk.status().value(), OkStatus()); in TEST_F()
2969 Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kCompletionAck) in TEST_F()
2982 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStart) in TEST_F()
2994 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
2995 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
2996 EXPECT_EQ(chunk.type(), Chunk::Type::kStartAck); in TEST_F()
2997 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
2998 EXPECT_EQ(chunk.resource_id(), 7u); in TEST_F()
3002 Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStartAckConfirmation) in TEST_F()
3011 chunk = DecodeChunk(ctx_.responses()[1]); in TEST_F()
3012 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
3013 EXPECT_EQ(chunk.type(), Chunk::Type::kParametersRetransmit); in TEST_F()
3014 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
3015 EXPECT_EQ(chunk.offset(), 0u); in TEST_F()
3016 EXPECT_EQ(chunk.window_end_offset(), kExpectedMaxChunkSizeBytes); in TEST_F()
3017 ASSERT_TRUE(chunk.max_chunk_size_bytes().has_value()); in TEST_F()
3018 EXPECT_EQ(chunk.max_chunk_size_bytes().value(), kExpectedMaxChunkSizeBytes); in TEST_F()
3021 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kData) in TEST_F()
3030 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
3031 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
3032 EXPECT_EQ(chunk.type(), Chunk::Type::kParametersContinue); in TEST_F()
3033 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
3034 EXPECT_EQ(chunk.offset(), 16u); in TEST_F()
3035 EXPECT_EQ(chunk.window_end_offset(), in TEST_F()
3036 chunk.offset() + 2 * kExpectedMaxChunkSizeBytes); in TEST_F()
3040 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kData) in TEST_F()
3051 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
3052 EXPECT_EQ(chunk.type(), Chunk::Type::kParametersContinue); in TEST_F()
3053 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
3054 EXPECT_EQ(chunk.offset(), 16u); in TEST_F()
3055 EXPECT_EQ(chunk.window_end_offset(), in TEST_F()
3056 chunk.offset() + kExpectedMaxChunkSizeBytes); in TEST_F()
3058 // Send the expected chunk. in TEST_F()
3060 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kData) in TEST_F()
3068 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
3069 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
3070 ASSERT_TRUE(chunk.status().has_value()); in TEST_F()
3071 EXPECT_EQ(chunk.status().value(), OkStatus()); in TEST_F()
3078 Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kCompletionAck) in TEST_F()
3126 EncodeChunk(Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStart) in TEST_F()
3138 Chunk chunk = DecodeChunk(ctx_.responses().back()); in TEST_F() local
3139 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
3140 EXPECT_EQ(chunk.type(), Chunk::Type::kStartAck); in TEST_F()
3141 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
3142 EXPECT_EQ(chunk.resource_id(), 7u); in TEST_F()
3146 Chunk(ProtocolVersion::kVersionTwo, Chunk::Type::kStartAckConfirmation) in TEST_F()
3155 chunk = DecodeChunk(ctx_.responses()[1]); in TEST_F()
3156 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
3157 EXPECT_EQ(chunk.type(), Chunk::Type::kParametersRetransmit); in TEST_F()
3158 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
3159 EXPECT_EQ(chunk.offset(), 0u); in TEST_F()
3160 EXPECT_EQ(chunk.window_end_offset(), kExpectedMaxChunkSize); in TEST_F()
3161 ASSERT_TRUE(chunk.max_chunk_size_bytes().has_value()); in TEST_F()
3162 EXPECT_EQ(chunk.max_chunk_size_bytes().value(), kExpectedMaxChunkSize); in TEST_F()
3165 // parameters. The max chunk size and window size should not change. in TEST_F()
3169 chunk = DecodeChunk(ctx_.responses().back()); in TEST_F()
3170 EXPECT_EQ(chunk.protocol_version(), ProtocolVersion::kVersionTwo); in TEST_F()
3171 EXPECT_EQ(chunk.type(), Chunk::Type::kParametersRetransmit); in TEST_F()
3172 EXPECT_EQ(chunk.session_id(), kArbitrarySessionId); in TEST_F()
3173 EXPECT_EQ(chunk.offset(), 0u); in TEST_F()
3174 EXPECT_EQ(chunk.window_end_offset(), kExpectedMaxChunkSize); in TEST_F()
3175 ASSERT_TRUE(chunk.max_chunk_size_bytes().has_value()); in TEST_F()
3176 EXPECT_EQ(chunk.max_chunk_size_bytes().value(), kExpectedMaxChunkSize); in TEST_F()