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

Side by Side Diff: net/quic/test_tools/quic_test_utils.h

Issue 12806002: Land Recent QUIC Changes (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: minor comment fix Created 7 years, 9 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/quic/test_tools/quic_packet_creator_peer.cc ('k') | net/quic/test_tools/quic_test_utils.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 // 4 //
5 // Common utilities for Quic tests 5 // Common utilities for Quic tests
6 6
7 #ifndef NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_ 7 #ifndef NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_
8 #define NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_ 8 #define NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_
9 9
10 #include <vector> 10 #include <vector>
(...skipping 21 matching lines...) Expand all
32 QuicData* expected); 32 QuicData* expected);
33 33
34 CryptoHandshakeMessage CreateChloMessage(const QuicClock* clock, 34 CryptoHandshakeMessage CreateChloMessage(const QuicClock* clock,
35 QuicRandom* random_generator, 35 QuicRandom* random_generator,
36 const string& server_hostname); 36 const string& server_hostname);
37 37
38 // Constructs a ClientHello crypto handshake message 38 // Constructs a ClientHello crypto handshake message
39 QuicPacket* ConstructClientHelloPacket(QuicGuid guid, 39 QuicPacket* ConstructClientHelloPacket(QuicGuid guid,
40 const QuicClock* clock, 40 const QuicClock* clock,
41 QuicRandom* random_generator, 41 QuicRandom* random_generator,
42 const std::string& server_hostname); 42 const std::string& server_hostname,
43 bool should_include_version);
43 44
44 CryptoHandshakeMessage CreateShloMessage(const QuicClock* clock, 45 CryptoHandshakeMessage CreateShloMessage(const QuicClock* clock,
45 QuicRandom* random_generator, 46 QuicRandom* random_generator,
46 const string& server_hostname); 47 const string& server_hostname);
47 48
48 // Constructs a ClientHello crypto handshake message 49 // Constructs a ClientHello crypto handshake message
49 QuicPacket* ConstructServerHelloPacket(QuicGuid guid, 50 QuicPacket* ConstructServerHelloPacket(QuicGuid guid,
50 const QuicClock* clock, 51 const QuicClock* clock,
51 QuicRandom* random_generator, 52 QuicRandom* random_generator,
52 const std::string& server_hostname); 53 const std::string& server_hostname);
53 54
54 // Returns the length of the QuicPacket that will be created if it contains 55 // Returns the length of the QuicPacket that will be created if it contains
55 // a stream frame that has |payload| bytes. 56 // a stream frame that has |payload| bytes.
56 size_t GetPacketLengthForOneStream(bool include_version, size_t payload); 57 size_t GetPacketLengthForOneStream(bool include_version, size_t payload);
57 58
58 class MockFramerVisitor : public QuicFramerVisitorInterface { 59 class MockFramerVisitor : public QuicFramerVisitorInterface {
59 public: 60 public:
60 MockFramerVisitor(); 61 MockFramerVisitor();
61 ~MockFramerVisitor(); 62 ~MockFramerVisitor();
62 63
63 MOCK_METHOD1(OnError, void(QuicFramer* framer)); 64 MOCK_METHOD1(OnError, void(QuicFramer* framer));
65 // The constructor sets this up to return false by default.
66 MOCK_METHOD1(OnProtocolVersionMismatch, bool(QuicVersionTag version));
64 MOCK_METHOD0(OnPacket, void()); 67 MOCK_METHOD0(OnPacket, void());
65 MOCK_METHOD1(OnPublicResetPacket, void(const QuicPublicResetPacket& header)); 68 MOCK_METHOD1(OnPublicResetPacket, void(const QuicPublicResetPacket& header));
69 MOCK_METHOD1(OnVersionNegotiationPacket,
70 void(const QuicVersionNegotiationPacket& packet));
66 MOCK_METHOD0(OnRevivedPacket, void()); 71 MOCK_METHOD0(OnRevivedPacket, void());
67 // The constructor set this up to return true by default. 72 // The constructor sets this up to return true by default.
68 MOCK_METHOD1(OnPacketHeader, bool(const QuicPacketHeader& header)); 73 MOCK_METHOD1(OnPacketHeader, bool(const QuicPacketHeader& header));
69 MOCK_METHOD1(OnFecProtectedPayload, void(base::StringPiece payload)); 74 MOCK_METHOD1(OnFecProtectedPayload, void(base::StringPiece payload));
70 MOCK_METHOD1(OnStreamFrame, void(const QuicStreamFrame& frame)); 75 MOCK_METHOD1(OnStreamFrame, void(const QuicStreamFrame& frame));
71 MOCK_METHOD1(OnAckFrame, void(const QuicAckFrame& frame)); 76 MOCK_METHOD1(OnAckFrame, void(const QuicAckFrame& frame));
72 MOCK_METHOD1(OnCongestionFeedbackFrame, 77 MOCK_METHOD1(OnCongestionFeedbackFrame,
73 void(const QuicCongestionFeedbackFrame& frame)); 78 void(const QuicCongestionFeedbackFrame& frame));
74 MOCK_METHOD1(OnFecData, void(const QuicFecData& fec)); 79 MOCK_METHOD1(OnFecData, void(const QuicFecData& fec));
75 MOCK_METHOD1(OnRstStreamFrame, void(const QuicRstStreamFrame& frame)); 80 MOCK_METHOD1(OnRstStreamFrame, void(const QuicRstStreamFrame& frame));
76 MOCK_METHOD1(OnConnectionCloseFrame, 81 MOCK_METHOD1(OnConnectionCloseFrame,
77 void(const QuicConnectionCloseFrame& frame)); 82 void(const QuicConnectionCloseFrame& frame));
78 MOCK_METHOD1(OnGoAwayFrame, void(const QuicGoAwayFrame& frame)); 83 MOCK_METHOD1(OnGoAwayFrame, void(const QuicGoAwayFrame& frame));
79 MOCK_METHOD0(OnPacketComplete, void()); 84 MOCK_METHOD0(OnPacketComplete, void());
80 85
81 private: 86 private:
82 DISALLOW_COPY_AND_ASSIGN(MockFramerVisitor); 87 DISALLOW_COPY_AND_ASSIGN(MockFramerVisitor);
83 }; 88 };
84 89
85 class NoOpFramerVisitor : public QuicFramerVisitorInterface { 90 class NoOpFramerVisitor : public QuicFramerVisitorInterface {
86 public: 91 public:
87 NoOpFramerVisitor() {} 92 NoOpFramerVisitor() {}
88 93
89 virtual void OnError(QuicFramer* framer) OVERRIDE {} 94 virtual void OnError(QuicFramer* framer) OVERRIDE {}
90 virtual void OnPacket() OVERRIDE {} 95 virtual void OnPacket() OVERRIDE {}
91 virtual void OnPublicResetPacket( 96 virtual void OnPublicResetPacket(
92 const QuicPublicResetPacket& packet) OVERRIDE {} 97 const QuicPublicResetPacket& packet) OVERRIDE {}
98 virtual void OnVersionNegotiationPacket(
99 const QuicVersionNegotiationPacket& packet) OVERRIDE {}
93 virtual void OnRevivedPacket() OVERRIDE {} 100 virtual void OnRevivedPacket() OVERRIDE {}
101 virtual bool OnProtocolVersionMismatch(QuicVersionTag version) OVERRIDE;
94 virtual bool OnPacketHeader(const QuicPacketHeader& header) OVERRIDE; 102 virtual bool OnPacketHeader(const QuicPacketHeader& header) OVERRIDE;
95 virtual void OnFecProtectedPayload(base::StringPiece payload) OVERRIDE {} 103 virtual void OnFecProtectedPayload(base::StringPiece payload) OVERRIDE {}
96 virtual void OnStreamFrame(const QuicStreamFrame& frame) OVERRIDE {} 104 virtual void OnStreamFrame(const QuicStreamFrame& frame) OVERRIDE {}
97 virtual void OnAckFrame(const QuicAckFrame& frame) OVERRIDE {} 105 virtual void OnAckFrame(const QuicAckFrame& frame) OVERRIDE {}
98 virtual void OnCongestionFeedbackFrame( 106 virtual void OnCongestionFeedbackFrame(
99 const QuicCongestionFeedbackFrame& frame) OVERRIDE {} 107 const QuicCongestionFeedbackFrame& frame) OVERRIDE {}
100 virtual void OnFecData(const QuicFecData& fec) OVERRIDE {} 108 virtual void OnFecData(const QuicFecData& fec) OVERRIDE {}
101 virtual void OnRstStreamFrame(const QuicRstStreamFrame& frame) OVERRIDE {} 109 virtual void OnRstStreamFrame(const QuicRstStreamFrame& frame) OVERRIDE {}
102 virtual void OnConnectionCloseFrame( 110 virtual void OnConnectionCloseFrame(
103 const QuicConnectionCloseFrame& frame) OVERRIDE {} 111 const QuicConnectionCloseFrame& frame) OVERRIDE {}
(...skipping 19 matching lines...) Expand all
123 private: 131 private:
124 QuicPublicResetPacket public_reset_packet_; 132 QuicPublicResetPacket public_reset_packet_;
125 }; 133 };
126 134
127 class FramerVisitorCapturingFrames : public NoOpFramerVisitor { 135 class FramerVisitorCapturingFrames : public NoOpFramerVisitor {
128 public: 136 public:
129 FramerVisitorCapturingFrames(); 137 FramerVisitorCapturingFrames();
130 virtual ~FramerVisitorCapturingFrames(); 138 virtual ~FramerVisitorCapturingFrames();
131 139
132 // NoOpFramerVisitor 140 // NoOpFramerVisitor
133 141 virtual void OnVersionNegotiationPacket(
142 const QuicVersionNegotiationPacket& packet) OVERRIDE;
134 virtual bool OnPacketHeader(const QuicPacketHeader& header) OVERRIDE; 143 virtual bool OnPacketHeader(const QuicPacketHeader& header) OVERRIDE;
135 virtual void OnStreamFrame(const QuicStreamFrame& frame) OVERRIDE; 144 virtual void OnStreamFrame(const QuicStreamFrame& frame) OVERRIDE;
136 virtual void OnAckFrame(const QuicAckFrame& frame) OVERRIDE; 145 virtual void OnAckFrame(const QuicAckFrame& frame) OVERRIDE;
137 virtual void OnCongestionFeedbackFrame( 146 virtual void OnCongestionFeedbackFrame(
138 const QuicCongestionFeedbackFrame& frame) OVERRIDE; 147 const QuicCongestionFeedbackFrame& frame) OVERRIDE;
139 virtual void OnRstStreamFrame(const QuicRstStreamFrame& frame) OVERRIDE; 148 virtual void OnRstStreamFrame(const QuicRstStreamFrame& frame) OVERRIDE;
140 virtual void OnConnectionCloseFrame( 149 virtual void OnConnectionCloseFrame(
141 const QuicConnectionCloseFrame& frame) OVERRIDE; 150 const QuicConnectionCloseFrame& frame) OVERRIDE;
142 virtual void OnGoAwayFrame(const QuicGoAwayFrame& frame) OVERRIDE; 151 virtual void OnGoAwayFrame(const QuicGoAwayFrame& frame) OVERRIDE;
143 152
144 size_t frame_count() const { return frame_count_; } 153 size_t frame_count() const { return frame_count_; }
145 QuicPacketHeader* header() { return &header_; } 154 QuicPacketHeader* header() { return &header_; }
146 const std::vector<QuicStreamFrame>* stream_frames() const { 155 const std::vector<QuicStreamFrame>* stream_frames() const {
147 return &stream_frames_; 156 return &stream_frames_;
148 } 157 }
149 QuicAckFrame* ack() { return ack_.get(); } 158 QuicAckFrame* ack() { return ack_.get(); }
150 QuicCongestionFeedbackFrame* feedback() { return feedback_.get(); } 159 QuicCongestionFeedbackFrame* feedback() { return feedback_.get(); }
151 QuicRstStreamFrame* rst() { return rst_.get(); } 160 QuicRstStreamFrame* rst() { return rst_.get(); }
152 QuicConnectionCloseFrame* close() { return close_.get(); } 161 QuicConnectionCloseFrame* close() { return close_.get(); }
153 QuicGoAwayFrame* goaway() { return goaway_.get(); } 162 QuicGoAwayFrame* goaway() { return goaway_.get(); }
163 QuicVersionNegotiationPacket* version_negotiation_packet() {
164 return version_negotiation_packet_.get();
165 }
154 166
155 private: 167 private:
156 size_t frame_count_; 168 size_t frame_count_;
157 QuicPacketHeader header_; 169 QuicPacketHeader header_;
158 std::vector<QuicStreamFrame> stream_frames_; 170 std::vector<QuicStreamFrame> stream_frames_;
159 scoped_ptr<QuicAckFrame> ack_; 171 scoped_ptr<QuicAckFrame> ack_;
160 scoped_ptr<QuicCongestionFeedbackFrame> feedback_; 172 scoped_ptr<QuicCongestionFeedbackFrame> feedback_;
161 scoped_ptr<QuicRstStreamFrame> rst_; 173 scoped_ptr<QuicRstStreamFrame> rst_;
162 scoped_ptr<QuicConnectionCloseFrame> close_; 174 scoped_ptr<QuicConnectionCloseFrame> close_;
163 scoped_ptr<QuicGoAwayFrame> goaway_; 175 scoped_ptr<QuicGoAwayFrame> goaway_;
176 scoped_ptr<QuicVersionNegotiationPacket> version_negotiation_packet_;
164 177
165 DISALLOW_COPY_AND_ASSIGN(FramerVisitorCapturingFrames); 178 DISALLOW_COPY_AND_ASSIGN(FramerVisitorCapturingFrames);
166 }; 179 };
167 180
168 class MockConnectionVisitor : public QuicConnectionVisitorInterface { 181 class MockConnectionVisitor : public QuicConnectionVisitorInterface {
169 public: 182 public:
170 MockConnectionVisitor(); 183 MockConnectionVisitor();
171 virtual ~MockConnectionVisitor(); 184 virtual ~MockConnectionVisitor();
172 185
173 MOCK_METHOD4(OnPacket, bool(const IPEndPoint& self_address, 186 MOCK_METHOD4(OnPacket, bool(const IPEndPoint& self_address,
(...skipping 28 matching lines...) Expand all
202 MOCK_METHOD0(UnregisterSendAlarmIfRegistered, void()); 215 MOCK_METHOD0(UnregisterSendAlarmIfRegistered, void());
203 MOCK_METHOD0(ClearAckAlarm, void()); 216 MOCK_METHOD0(ClearAckAlarm, void());
204 private: 217 private:
205 const MockClock clock_; 218 const MockClock clock_;
206 MockRandom random_generator_; 219 MockRandom random_generator_;
207 }; 220 };
208 221
209 class MockConnection : public QuicConnection { 222 class MockConnection : public QuicConnection {
210 public: 223 public:
211 // Uses a MockHelper. 224 // Uses a MockHelper.
212 MockConnection(QuicGuid guid, IPEndPoint address); 225 MockConnection(QuicGuid guid, IPEndPoint address, bool is_server);
213 MockConnection(QuicGuid guid, 226 MockConnection(QuicGuid guid,
214 IPEndPoint address, 227 IPEndPoint address,
215 QuicConnectionHelperInterface* helper); 228 QuicConnectionHelperInterface* helper,
229 bool is_server);
216 virtual ~MockConnection(); 230 virtual ~MockConnection();
217 231
218 MOCK_METHOD3(ProcessUdpPacket, void(const IPEndPoint& self_address, 232 MOCK_METHOD3(ProcessUdpPacket, void(const IPEndPoint& self_address,
219 const IPEndPoint& peer_address, 233 const IPEndPoint& peer_address,
220 const QuicEncryptedPacket& packet)); 234 const QuicEncryptedPacket& packet));
221 MOCK_METHOD1(SendConnectionClose, void(QuicErrorCode error)); 235 MOCK_METHOD1(SendConnectionClose, void(QuicErrorCode error));
222 236
223 MOCK_METHOD2(SendRstStream, void(QuicStreamId id, 237 MOCK_METHOD2(SendRstStream, void(QuicStreamId id,
224 QuicErrorCode error)); 238 QuicErrorCode error));
225 MOCK_METHOD3(SendGoAway, void(QuicErrorCode error, 239 MOCK_METHOD3(SendGoAway, void(QuicErrorCode error,
226 QuicStreamId last_good_stream_id, 240 QuicStreamId last_good_stream_id,
227 const string& reason)); 241 const string& reason));
228 MOCK_METHOD0(OnCanWrite, bool()); 242 MOCK_METHOD0(OnCanWrite, bool());
229 243
230 void ProcessUdpPacketInternal(const IPEndPoint& self_address, 244 void ProcessUdpPacketInternal(const IPEndPoint& self_address,
231 const IPEndPoint& peer_address, 245 const IPEndPoint& peer_address,
232 const QuicEncryptedPacket& packet) { 246 const QuicEncryptedPacket& packet) {
233 QuicConnection::ProcessUdpPacket(self_address, peer_address, packet); 247 QuicConnection::ProcessUdpPacket(self_address, peer_address, packet);
234 } 248 }
235 249
250 virtual bool OnProtocolVersionMismatch(QuicVersionTag version) OVERRIDE {
251 return false;
252 }
253
236 private: 254 private:
237 scoped_ptr<QuicConnectionHelperInterface> helper_; 255 scoped_ptr<QuicConnectionHelperInterface> helper_;
238 DISALLOW_COPY_AND_ASSIGN(MockConnection); 256 DISALLOW_COPY_AND_ASSIGN(MockConnection);
239 }; 257 };
240 258
241 class PacketSavingConnection : public MockConnection { 259 class PacketSavingConnection : public MockConnection {
242 public: 260 public:
243 PacketSavingConnection(QuicGuid guid, IPEndPoint address); 261 PacketSavingConnection(QuicGuid guid, IPEndPoint address, bool is_server);
244 virtual ~PacketSavingConnection(); 262 virtual ~PacketSavingConnection();
245 263
246 virtual bool SendOrQueuePacket(QuicPacketSequenceNumber sequence_number, 264 virtual bool SendOrQueuePacket(QuicPacketSequenceNumber sequence_number,
247 QuicPacket* packet, 265 QuicPacket* packet,
248 QuicPacketEntropyHash entropy_hash, 266 QuicPacketEntropyHash entropy_hash,
249 bool has_retransmittable_data) OVERRIDE; 267 bool has_retransmittable_data) OVERRIDE;
250 268
251 std::vector<QuicPacket*> packets_; 269 std::vector<QuicPacket*> packets_;
252 270
253 private: 271 private:
(...skipping 30 matching lines...) Expand all
284 virtual ~MockSendAlgorithm(); 302 virtual ~MockSendAlgorithm();
285 303
286 MOCK_METHOD4(OnIncomingQuicCongestionFeedbackFrame, 304 MOCK_METHOD4(OnIncomingQuicCongestionFeedbackFrame,
287 void(const QuicCongestionFeedbackFrame&, 305 void(const QuicCongestionFeedbackFrame&,
288 QuicTime feedback_receive_time, 306 QuicTime feedback_receive_time,
289 QuicBandwidth sent_bandwidth, 307 QuicBandwidth sent_bandwidth,
290 const SentPacketsMap&)); 308 const SentPacketsMap&));
291 MOCK_METHOD3(OnIncomingAck, 309 MOCK_METHOD3(OnIncomingAck,
292 void(QuicPacketSequenceNumber, QuicByteCount, QuicTime::Delta)); 310 void(QuicPacketSequenceNumber, QuicByteCount, QuicTime::Delta));
293 MOCK_METHOD1(OnIncomingLoss, void(QuicTime)); 311 MOCK_METHOD1(OnIncomingLoss, void(QuicTime));
294 MOCK_METHOD5(SentPacket, void(QuicTime sent_time, QuicPacketSequenceNumber, 312 MOCK_METHOD4(SentPacket, void(QuicTime sent_time, QuicPacketSequenceNumber,
295 QuicByteCount, bool, bool)); 313 QuicByteCount, bool));
296 MOCK_METHOD2(TimeUntilSend, QuicTime::Delta(QuicTime now, bool)); 314 MOCK_METHOD2(AbandoningPacket, void(QuicPacketSequenceNumber sequence_number,
315 QuicByteCount abandoned_bytes));
316 MOCK_METHOD3(TimeUntilSend, QuicTime::Delta(QuicTime now, bool, bool));
297 MOCK_METHOD0(BandwidthEstimate, QuicBandwidth(void)); 317 MOCK_METHOD0(BandwidthEstimate, QuicBandwidth(void));
318 MOCK_METHOD0(SmoothedRtt, QuicTime::Delta(void));
298 319
299 private: 320 private:
300 DISALLOW_COPY_AND_ASSIGN(MockSendAlgorithm); 321 DISALLOW_COPY_AND_ASSIGN(MockSendAlgorithm);
301 }; 322 };
302 323
303 class TestEntropyCalculator : 324 class TestEntropyCalculator :
304 public QuicReceivedEntropyHashCalculatorInterface { 325 public QuicReceivedEntropyHashCalculatorInterface {
305 public: 326 public:
306 TestEntropyCalculator() { } 327 TestEntropyCalculator() { }
307 virtual ~TestEntropyCalculator() { } 328 virtual ~TestEntropyCalculator() { }
308 329
309 virtual QuicPacketEntropyHash ReceivedEntropyHash( 330 virtual QuicPacketEntropyHash ReceivedEntropyHash(
310 QuicPacketSequenceNumber sequence_number) const OVERRIDE; 331 QuicPacketSequenceNumber sequence_number) const OVERRIDE;
311 332
312 }; 333 };
313 334
314 } // namespace test 335 } // namespace test
315 336
316 } // namespace net 337 } // namespace net
317 338
318 #endif // NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_ 339 #endif // NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_
OLDNEW
« no previous file with comments | « net/quic/test_tools/quic_packet_creator_peer.cc ('k') | net/quic/test_tools/quic_test_utils.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698