OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "jingle/glue/pseudotcp_adapter.h" | 5 #include "jingle/glue/pseudotcp_adapter.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
230 output_buffer_->SetOffset(0); | 230 output_buffer_->SetOffset(0); |
231 ASSERT_EQ(kTestDataSize, output_buffer_->size()); | 231 ASSERT_EQ(kTestDataSize, output_buffer_->size()); |
232 | 232 |
233 EXPECT_EQ(0, memcmp(output_buffer_->data(), | 233 EXPECT_EQ(0, memcmp(output_buffer_->data(), |
234 input_buffer_->StartOfBuffer(), kTestDataSize)); | 234 input_buffer_->StartOfBuffer(), kTestDataSize)); |
235 } | 235 } |
236 | 236 |
237 protected: | 237 protected: |
238 void Done() { | 238 void Done() { |
239 done_ = true; | 239 done_ = true; |
240 message_loop_->PostTask(FROM_HERE, new MessageLoop::QuitTask()); | 240 message_loop_->PostTask(FROM_HERE, MessageLoop::QuitClosure()); |
241 } | 241 } |
242 | 242 |
243 void DoStart() { | 243 void DoStart() { |
244 InitBuffers(); | 244 InitBuffers(); |
245 DoRead(); | 245 DoRead(); |
246 DoWrite(); | 246 DoWrite(); |
247 } | 247 } |
248 | 248 |
249 void InitBuffers() { | 249 void InitBuffers() { |
250 output_buffer_ = new net::DrainableIOBuffer( | 250 output_buffer_ = new net::DrainableIOBuffer( |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
411 tester->CheckResults(); | 411 tester->CheckResults(); |
412 } | 412 } |
413 | 413 |
414 class DeleteOnConnected { | 414 class DeleteOnConnected { |
415 public: | 415 public: |
416 DeleteOnConnected(MessageLoop* message_loop, | 416 DeleteOnConnected(MessageLoop* message_loop, |
417 scoped_ptr<PseudoTcpAdapter>* adapter) | 417 scoped_ptr<PseudoTcpAdapter>* adapter) |
418 : message_loop_(message_loop), adapter_(adapter) {} | 418 : message_loop_(message_loop), adapter_(adapter) {} |
419 void OnConnected(int error) { | 419 void OnConnected(int error) { |
420 adapter_->reset(); | 420 adapter_->reset(); |
421 message_loop_->PostTask(FROM_HERE, new MessageLoop::QuitTask()); | 421 message_loop_->PostTask(FROM_HERE, MessageLoop::QuitClosure()); |
422 } | 422 } |
423 MessageLoop* message_loop_; | 423 MessageLoop* message_loop_; |
424 scoped_ptr<PseudoTcpAdapter>* adapter_; | 424 scoped_ptr<PseudoTcpAdapter>* adapter_; |
425 }; | 425 }; |
426 | 426 |
427 TEST_F(PseudoTcpAdapterTest, DeleteOnConnected) { | 427 TEST_F(PseudoTcpAdapterTest, DeleteOnConnected) { |
428 // This test verifies that deleting the adapter mid-callback doesn't lead | 428 // This test verifies that deleting the adapter mid-callback doesn't lead |
429 // to deleted structures being touched as the stack unrolls, so the failure | 429 // to deleted structures being touched as the stack unrolls, so the failure |
430 // mode is a crash rather than a normal test failure. | 430 // mode is a crash rather than a normal test failure. |
431 TestOldCompletionCallback client_connect_cb; | 431 TestOldCompletionCallback client_connect_cb; |
432 DeleteOnConnected host_delete(&message_loop_, &host_pseudotcp_); | 432 DeleteOnConnected host_delete(&message_loop_, &host_pseudotcp_); |
433 net::OldCompletionCallbackImpl<DeleteOnConnected> | 433 net::OldCompletionCallbackImpl<DeleteOnConnected> |
434 host_connect_cb(&host_delete, &DeleteOnConnected::OnConnected); | 434 host_connect_cb(&host_delete, &DeleteOnConnected::OnConnected); |
435 | 435 |
436 host_pseudotcp_->Connect(&host_connect_cb); | 436 host_pseudotcp_->Connect(&host_connect_cb); |
437 client_pseudotcp_->Connect(&client_connect_cb); | 437 client_pseudotcp_->Connect(&client_connect_cb); |
438 message_loop_.Run(); | 438 message_loop_.Run(); |
439 | 439 |
440 ASSERT_EQ(NULL, host_pseudotcp_.get()); | 440 ASSERT_EQ(NULL, host_pseudotcp_.get()); |
441 } | 441 } |
442 | 442 |
443 } // namespace | 443 } // namespace |
444 | 444 |
445 } // namespace jingle_glue | 445 } // namespace jingle_glue |
OLD | NEW |