Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2458)

Unified Diff: net/quic/quic_framer_test.cc

Issue 935333002: Update from https://crrev.com/316786 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/quic/quic_framer.cc ('k') | net/quic/quic_http_stream_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/quic/quic_framer_test.cc
diff --git a/net/quic/quic_framer_test.cc b/net/quic/quic_framer_test.cc
index 0fa4ce97359dc1c30af30d57c7170881cf454690..69373e0590d98bc4c3d6e5c4fa103384372cd342 100644
--- a/net/quic/quic_framer_test.cc
+++ b/net/quic/quic_framer_test.cc
@@ -113,13 +113,18 @@ class TestEncrypter : public QuicEncrypter {
CHECK(false) << "Not implemented";
return false;
}
- QuicData* EncryptPacket(QuicPacketSequenceNumber sequence_number,
- StringPiece associated_data,
- StringPiece plaintext) override {
+ bool EncryptPacket(QuicPacketSequenceNumber sequence_number,
+ StringPiece associated_data,
+ StringPiece plaintext,
+ char* output,
+ size_t* output_length,
+ size_t max_output_length) override {
sequence_number_ = sequence_number;
associated_data_ = associated_data.as_string();
plaintext_ = plaintext.as_string();
- return new QuicData(plaintext.data(), plaintext.length());
+ memcpy(output, plaintext.data(), plaintext.length());
+ *output_length = plaintext.length();
+ return true;
}
size_t GetKeySize() const override { return 0; }
size_t GetNoncePrefixSize() const override { return 0; }
@@ -141,13 +146,18 @@ class TestDecrypter : public QuicDecrypter {
~TestDecrypter() override {}
bool SetKey(StringPiece key) override { return true; }
bool SetNoncePrefix(StringPiece nonce_prefix) override { return true; }
- QuicData* DecryptPacket(QuicPacketSequenceNumber sequence_number,
- StringPiece associated_data,
- StringPiece ciphertext) override {
+ bool DecryptPacket(QuicPacketSequenceNumber sequence_number,
+ const StringPiece& associated_data,
+ const StringPiece& ciphertext,
+ char* output,
+ size_t* output_length,
+ size_t max_output_length) override {
sequence_number_ = sequence_number;
associated_data_ = associated_data.as_string();
ciphertext_ = ciphertext.as_string();
- return new QuicData(ciphertext.data(), ciphertext.length());
+ memcpy(output, ciphertext.data(), ciphertext.length());
+ *output_length = ciphertext.length();
+ return true;
}
StringPiece GetKey() const override { return StringPiece(); }
StringPiece GetNoncePrefix() const override { return StringPiece(); }
@@ -176,6 +186,8 @@ class TestQuicVisitor : public ::net::QuicFramerVisitorInterface {
STLDeleteElements(&stop_waiting_frames_);
STLDeleteElements(&ping_frames_);
STLDeleteElements(&fec_data_);
+ STLDeleteElements(&stream_data_);
+ STLDeleteElements(&fec_data_redundancy_);
}
void OnError(QuicFramer* f) override {
@@ -223,7 +235,14 @@ class TestQuicVisitor : public ::net::QuicFramerVisitorInterface {
bool OnStreamFrame(const QuicStreamFrame& frame) override {
++frame_count_;
- stream_frames_.push_back(new QuicStreamFrame(frame));
+ // Save a copy of the data so it is valid after the packet is processed.
+ stream_data_.push_back(frame.GetDataAsString());
+ QuicStreamFrame* stream_frame = new QuicStreamFrame(frame);
+ // Make sure that the stream frame points to this data.
+ stream_frame->data.Clear();
+ stream_frame->data.Append(const_cast<char*>(stream_data_.back()->data()),
+ stream_data_.back()->size());
+ stream_frames_.push_back(stream_frame);
return true;
}
@@ -251,7 +270,13 @@ class TestQuicVisitor : public ::net::QuicFramerVisitorInterface {
void OnFecData(const QuicFecData& fec) override {
++fec_count_;
- fec_data_.push_back(new QuicFecData(fec));
+ QuicFecData* fec_data = new QuicFecData();
+ fec_data->fec_group = fec.fec_group;
+ // Save a copy of the data so it is valid after the packet is processed.
+ string* redundancy = new string(fec.redundancy.as_string());
+ fec_data_redundancy_.push_back(redundancy);
+ fec_data->redundancy = StringPiece(*redundancy);
+ fec_data_.push_back(fec_data);
}
void OnPacketComplete() override { ++complete_packets_; }
@@ -307,6 +332,8 @@ class TestQuicVisitor : public ::net::QuicFramerVisitorInterface {
QuicGoAwayFrame goaway_frame_;
QuicWindowUpdateFrame window_update_frame_;
QuicBlockedFrame blocked_frame_;
+ vector<string*> stream_data_;
+ vector<string*> fec_data_redundancy_;
};
class QuicFramerTest : public ::testing::TestWithParam<QuicVersion> {
@@ -449,7 +476,13 @@ class QuicFramerTest : public ::testing::TestWithParam<QuicVersion> {
QuicPacket* BuildDataPacket(const QuicPacketHeader& header,
const QuicFrames& frames) {
- return BuildUnsizedDataPacket(&framer_, header, frames).packet;
+ return BuildUnsizedDataPacket(&framer_, header, frames);
+ }
+
+ QuicPacket* BuildDataPacket(const QuicPacketHeader& header,
+ const QuicFrames& frames,
+ size_t packet_size) {
+ return BuildUnsizedDataPacket(&framer_, header, frames, packet_size);
}
test::TestEncrypter* encrypter_;
@@ -1312,8 +1345,7 @@ TEST_P(QuicFramerTest, StreamFrame3ByteStreamId) {
ASSERT_EQ(1u, visitor_.stream_frames_.size());
EXPECT_EQ(0u, visitor_.ack_frames_.size());
- EXPECT_EQ(GG_UINT64_C(0x00020304),
- visitor_.stream_frames_[0]->stream_id);
+ EXPECT_EQ(GG_UINT64_C(0x00020304), visitor_.stream_frames_[0]->stream_id);
EXPECT_TRUE(visitor_.stream_frames_[0]->fin);
EXPECT_EQ(GG_UINT64_C(0xBA98FEDC32107654),
visitor_.stream_frames_[0]->offset);
@@ -3367,8 +3399,7 @@ TEST_P(QuicFramerTest, BuildTruncatedAckFrameLargePacket) {
0x00,
};
- scoped_ptr<QuicPacket> data(
- framer_.BuildDataPacket(header, frames, kMaxPacketSize).packet);
+ scoped_ptr<QuicPacket> data(BuildDataPacket(header, frames));
ASSERT_TRUE(data != nullptr);
test::CompareCharArraysWithHexError("constructed packet",
@@ -3430,8 +3461,7 @@ TEST_P(QuicFramerTest, BuildTruncatedAckFrameSmallPacket) {
0x00,
};
- scoped_ptr<QuicPacket> data(
- framer_.BuildDataPacket(header, frames, 37u).packet);
+ scoped_ptr<QuicPacket> data(BuildDataPacket(header, frames, 37u));
ASSERT_TRUE(data != nullptr);
// Expect 1 byte unused since at least 2 bytes are needed to fit more nacks.
EXPECT_EQ(36u, data->length());
@@ -3904,8 +3934,7 @@ TEST_P(QuicFramerTest, BuildFecPacket) {
'm', 'n', 'o', 'p',
};
- scoped_ptr<QuicPacket> data(
- framer_.BuildFecPacket(header, fec_data).packet);
+ scoped_ptr<QuicPacket> data(framer_.BuildFecPacket(header, fec_data));
ASSERT_TRUE(data != nullptr);
test::CompareCharArraysWithHexError("constructed packet",
@@ -3936,10 +3965,9 @@ TEST_P(QuicFramerTest, EncryptPacket) {
'm', 'n', 'o', 'p',
};
- scoped_ptr<QuicPacket> raw(
- QuicPacket::NewDataPacket(AsChars(packet), arraysize(packet), false,
- PACKET_8BYTE_CONNECTION_ID, !kIncludeVersion,
- PACKET_6BYTE_SEQUENCE_NUMBER));
+ scoped_ptr<QuicPacket> raw(new QuicPacket(
+ AsChars(packet), arraysize(packet), false, PACKET_8BYTE_CONNECTION_ID,
+ !kIncludeVersion, PACKET_6BYTE_SEQUENCE_NUMBER));
scoped_ptr<QuicEncryptedPacket> encrypted(
framer_.EncryptPacket(ENCRYPTION_NONE, sequence_number, *raw));
@@ -3972,10 +4000,9 @@ TEST_P(QuicFramerTest, EncryptPacketWithVersionFlag) {
'm', 'n', 'o', 'p',
};
- scoped_ptr<QuicPacket> raw(
- QuicPacket::NewDataPacket(AsChars(packet), arraysize(packet), false,
- PACKET_8BYTE_CONNECTION_ID, kIncludeVersion,
- PACKET_6BYTE_SEQUENCE_NUMBER));
+ scoped_ptr<QuicPacket> raw(new QuicPacket(
+ AsChars(packet), arraysize(packet), false, PACKET_8BYTE_CONNECTION_ID,
+ kIncludeVersion, PACKET_6BYTE_SEQUENCE_NUMBER));
scoped_ptr<QuicEncryptedPacket> encrypted(
framer_.EncryptPacket(ENCRYPTION_NONE, sequence_number, *raw));
@@ -4002,8 +4029,7 @@ TEST_P(QuicFramerTest, AckTruncationLargePacket) {
frames.push_back(frame);
// Build an ack packet with truncation due to limit in number of nack ranges.
- scoped_ptr<QuicPacket> raw_ack_packet(
- framer_.BuildDataPacket(header, frames, kMaxPacketSize).packet);
+ scoped_ptr<QuicPacket> raw_ack_packet(BuildDataPacket(header, frames));
ASSERT_TRUE(raw_ack_packet != nullptr);
scoped_ptr<QuicEncryptedPacket> ack_packet(
framer_.EncryptPacket(ENCRYPTION_NONE, header.packet_sequence_number,
@@ -4042,8 +4068,7 @@ TEST_P(QuicFramerTest, AckTruncationSmallPacket) {
frames.push_back(frame);
// Build an ack packet with truncation due to limit in number of nack ranges.
- scoped_ptr<QuicPacket> raw_ack_packet(
- framer_.BuildDataPacket(header, frames, 500).packet);
+ scoped_ptr<QuicPacket> raw_ack_packet(BuildDataPacket(header, frames, 500));
ASSERT_TRUE(raw_ack_packet != nullptr);
scoped_ptr<QuicEncryptedPacket> ack_packet(
framer_.EncryptPacket(ENCRYPTION_NONE, header.packet_sequence_number,
« no previous file with comments | « net/quic/quic_framer.cc ('k') | net/quic/quic_http_stream_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698