| OLD | NEW |
| 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 #include <stddef.h> | 5 #include <stddef.h> |
| 6 #include <string> | 6 #include <string> |
| 7 #include <sys/epoll.h> | 7 #include <sys/epoll.h> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 152 return params; | 152 return params; |
| 153 } | 153 } |
| 154 | 154 |
| 155 class ServerDelegate : public PacketDroppingTestWriter::Delegate { | 155 class ServerDelegate : public PacketDroppingTestWriter::Delegate { |
| 156 public: | 156 public: |
| 157 ServerDelegate(TestWriterFactory* writer_factory, | 157 ServerDelegate(TestWriterFactory* writer_factory, |
| 158 QuicDispatcher* dispatcher) | 158 QuicDispatcher* dispatcher) |
| 159 : writer_factory_(writer_factory), | 159 : writer_factory_(writer_factory), |
| 160 dispatcher_(dispatcher) {} | 160 dispatcher_(dispatcher) {} |
| 161 virtual ~ServerDelegate() {} | 161 virtual ~ServerDelegate() {} |
| 162 virtual void OnPacketSent(WriteResult result) OVERRIDE { | 162 virtual void OnPacketSent(WriteResult result) override { |
| 163 writer_factory_->OnPacketSent(result); | 163 writer_factory_->OnPacketSent(result); |
| 164 } | 164 } |
| 165 virtual void OnCanWrite() OVERRIDE { dispatcher_->OnCanWrite(); } | 165 virtual void OnCanWrite() override { dispatcher_->OnCanWrite(); } |
| 166 private: | 166 private: |
| 167 TestWriterFactory* writer_factory_; | 167 TestWriterFactory* writer_factory_; |
| 168 QuicDispatcher* dispatcher_; | 168 QuicDispatcher* dispatcher_; |
| 169 }; | 169 }; |
| 170 | 170 |
| 171 class ClientDelegate : public PacketDroppingTestWriter::Delegate { | 171 class ClientDelegate : public PacketDroppingTestWriter::Delegate { |
| 172 public: | 172 public: |
| 173 explicit ClientDelegate(QuicClient* client) : client_(client) {} | 173 explicit ClientDelegate(QuicClient* client) : client_(client) {} |
| 174 virtual ~ClientDelegate() {} | 174 virtual ~ClientDelegate() {} |
| 175 virtual void OnPacketSent(WriteResult result) OVERRIDE {} | 175 virtual void OnPacketSent(WriteResult result) override {} |
| 176 virtual void OnCanWrite() OVERRIDE { | 176 virtual void OnCanWrite() override { |
| 177 EpollEvent event(EPOLLOUT, false); | 177 EpollEvent event(EPOLLOUT, false); |
| 178 client_->OnEvent(client_->fd(), &event); | 178 client_->OnEvent(client_->fd(), &event); |
| 179 } | 179 } |
| 180 private: | 180 private: |
| 181 QuicClient* client_; | 181 QuicClient* client_; |
| 182 }; | 182 }; |
| 183 | 183 |
| 184 class EndToEndTest : public ::testing::TestWithParam<TestParams> { | 184 class EndToEndTest : public ::testing::TestWithParam<TestParams> { |
| 185 protected: | 185 protected: |
| 186 EndToEndTest() | 186 EndToEndTest() |
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 316 } | 316 } |
| 317 static EpollEvent event(EPOLLOUT, false); | 317 static EpollEvent event(EPOLLOUT, false); |
| 318 client_writer_->Initialize( | 318 client_writer_->Initialize( |
| 319 reinterpret_cast<QuicEpollConnectionHelper*>( | 319 reinterpret_cast<QuicEpollConnectionHelper*>( |
| 320 QuicConnectionPeer::GetHelper( | 320 QuicConnectionPeer::GetHelper( |
| 321 client_->client()->session()->connection())), | 321 client_->client()->session()->connection())), |
| 322 new ClientDelegate(client_->client())); | 322 new ClientDelegate(client_->client())); |
| 323 return client_->client()->connected(); | 323 return client_->client()->connected(); |
| 324 } | 324 } |
| 325 | 325 |
| 326 virtual void SetUp() OVERRIDE { | 326 virtual void SetUp() override { |
| 327 // The ownership of these gets transferred to the QuicPacketWriterWrapper | 327 // The ownership of these gets transferred to the QuicPacketWriterWrapper |
| 328 // and TestWriterFactory when Initialize() is executed. | 328 // and TestWriterFactory when Initialize() is executed. |
| 329 client_writer_ = new PacketDroppingTestWriter(); | 329 client_writer_ = new PacketDroppingTestWriter(); |
| 330 server_writer_ = new PacketDroppingTestWriter(); | 330 server_writer_ = new PacketDroppingTestWriter(); |
| 331 } | 331 } |
| 332 | 332 |
| 333 virtual void TearDown() OVERRIDE { | 333 virtual void TearDown() override { |
| 334 StopServer(); | 334 StopServer(); |
| 335 } | 335 } |
| 336 | 336 |
| 337 void StartServer() { | 337 void StartServer() { |
| 338 server_thread_.reset( | 338 server_thread_.reset( |
| 339 new ServerThread( | 339 new ServerThread( |
| 340 new QuicServer(server_config_, server_supported_versions_), | 340 new QuicServer(server_config_, server_supported_versions_), |
| 341 server_address_, | 341 server_address_, |
| 342 strike_register_no_startup_period_)); | 342 strike_register_no_startup_period_)); |
| 343 server_thread_->Initialize(); | 343 server_thread_->Initialize(); |
| (...skipping 756 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1100 WrongAddressWriter() { | 1100 WrongAddressWriter() { |
| 1101 IPAddressNumber ip; | 1101 IPAddressNumber ip; |
| 1102 CHECK(net::ParseIPLiteralToNumber("127.0.0.2", &ip)); | 1102 CHECK(net::ParseIPLiteralToNumber("127.0.0.2", &ip)); |
| 1103 self_address_ = IPEndPoint(ip, 0); | 1103 self_address_ = IPEndPoint(ip, 0); |
| 1104 } | 1104 } |
| 1105 | 1105 |
| 1106 virtual WriteResult WritePacket( | 1106 virtual WriteResult WritePacket( |
| 1107 const char* buffer, | 1107 const char* buffer, |
| 1108 size_t buf_len, | 1108 size_t buf_len, |
| 1109 const IPAddressNumber& real_self_address, | 1109 const IPAddressNumber& real_self_address, |
| 1110 const IPEndPoint& peer_address) OVERRIDE { | 1110 const IPEndPoint& peer_address) override { |
| 1111 // Use wrong address! | 1111 // Use wrong address! |
| 1112 return QuicPacketWriterWrapper::WritePacket( | 1112 return QuicPacketWriterWrapper::WritePacket( |
| 1113 buffer, buf_len, self_address_.address(), peer_address); | 1113 buffer, buf_len, self_address_.address(), peer_address); |
| 1114 } | 1114 } |
| 1115 | 1115 |
| 1116 virtual bool IsWriteBlockedDataBuffered() const OVERRIDE { | 1116 virtual bool IsWriteBlockedDataBuffered() const override { |
| 1117 return false; | 1117 return false; |
| 1118 } | 1118 } |
| 1119 | 1119 |
| 1120 IPEndPoint self_address_; | 1120 IPEndPoint self_address_; |
| 1121 }; | 1121 }; |
| 1122 | 1122 |
| 1123 TEST_P(EndToEndTest, ConnectionMigrationClientIPChanged) { | 1123 TEST_P(EndToEndTest, ConnectionMigrationClientIPChanged) { |
| 1124 // Tests that the client's IP can not change during an established QUIC | 1124 // Tests that the client's IP can not change during an established QUIC |
| 1125 // connection. If it changes, the connection is closed by the server as we do | 1125 // connection. If it changes, the connection is closed by the server as we do |
| 1126 // not yet support IP migration. | 1126 // not yet support IP migration. |
| (...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1363 QuicSession* session = dispatcher->session_map().begin()->second; | 1363 QuicSession* session = dispatcher->session_map().begin()->second; |
| 1364 EXPECT_EQ(0u, QuicSessionPeer::GetLocallyClosedStreamsHighestOffset( | 1364 EXPECT_EQ(0u, QuicSessionPeer::GetLocallyClosedStreamsHighestOffset( |
| 1365 session).size()); | 1365 session).size()); |
| 1366 server_thread_->Resume(); | 1366 server_thread_->Resume(); |
| 1367 } | 1367 } |
| 1368 | 1368 |
| 1369 } // namespace | 1369 } // namespace |
| 1370 } // namespace test | 1370 } // namespace test |
| 1371 } // namespace tools | 1371 } // namespace tools |
| 1372 } // namespace net | 1372 } // namespace net |
| OLD | NEW |