diff options
author | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-30 22:44:53 +0000 |
---|---|---|
committer | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-30 22:44:53 +0000 |
commit | 4fb0f20f7cd1e2b82eb7295f62dc6cb31bb262c5 (patch) | |
tree | 50be96f44d854af30b3c1d10ad0b7658da2e1155 /ppapi/tests | |
parent | b5b1563868c6771a52110ab93fa0c12ce6c545ec (diff) | |
download | chromium_src-4fb0f20f7cd1e2b82eb7295f62dc6cb31bb262c5.zip chromium_src-4fb0f20f7cd1e2b82eb7295f62dc6cb31bb262c5.tar.gz chromium_src-4fb0f20f7cd1e2b82eb7295f62dc6cb31bb262c5.tar.bz2 |
Remove PPB_Transport_Dev API.
BUG=109630
Review URL: https://chromiumcodereview.appspot.com/10454058
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@139660 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/tests')
-rw-r--r-- | ppapi/tests/all_c_includes.h | 1 | ||||
-rw-r--r-- | ppapi/tests/all_cpp_includes.h | 1 | ||||
-rw-r--r-- | ppapi/tests/test_transport.cc | 373 | ||||
-rw-r--r-- | ppapi/tests/test_transport.h | 51 |
4 files changed, 0 insertions, 426 deletions
diff --git a/ppapi/tests/all_c_includes.h b/ppapi/tests/all_c_includes.h index 0732ded..d4f3a0c 100644 --- a/ppapi/tests/all_c_includes.h +++ b/ppapi/tests/all_c_includes.h @@ -29,7 +29,6 @@ #include "ppapi/c/dev/ppb_scrollbar_dev.h" #include "ppapi/c/dev/ppb_testing_dev.h" #include "ppapi/c/dev/ppb_text_input_dev.h" -#include "ppapi/c/dev/ppb_transport_dev.h" #include "ppapi/c/dev/ppb_url_util_dev.h" #include "ppapi/c/dev/ppb_var_deprecated.h" #include "ppapi/c/dev/ppb_video_decoder_dev.h" diff --git a/ppapi/tests/all_cpp_includes.h b/ppapi/tests/all_cpp_includes.h index 0db1b77..0aca7aa 100644 --- a/ppapi/tests/all_cpp_includes.h +++ b/ppapi/tests/all_cpp_includes.h @@ -28,7 +28,6 @@ #include "ppapi/cpp/dev/scrollbar_dev.h" #include "ppapi/cpp/dev/selection_dev.h" #include "ppapi/cpp/dev/text_input_dev.h" -#include "ppapi/cpp/dev/transport_dev.h" #include "ppapi/cpp/dev/url_util_dev.h" #include "ppapi/cpp/dev/video_decoder_dev.h" #include "ppapi/cpp/dev/widget_client_dev.h" diff --git a/ppapi/tests/test_transport.cc b/ppapi/tests/test_transport.cc deleted file mode 100644 index d8bb134..0000000 --- a/ppapi/tests/test_transport.cc +++ /dev/null @@ -1,373 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "ppapi/tests/test_transport.h" - -#include <stdlib.h> -#include <string.h> - -#include <list> -#include <map> - -#include "ppapi/c/dev/ppb_testing_dev.h" -#include "ppapi/c/pp_errors.h" -#include "ppapi/c/pp_macros.h" -#include "ppapi/cpp/dev/transport_dev.h" -#include "ppapi/cpp/instance.h" -#include "ppapi/cpp/module.h" -#include "ppapi/cpp/var.h" -#include "ppapi/tests/test_utils.h" -#include "ppapi/tests/testing_instance.h" -#include "ppapi/utility/completion_callback_factory.h" - -REGISTER_TEST_CASE(Transport); - -namespace { - -const char kTestChannelName[] = "test"; -const int kReadBufferSize = 65536; - -class StreamReader { - public: - StreamReader(pp::Transport_Dev* transport, - int expected_size, - pp::CompletionCallback done_callback) - : expected_size_(expected_size), - done_callback_(done_callback), - PP_ALLOW_THIS_IN_INITIALIZER_LIST(callback_factory_(this)), - transport_(transport), - received_size_(0) { - Read(); - } - - const std::list<std::vector<char> >& received() { return received_; } - std::list<std::string> errors() { return errors_; } - - private: - void Read() { - while (true) { - buffer_.resize(kReadBufferSize); - int result = transport_->Recv( - &buffer_[0], buffer_.size(), - callback_factory_.NewOptionalCallback(&StreamReader::OnReadFinished)); - if (result > 0) - DidFinishRead(result); - else - break; - } - } - - void OnReadFinished(int result) { - DidFinishRead(result); - if (result > 0) - Read(); - } - - void DidFinishRead(int result) { - if (result > 0) { - if (result > static_cast<int>(buffer_.size())) { - errors_.push_back(TestCase::MakeFailureMessage( - __FILE__, __LINE__, - "Recv() returned value that is bigger than the buffer.")); - } - buffer_.resize(result); - received_.push_back(buffer_); - received_size_ += buffer_.size(); - if (received_size_ >= expected_size_) - done_callback_.Run(0); - } - } - - int expected_size_; - pp::CompletionCallback done_callback_; - pp::CompletionCallbackFactory<StreamReader> callback_factory_; - pp::Transport_Dev* transport_; - std::vector<char> buffer_; - std::list<std::vector<char> > received_; - int received_size_; - std::list<std::string> errors_; -}; - -} // namespace - -TestTransport::~TestTransport() { - delete transport1_; - delete transport2_; -} - -bool TestTransport::Init() { - transport_interface_ = static_cast<const PPB_Transport_Dev*>( - pp::Module::Get()->GetBrowserInterface(PPB_TRANSPORT_DEV_INTERFACE)); - return transport_interface_ && CheckTestingInterface(); -} - -void TestTransport::RunTests(const std::string& filter) { - RUN_TEST(Create, filter); - RUN_TEST_FORCEASYNC_AND_NOT(Connect, filter); - RUN_TEST(SetProperty, filter); - RUN_TEST_FORCEASYNC_AND_NOT(SendDataUdp, filter); - RUN_TEST_FORCEASYNC_AND_NOT(SendDataTcp, filter); - RUN_TEST_FORCEASYNC_AND_NOT(ConnectAndCloseUdp, filter); - RUN_TEST_FORCEASYNC_AND_NOT(ConnectAndCloseTcp, filter); -} - -std::string TestTransport::InitTargets(PP_TransportType type) { - transport1_ = new pp::Transport_Dev(instance_, kTestChannelName, type); - transport2_ = new pp::Transport_Dev(instance_, kTestChannelName, type); - - ASSERT_NE(NULL, transport1_); - ASSERT_NE(NULL, transport2_); - - PASS(); -} - -std::string TestTransport::Connect() { - TestCompletionCallback connect_cb1(instance_->pp_instance()); - TestCompletionCallback connect_cb2(instance_->pp_instance()); - ASSERT_EQ(transport1_->Connect(connect_cb1), PP_OK_COMPLETIONPENDING); - ASSERT_EQ(transport2_->Connect(connect_cb2), PP_OK_COMPLETIONPENDING); - - pp::Var address1; - pp::Var address2; - TestCompletionCallback next_address_cb1(instance_->pp_instance()); - TestCompletionCallback next_address_cb2(instance_->pp_instance()); - ASSERT_EQ(transport1_->GetNextAddress(&address1, next_address_cb1), - PP_OK_COMPLETIONPENDING); - ASSERT_EQ(transport2_->GetNextAddress(&address2, next_address_cb2), - PP_OK_COMPLETIONPENDING); - ASSERT_EQ(next_address_cb1.WaitForResult(), PP_OK); - ASSERT_EQ(next_address_cb2.WaitForResult(), PP_OK); - ASSERT_EQ(transport1_->GetNextAddress(&address1, next_address_cb1), PP_OK); - ASSERT_EQ(transport2_->GetNextAddress(&address2, next_address_cb2), PP_OK); - - ASSERT_EQ(transport1_->ReceiveRemoteAddress(address2), PP_OK); - ASSERT_EQ(transport2_->ReceiveRemoteAddress(address1), PP_OK); - - - ASSERT_EQ(connect_cb1.WaitForResult(), PP_OK); - ASSERT_EQ(connect_cb2.WaitForResult(), PP_OK); - - ASSERT_TRUE(transport1_->IsWritable()); - ASSERT_TRUE(transport2_->IsWritable()); - - PASS(); -} - -std::string TestTransport::Clean() { - delete transport1_; - transport1_ = NULL; - delete transport2_; - transport2_ = NULL; - - PASS(); -} - -std::string TestTransport::TestCreate() { - ASSERT_SUBTEST_SUCCESS(InitTargets(PP_TRANSPORTTYPE_DATAGRAM)); - - Clean(); - - PASS(); -} - -std::string TestTransport::TestSetProperty() { - ASSERT_SUBTEST_SUCCESS(InitTargets(PP_TRANSPORTTYPE_STREAM)); - - // Try settings STUN and Relay properties. - ASSERT_EQ(transport1_->SetProperty( - PP_TRANSPORTPROPERTY_STUN_SERVER, - pp::Var("stun.example.com:19302")), PP_OK); - - ASSERT_EQ(transport1_->SetProperty( - PP_TRANSPORTPROPERTY_RELAY_SERVER, - pp::Var("ralay.example.com:80")), PP_OK); - - ASSERT_EQ(transport1_->SetProperty( - PP_TRANSPORTPROPERTY_RELAY_USERNAME, - pp::Var("USERNAME")), PP_OK); - ASSERT_EQ(transport1_->SetProperty( - PP_TRANSPORTPROPERTY_RELAY_PASSWORD, - pp::Var("PASSWORD")), PP_OK); - - // Try changing TCP window size. - ASSERT_EQ(transport1_->SetProperty(PP_TRANSPORTPROPERTY_TCP_RECEIVE_WINDOW, - pp::Var(65536)), PP_OK); - ASSERT_EQ(transport1_->SetProperty(PP_TRANSPORTPROPERTY_TCP_RECEIVE_WINDOW, - pp::Var(10000000)), PP_ERROR_BADARGUMENT); - - ASSERT_EQ(transport1_->SetProperty(PP_TRANSPORTPROPERTY_TCP_SEND_WINDOW, - pp::Var(65536)), PP_OK); - ASSERT_EQ(transport1_->SetProperty(PP_TRANSPORTPROPERTY_TCP_SEND_WINDOW, - pp::Var(10000000)), PP_ERROR_BADARGUMENT); - - ASSERT_EQ(transport1_->SetProperty(PP_TRANSPORTPROPERTY_TCP_NO_DELAY, - pp::Var(true)), PP_OK); - - ASSERT_EQ(transport1_->SetProperty(PP_TRANSPORTPROPERTY_TCP_ACK_DELAY, - pp::Var(10)), PP_OK); - ASSERT_EQ(transport1_->SetProperty(PP_TRANSPORTPROPERTY_TCP_ACK_DELAY, - pp::Var(10000)), PP_ERROR_BADARGUMENT); - - TestCompletionCallback connect_cb(instance_->pp_instance()); - ASSERT_EQ(transport1_->Connect(connect_cb), PP_OK_COMPLETIONPENDING); - - // SetProperty() should fail after we've connected. - ASSERT_EQ(transport1_->SetProperty( - PP_TRANSPORTPROPERTY_STUN_SERVER, - pp::Var("stun.example.com:31323")), PP_ERROR_FAILED); - - Clean(); - ASSERT_EQ(connect_cb.WaitForResult(), PP_ERROR_ABORTED); - - PASS(); -} - -std::string TestTransport::TestConnect() { - ASSERT_SUBTEST_SUCCESS(InitTargets(PP_TRANSPORTTYPE_DATAGRAM)); - ASSERT_SUBTEST_SUCCESS(Connect()); - - Clean(); - - PASS(); -} - -// Creating datagram connection and try sending data over it. Verify -// that at least some packets are received (some packets may be lost). -std::string TestTransport::TestSendDataUdp() { - ASSERT_SUBTEST_SUCCESS(InitTargets(PP_TRANSPORTTYPE_DATAGRAM)); - ASSERT_SUBTEST_SUCCESS(Connect()); - - const int kNumPackets = 100; - const int kSendBufferSize = 1200; - const int kUdpWaitTimeMs = 1000; // 1 second. - - TestCompletionCallback done_cb(instance_->pp_instance()); - StreamReader reader(transport1_, kSendBufferSize * kNumPackets, done_cb); - - std::map<int, std::vector<char> > sent_packets; - for (int i = 0; i < kNumPackets; ++i) { - std::vector<char> send_buffer(kSendBufferSize); - for (size_t j = 0; j < send_buffer.size(); ++j) { - send_buffer[j] = rand() % 256; - } - // Put packet index in the beginning. - memcpy(&send_buffer[0], &i, sizeof(i)); - - TestCompletionCallback send_cb(instance_->pp_instance(), force_async_); - int32_t result = transport2_->Send(&send_buffer[0], send_buffer.size(), - send_cb); - if (force_async_) { - ASSERT_EQ(result, PP_OK_COMPLETIONPENDING); - ASSERT_EQ(send_cb.WaitForResult(), static_cast<int>(send_buffer.size())); - } else { - ASSERT_EQ(result, static_cast<int>(send_buffer.size())); - } - sent_packets[i] = send_buffer; - } - - // Limit waiting time. - TestCompletionCallback timeout_cb(instance_->pp_instance()); - pp::Module::Get()->core()->CallOnMainThread(kUdpWaitTimeMs, timeout_cb); - ASSERT_EQ(timeout_cb.WaitForResult(), PP_OK); - - ASSERT_TRUE(reader.errors().size() == 0); - ASSERT_TRUE(reader.received().size() > 0); - for (std::list<std::vector<char> >::const_iterator it = - reader.received().begin(); it != reader.received().end(); ++it) { - int index; - memcpy(&index, &(*it)[0], sizeof(index)); - ASSERT_TRUE(sent_packets[index] == *it); - } - - Clean(); - - PASS(); -} - -// Creating reliable (TCP-like) connection and try sending data over -// it. Verify that all data is received correctly. -std::string TestTransport::TestSendDataTcp() { - ASSERT_SUBTEST_SUCCESS(InitTargets(PP_TRANSPORTTYPE_STREAM)); - ASSERT_SUBTEST_SUCCESS(Connect()); - - const int kTcpSendSize = 100000; - - TestCompletionCallback done_cb(instance_->pp_instance()); - StreamReader reader(transport1_, kTcpSendSize, done_cb); - - std::vector<char> send_buffer(kTcpSendSize); - for (size_t j = 0; j < send_buffer.size(); ++j) { - send_buffer[j] = rand() % 256; - } - - int pos = 0; - while (pos < static_cast<int>(send_buffer.size())) { - TestCompletionCallback send_cb(instance_->pp_instance(), force_async_); - int result = transport2_->Send( - &send_buffer[0] + pos, send_buffer.size() - pos, send_cb); - if (force_async_) - ASSERT_EQ(result, PP_OK_COMPLETIONPENDING); - if (result == PP_OK_COMPLETIONPENDING) - result = send_cb.WaitForResult(); - ASSERT_TRUE(result > 0); - pos += result; - } - - ASSERT_EQ(done_cb.WaitForResult(), PP_OK); - - ASSERT_TRUE(reader.errors().size() == 0); - - std::vector<char> received_data; - for (std::list<std::vector<char> >::const_iterator it = - reader.received().begin(); it != reader.received().end(); ++it) { - received_data.insert(received_data.end(), it->begin(), it->end()); - } - ASSERT_EQ(send_buffer, received_data); - - Clean(); - - PASS(); -} - -std::string TestTransport::TestConnectAndCloseUdp() { - ASSERT_SUBTEST_SUCCESS(InitTargets(PP_TRANSPORTTYPE_DATAGRAM)); - ASSERT_SUBTEST_SUCCESS(Connect()); - - std::vector<char> recv_buffer(kReadBufferSize); - TestCompletionCallback recv_cb(instance_->pp_instance()); - ASSERT_EQ( - transport1_->Recv(&recv_buffer[0], recv_buffer.size(), recv_cb), - PP_OK_COMPLETIONPENDING); - - // Close the transport and verify that callback is aborted. - ASSERT_EQ(transport1_->Close(), PP_OK); - - ASSERT_EQ(recv_cb.run_count(), 1); - ASSERT_EQ(recv_cb.result(), PP_ERROR_ABORTED); - - Clean(); - - PASS(); -} - -std::string TestTransport::TestConnectAndCloseTcp() { - ASSERT_SUBTEST_SUCCESS(InitTargets(PP_TRANSPORTTYPE_STREAM)); - ASSERT_SUBTEST_SUCCESS(Connect()); - - std::vector<char> recv_buffer(kReadBufferSize); - TestCompletionCallback recv_cb(instance_->pp_instance()); - ASSERT_EQ( - transport1_->Recv(&recv_buffer[0], recv_buffer.size(), recv_cb), - PP_OK_COMPLETIONPENDING); - - // Close the transport and verify that callback is aborted. - ASSERT_EQ(transport1_->Close(), PP_OK); - - ASSERT_EQ(recv_cb.run_count(), 1); - ASSERT_EQ(recv_cb.result(), PP_ERROR_ABORTED); - - Clean(); - - PASS(); -} diff --git a/ppapi/tests/test_transport.h b/ppapi/tests/test_transport.h deleted file mode 100644 index eee1c2d..0000000 --- a/ppapi/tests/test_transport.h +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef PPAPI_TESTS_TEST_TRANSPORT_H_ -#define PPAPI_TESTS_TEST_TRANSPORT_H_ - -#include <string> - -#include "ppapi/c/dev/ppb_transport_dev.h" -#include "ppapi/tests/test_case.h" - -namespace pp { -class Transport_Dev; -} // namespace pp - -class TestTransport : public TestCase { - public: - explicit TestTransport(TestingInstance* instance) - : TestCase(instance), - transport1_(NULL), - transport2_(NULL) { - } - virtual ~TestTransport(); - - - // TestCase implementation. - virtual bool Init(); - virtual void RunTests(const std::string& filter); - - private: - std::string InitTargets(PP_TransportType type); - std::string Connect(); - std::string Clean(); - - std::string TestCreate(); - std::string TestConnect(); - std::string TestSetProperty(); - std::string TestSendDataTcp(); - std::string TestSendDataUdp(); - std::string TestConnectAndCloseTcp(); - std::string TestConnectAndCloseUdp(); - - // Used by the tests that access the C API directly. - const PPB_Transport_Dev* transport_interface_; - - pp::Transport_Dev* transport1_; - pp::Transport_Dev* transport2_; -}; - -#endif // PPAPI_TESTS_TEST_TRANSPORT_H_ |