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

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

Issue 12334063: Land recent QUIC changes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: more EXPECT_FALSE Created 7 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/quic/test_tools/quic_connection_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>
11
10 #include "net/quic/congestion_control/send_algorithm_interface.h" 12 #include "net/quic/congestion_control/send_algorithm_interface.h"
11 #include "net/quic/quic_connection.h" 13 #include "net/quic/quic_connection.h"
12 #include "net/quic/quic_framer.h" 14 #include "net/quic/quic_framer.h"
13 #include "net/quic/quic_session.h" 15 #include "net/quic/quic_session.h"
14 #include "net/quic/test_tools/mock_clock.h" 16 #include "net/quic/test_tools/mock_clock.h"
15 #include "net/quic/test_tools/mock_random.h" 17 #include "net/quic/test_tools/mock_random.h"
16 #include "testing/gmock/include/gmock/gmock.h" 18 #include "testing/gmock/include/gmock/gmock.h"
17 19
18 namespace net { 20 namespace net {
19 21
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 MOCK_METHOD1(OnPacketHeader, bool(const QuicPacketHeader& header)); 58 MOCK_METHOD1(OnPacketHeader, bool(const QuicPacketHeader& header));
57 MOCK_METHOD1(OnFecProtectedPayload, void(base::StringPiece payload)); 59 MOCK_METHOD1(OnFecProtectedPayload, void(base::StringPiece payload));
58 MOCK_METHOD1(OnStreamFrame, void(const QuicStreamFrame& frame)); 60 MOCK_METHOD1(OnStreamFrame, void(const QuicStreamFrame& frame));
59 MOCK_METHOD1(OnAckFrame, void(const QuicAckFrame& frame)); 61 MOCK_METHOD1(OnAckFrame, void(const QuicAckFrame& frame));
60 MOCK_METHOD1(OnCongestionFeedbackFrame, 62 MOCK_METHOD1(OnCongestionFeedbackFrame,
61 void(const QuicCongestionFeedbackFrame& frame)); 63 void(const QuicCongestionFeedbackFrame& frame));
62 MOCK_METHOD1(OnFecData, void(const QuicFecData& fec)); 64 MOCK_METHOD1(OnFecData, void(const QuicFecData& fec));
63 MOCK_METHOD1(OnRstStreamFrame, void(const QuicRstStreamFrame& frame)); 65 MOCK_METHOD1(OnRstStreamFrame, void(const QuicRstStreamFrame& frame));
64 MOCK_METHOD1(OnConnectionCloseFrame, 66 MOCK_METHOD1(OnConnectionCloseFrame,
65 void(const QuicConnectionCloseFrame& frame)); 67 void(const QuicConnectionCloseFrame& frame));
68 MOCK_METHOD1(OnGoAwayFrame, void(const QuicGoAwayFrame& frame));
66 MOCK_METHOD0(OnPacketComplete, void()); 69 MOCK_METHOD0(OnPacketComplete, void());
67 70
68 private: 71 private:
69 DISALLOW_COPY_AND_ASSIGN(MockFramerVisitor); 72 DISALLOW_COPY_AND_ASSIGN(MockFramerVisitor);
70 }; 73 };
71 74
72 class NoOpFramerVisitor : public QuicFramerVisitorInterface { 75 class NoOpFramerVisitor : public QuicFramerVisitorInterface {
73 public: 76 public:
74 NoOpFramerVisitor() {} 77 NoOpFramerVisitor() {}
75 78
76 virtual void OnError(QuicFramer* framer) OVERRIDE {} 79 virtual void OnError(QuicFramer* framer) OVERRIDE {}
77 virtual void OnPacket() OVERRIDE {} 80 virtual void OnPacket() OVERRIDE {}
78 virtual void OnPublicResetPacket( 81 virtual void OnPublicResetPacket(
79 const QuicPublicResetPacket& packet) OVERRIDE {} 82 const QuicPublicResetPacket& packet) OVERRIDE {}
80 virtual void OnRevivedPacket() OVERRIDE {} 83 virtual void OnRevivedPacket() OVERRIDE {}
81 virtual bool OnPacketHeader(const QuicPacketHeader& header) OVERRIDE; 84 virtual bool OnPacketHeader(const QuicPacketHeader& header) OVERRIDE;
82 virtual void OnFecProtectedPayload(base::StringPiece payload) OVERRIDE {} 85 virtual void OnFecProtectedPayload(base::StringPiece payload) OVERRIDE {}
83 virtual void OnStreamFrame(const QuicStreamFrame& frame) OVERRIDE {} 86 virtual void OnStreamFrame(const QuicStreamFrame& frame) OVERRIDE {}
84 virtual void OnAckFrame(const QuicAckFrame& frame) OVERRIDE {} 87 virtual void OnAckFrame(const QuicAckFrame& frame) OVERRIDE {}
85 virtual void OnCongestionFeedbackFrame( 88 virtual void OnCongestionFeedbackFrame(
86 const QuicCongestionFeedbackFrame& frame) OVERRIDE {} 89 const QuicCongestionFeedbackFrame& frame) OVERRIDE {}
87 virtual void OnFecData(const QuicFecData& fec) OVERRIDE {} 90 virtual void OnFecData(const QuicFecData& fec) OVERRIDE {}
88 virtual void OnRstStreamFrame(const QuicRstStreamFrame& frame) OVERRIDE {} 91 virtual void OnRstStreamFrame(const QuicRstStreamFrame& frame) OVERRIDE {}
89 virtual void OnConnectionCloseFrame( 92 virtual void OnConnectionCloseFrame(
90 const QuicConnectionCloseFrame& frame) OVERRIDE {} 93 const QuicConnectionCloseFrame& frame) OVERRIDE {}
94 virtual void OnGoAwayFrame(const QuicGoAwayFrame& frame) OVERRIDE {}
91 virtual void OnPacketComplete() OVERRIDE {} 95 virtual void OnPacketComplete() OVERRIDE {}
92 96
93 private: 97 private:
94 DISALLOW_COPY_AND_ASSIGN(NoOpFramerVisitor); 98 DISALLOW_COPY_AND_ASSIGN(NoOpFramerVisitor);
95 }; 99 };
96 100
97 class FramerVisitorCapturingAcks : public NoOpFramerVisitor {
98 public:
99 FramerVisitorCapturingAcks();
100 virtual ~FramerVisitorCapturingAcks();
101
102 // NoOpFramerVisitor
103 virtual bool OnPacketHeader(const QuicPacketHeader& header) OVERRIDE;
104 virtual void OnAckFrame(const QuicAckFrame& frame) OVERRIDE;
105 virtual void OnCongestionFeedbackFrame(
106 const QuicCongestionFeedbackFrame& frame) OVERRIDE;
107
108 QuicPacketHeader* header() { return &header_; }
109
110 QuicAckFrame* ack() { return ack_.get(); }
111 QuicCongestionFeedbackFrame* feedback() { return feedback_.get(); }
112
113 private:
114 QuicPacketHeader header_;
115 scoped_ptr<QuicAckFrame> ack_;
116 scoped_ptr<QuicCongestionFeedbackFrame> feedback_;
117
118 DISALLOW_COPY_AND_ASSIGN(FramerVisitorCapturingAcks);
119 };
120
121 class FramerVisitorCapturingPublicReset : public NoOpFramerVisitor { 101 class FramerVisitorCapturingPublicReset : public NoOpFramerVisitor {
122 public: 102 public:
123 FramerVisitorCapturingPublicReset(); 103 FramerVisitorCapturingPublicReset();
124 virtual ~FramerVisitorCapturingPublicReset(); 104 virtual ~FramerVisitorCapturingPublicReset();
125 105
126 virtual void OnPublicResetPacket( 106 virtual void OnPublicResetPacket(
127 const QuicPublicResetPacket& packet) OVERRIDE; 107 const QuicPublicResetPacket& packet) OVERRIDE;
128 108
129 const QuicPublicResetPacket public_reset_packet() { 109 const QuicPublicResetPacket public_reset_packet() {
130 return public_reset_packet_; 110 return public_reset_packet_;
131 } 111 }
132 112
133 private: 113 private:
134 QuicPublicResetPacket public_reset_packet_; 114 QuicPublicResetPacket public_reset_packet_;
135 }; 115 };
136 116
117 class FramerVisitorCapturingFrames : public NoOpFramerVisitor {
118 public:
119 FramerVisitorCapturingFrames();
120 virtual ~FramerVisitorCapturingFrames();
121
122 // NoOpFramerVisitor
123
124 virtual bool OnPacketHeader(const QuicPacketHeader& header) OVERRIDE;
125 virtual void OnStreamFrame(const QuicStreamFrame& frame) OVERRIDE;
126 virtual void OnAckFrame(const QuicAckFrame& frame) OVERRIDE;
127 virtual void OnCongestionFeedbackFrame(
128 const QuicCongestionFeedbackFrame& frame) OVERRIDE;
129 virtual void OnRstStreamFrame(const QuicRstStreamFrame& frame) OVERRIDE;
130 virtual void OnConnectionCloseFrame(
131 const QuicConnectionCloseFrame& frame) OVERRIDE;
132 virtual void OnGoAwayFrame(const QuicGoAwayFrame& frame) OVERRIDE;
133
134 size_t frame_count() { return frame_count_; }
135 QuicPacketHeader* header() { return &header_; }
136 const std::vector<QuicStreamFrame>* stream_frames() {
137 return &stream_frames_;
138 }
139 QuicAckFrame* ack() { return ack_.get(); }
140 QuicCongestionFeedbackFrame* feedback() { return feedback_.get(); }
141 QuicRstStreamFrame* rst() { return rst_.get(); }
142 QuicConnectionCloseFrame* close() { return close_.get(); }
143 QuicGoAwayFrame* goaway() { return goaway_.get(); }
144
145 private:
146 size_t frame_count_;
147 QuicPacketHeader header_;
148 std::vector<QuicStreamFrame> stream_frames_;
149 scoped_ptr<QuicAckFrame> ack_;
150 scoped_ptr<QuicCongestionFeedbackFrame> feedback_;
151 scoped_ptr<QuicRstStreamFrame> rst_;
152 scoped_ptr<QuicConnectionCloseFrame> close_;
153 scoped_ptr<QuicGoAwayFrame> goaway_;
154
155 DISALLOW_COPY_AND_ASSIGN(FramerVisitorCapturingFrames);
156 };
157
137 class MockConnectionVisitor : public QuicConnectionVisitorInterface { 158 class MockConnectionVisitor : public QuicConnectionVisitorInterface {
138 public: 159 public:
139 MockConnectionVisitor(); 160 MockConnectionVisitor();
140 virtual ~MockConnectionVisitor(); 161 virtual ~MockConnectionVisitor();
141 162
142 MOCK_METHOD4(OnPacket, bool(const IPEndPoint& self_address, 163 MOCK_METHOD4(OnPacket, bool(const IPEndPoint& self_address,
143 const IPEndPoint& peer_address, 164 const IPEndPoint& peer_address,
144 const QuicPacketHeader& header, 165 const QuicPacketHeader& header,
145 const std::vector<QuicStreamFrame>& frame)); 166 const std::vector<QuicStreamFrame>& frame));
146 MOCK_METHOD1(OnRstStream, void(const QuicRstStreamFrame& frame)); 167 MOCK_METHOD1(OnRstStream, void(const QuicRstStreamFrame& frame));
168 MOCK_METHOD1(OnGoAway, void(const QuicGoAwayFrame& frame));
147 MOCK_METHOD2(ConnectionClose, void(QuicErrorCode error, bool from_peer)); 169 MOCK_METHOD2(ConnectionClose, void(QuicErrorCode error, bool from_peer));
148 MOCK_METHOD1(OnAck, void(AckedPackets acked_packets)); 170 MOCK_METHOD1(OnAck, void(const SequenceNumberSet& acked_packets));
149 MOCK_METHOD0(OnCanWrite, bool()); 171 MOCK_METHOD0(OnCanWrite, bool());
150 172
151 private: 173 private:
152 DISALLOW_COPY_AND_ASSIGN(MockConnectionVisitor); 174 DISALLOW_COPY_AND_ASSIGN(MockConnectionVisitor);
153 }; 175 };
154 176
155 class MockHelper : public QuicConnectionHelperInterface { 177 class MockHelper : public QuicConnectionHelperInterface {
156 public: 178 public:
157 MockHelper(); 179 MockHelper();
158 virtual ~MockHelper(); 180 virtual ~MockHelper();
(...skipping 22 matching lines...) Expand all
181 MockConnection(QuicGuid guid, 203 MockConnection(QuicGuid guid,
182 IPEndPoint address, 204 IPEndPoint address,
183 QuicConnectionHelperInterface* helper); 205 QuicConnectionHelperInterface* helper);
184 virtual ~MockConnection(); 206 virtual ~MockConnection();
185 207
186 MOCK_METHOD3(ProcessUdpPacket, void(const IPEndPoint& self_address, 208 MOCK_METHOD3(ProcessUdpPacket, void(const IPEndPoint& self_address,
187 const IPEndPoint& peer_address, 209 const IPEndPoint& peer_address,
188 const QuicEncryptedPacket& packet)); 210 const QuicEncryptedPacket& packet));
189 MOCK_METHOD1(SendConnectionClose, void(QuicErrorCode error)); 211 MOCK_METHOD1(SendConnectionClose, void(QuicErrorCode error));
190 212
191 MOCK_METHOD3(SendRstStream, void(QuicStreamId id, 213 MOCK_METHOD2(SendRstStream, void(QuicStreamId id,
192 QuicErrorCode error, 214 QuicErrorCode error));
193 QuicStreamOffset offset)); 215 MOCK_METHOD3(SendGoAway, void(QuicErrorCode error,
194 216 QuicStreamId last_good_stream_id,
217 const string& reason));
195 MOCK_METHOD0(OnCanWrite, bool()); 218 MOCK_METHOD0(OnCanWrite, bool());
196 219
197 void ProcessUdpPacketInternal(const IPEndPoint& self_address, 220 void ProcessUdpPacketInternal(const IPEndPoint& self_address,
198 const IPEndPoint& peer_address, 221 const IPEndPoint& peer_address,
199 const QuicEncryptedPacket& packet) { 222 const QuicEncryptedPacket& packet) {
200 QuicConnection::ProcessUdpPacket(self_address, peer_address, packet); 223 QuicConnection::ProcessUdpPacket(self_address, peer_address, packet);
201 } 224 }
202 225
203 private: 226 private:
204 scoped_ptr<QuicConnectionHelperInterface> helper_; 227 scoped_ptr<QuicConnectionHelperInterface> helper_;
205 DISALLOW_COPY_AND_ASSIGN(MockConnection); 228 DISALLOW_COPY_AND_ASSIGN(MockConnection);
206 }; 229 };
207 230
208 class PacketSavingConnection : public MockConnection { 231 class PacketSavingConnection : public MockConnection {
209 public: 232 public:
210 PacketSavingConnection(QuicGuid guid, IPEndPoint address); 233 PacketSavingConnection(QuicGuid guid, IPEndPoint address);
211 virtual ~PacketSavingConnection(); 234 virtual ~PacketSavingConnection();
212 235
213 virtual bool SendOrQueuePacket(QuicPacketSequenceNumber sequence_number, 236 virtual bool SendOrQueuePacket(QuicPacketSequenceNumber sequence_number,
214 QuicPacket* packet, 237 QuicPacket* packet,
215 bool force) OVERRIDE; 238 QuicPacketEntropyHash entropy_hash) OVERRIDE;
216 239
217 std::vector<QuicPacket*> packets_; 240 std::vector<QuicPacket*> packets_;
218 241
219 private: 242 private:
220 DISALLOW_COPY_AND_ASSIGN(PacketSavingConnection); 243 DISALLOW_COPY_AND_ASSIGN(PacketSavingConnection);
221 }; 244 };
222 245
223 class MockSession : public QuicSession { 246 class MockSession : public QuicSession {
224 public: 247 public:
225 MockSession(QuicConnection* connection, bool is_server); 248 MockSession(QuicConnection* connection, bool is_server);
(...skipping 16 matching lines...) Expand all
242 265
243 private: 266 private:
244 DISALLOW_COPY_AND_ASSIGN(MockSession); 267 DISALLOW_COPY_AND_ASSIGN(MockSession);
245 }; 268 };
246 269
247 class MockSendAlgorithm : public SendAlgorithmInterface { 270 class MockSendAlgorithm : public SendAlgorithmInterface {
248 public: 271 public:
249 MockSendAlgorithm(); 272 MockSendAlgorithm();
250 virtual ~MockSendAlgorithm(); 273 virtual ~MockSendAlgorithm();
251 274
252 MOCK_METHOD2(OnIncomingQuicCongestionFeedbackFrame, 275 MOCK_METHOD4(OnIncomingQuicCongestionFeedbackFrame,
253 void(const QuicCongestionFeedbackFrame&, const SentPacketsMap&)); 276 void(const QuicCongestionFeedbackFrame&,
277 QuicTime feedback_receive_time,
278 QuicBandwidth sent_bandwidth,
279 const SentPacketsMap&));
254 MOCK_METHOD3(OnIncomingAck, 280 MOCK_METHOD3(OnIncomingAck,
255 void(QuicPacketSequenceNumber, QuicByteCount, QuicTime::Delta)); 281 void(QuicPacketSequenceNumber, QuicByteCount, QuicTime::Delta));
256 MOCK_METHOD1(OnIncomingLoss, void(int number_of_lost_packets)); 282 MOCK_METHOD1(OnIncomingLoss, void(QuicTime));
257 MOCK_METHOD3(SentPacket, void(QuicPacketSequenceNumber, QuicByteCount, bool)); 283 MOCK_METHOD4(SentPacket, void(QuicTime sent_time, QuicPacketSequenceNumber,
258 MOCK_METHOD1(TimeUntilSend, QuicTime::Delta(bool)); 284 QuicByteCount, bool));
285 MOCK_METHOD2(TimeUntilSend, QuicTime::Delta(QuicTime now, bool));
259 MOCK_METHOD0(BandwidthEstimate, QuicBandwidth(void)); 286 MOCK_METHOD0(BandwidthEstimate, QuicBandwidth(void));
260 287
261 private: 288 private:
262 DISALLOW_COPY_AND_ASSIGN(MockSendAlgorithm); 289 DISALLOW_COPY_AND_ASSIGN(MockSendAlgorithm);
263 }; 290 };
264 291
292 class TestEntropyCalculator :
293 public QuicReceivedEntropyHashCalculatorInterface {
294 public:
295 TestEntropyCalculator() { }
296 virtual ~TestEntropyCalculator() { }
297
298 virtual QuicPacketEntropyHash ReceivedEntropyHash(
299 QuicPacketSequenceNumber sequence_number) const OVERRIDE;
300
301 };
302
265 } // namespace test 303 } // namespace test
266 304
267 } // namespace net 305 } // namespace net
268 306
269 #endif // NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_ 307 #endif // NET_QUIC_TEST_TOOLS_QUIC_TEST_UTILS_H_
OLDNEW
« no previous file with comments | « net/quic/test_tools/quic_connection_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