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

Side by Side Diff: ppapi/tests/test_udp_socket_private_shared.cc

Issue 9212047: Add GetBoundAddress to PPB_UDPSocket_Private (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: fix build error after rebase Created 8 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 | « ppapi/tests/test_udp_socket_private_shared.h ('k') | ppapi/thunk/interfaces_ppb_private.h » ('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) 2011 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 <string.h> 5 #include <string.h>
6 6
7 #include "ppapi/cpp/module.h" 7 #include "ppapi/cpp/module.h"
8 #include "ppapi/tests/test_udp_socket_private_shared.h" 8 #include "ppapi/tests/test_udp_socket_private_shared.h"
9 #include "ppapi/tests/test_utils.h" 9 #include "ppapi/tests/test_utils.h"
10 #include "ppapi/tests/testing_instance.h" 10 #include "ppapi/tests/testing_instance.h"
11 11
(...skipping 25 matching lines...) Expand all
37 37
38 return tcp_socket_private_interface_ && 38 return tcp_socket_private_interface_ &&
39 udp_socket_private_interface_ && 39 udp_socket_private_interface_ &&
40 init_host_port && 40 init_host_port &&
41 CheckTestingInterface(); 41 CheckTestingInterface();
42 } 42 }
43 43
44 void TestUDPSocketPrivateShared::RunTests(const std::string& filter) { 44 void TestUDPSocketPrivateShared::RunTests(const std::string& filter) {
45 RUN_TEST(Create, filter); 45 RUN_TEST(Create, filter);
46 RUN_TEST_FORCEASYNC_AND_NOT(Connect, filter); 46 RUN_TEST_FORCEASYNC_AND_NOT(Connect, filter);
47 RUN_TEST_FORCEASYNC_AND_NOT(ConnectFailure, filter);
47 } 48 }
48 49
49 void TestUDPSocketPrivateShared::QuitMessageLoop() { 50 void TestUDPSocketPrivateShared::QuitMessageLoop() {
50 testing_interface_->QuitMessageLoop(instance_->pp_instance()); 51 testing_interface_->QuitMessageLoop(instance_->pp_instance());
51 } 52 }
52 53
53 std::string TestUDPSocketPrivateShared::GenerateNetAddress( 54 std::string TestUDPSocketPrivateShared::GenerateNetAddress(
54 PP_Resource* socket, PP_NetAddress_Private* address) { 55 PP_Resource* socket, PP_NetAddress_Private* address) {
55 *socket = tcp_socket_private_interface_->Create(instance_->pp_instance()); 56 *socket = tcp_socket_private_interface_->Create(instance_->pp_instance());
56 if (0 == *socket) 57 if (0 == *socket)
(...skipping 11 matching lines...) Expand all
68 return ReportError("PPB_TCPSocket_Private::Connect", rv); 69 return ReportError("PPB_TCPSocket_Private::Connect", rv);
69 70
70 rv = tcp_socket_private_interface_->GetLocalAddress(*socket, address); 71 rv = tcp_socket_private_interface_->GetLocalAddress(*socket, address);
71 if (rv != PP_TRUE) 72 if (rv != PP_TRUE)
72 return ReportError("PPB_TCPSocket_Private::GetLocalAddress", rv); 73 return ReportError("PPB_TCPSocket_Private::GetLocalAddress", rv);
73 74
74 PASS(); 75 PASS();
75 } 76 }
76 77
77 std::string TestUDPSocketPrivateShared::CreateAndBindUDPSocket( 78 std::string TestUDPSocketPrivateShared::CreateAndBindUDPSocket(
78 const PP_NetAddress_Private *address, 79 PP_NetAddress_Private *address,
79 PP_Resource *socket) { 80 PP_Resource *socket) {
80 *socket = udp_socket_private_interface_->Create(instance_->pp_instance()); 81 *socket = udp_socket_private_interface_->Create(instance_->pp_instance());
81 if (0 == *socket) 82 if (0 == *socket)
82 return "PPB_UDPSocket_Private::Create failed"; 83 return "PPB_UDPSocket_Private::Create failed";
83 if (!udp_socket_private_interface_->IsUDPSocket(*socket)) 84 if (!udp_socket_private_interface_->IsUDPSocket(*socket))
84 return "PPB_UDPSocket_Private::IsUDPSocket failed"; 85 return "PPB_UDPSocket_Private::IsUDPSocket failed";
85 86
86 TestCompletionCallback callback(instance_->pp_instance(), force_async_); 87 TestCompletionCallback callback(instance_->pp_instance(), force_async_);
87 int32_t rv = udp_socket_private_interface_->Bind( 88 int32_t rv = udp_socket_private_interface_->Bind(
88 *socket, address, 89 *socket, address,
89 static_cast<pp::CompletionCallback>(callback).pp_completion_callback()); 90 static_cast<pp::CompletionCallback>(callback).pp_completion_callback());
90 91
91 if (force_async_ && rv != PP_OK_COMPLETIONPENDING) 92 if (force_async_ && rv != PP_OK_COMPLETIONPENDING)
92 return ReportError("PPB_UDPSocket_Private::Bind force_async", rv); 93 return ReportError("PPB_UDPSocket_Private::Bind force_async", rv);
93 if (rv == PP_OK_COMPLETIONPENDING) 94 if (rv == PP_OK_COMPLETIONPENDING)
94 rv = callback.WaitForResult(); 95 rv = callback.WaitForResult();
95 if (rv != PP_OK) 96 if (rv != PP_OK)
96 return ReportError("PPB_UDPSocket_Private::Bind", rv); 97 return ReportError("PPB_UDPSocket_Private::Bind", rv);
97 98
99 if (!udp_socket_private_interface_->GetBoundAddress(*socket, address))
100 return "PPB_UDPSocket_Private::GetBoundAddress: Failed";
101
98 PASS(); 102 PASS();
99 } 103 }
100 104
105 std::string TestUDPSocketPrivateShared::BindUDPSocketFailure(
106 PP_NetAddress_Private *address,
107 PP_Resource *socket) {
108 *socket = udp_socket_private_interface_->Create(instance_->pp_instance());
109 if (0 == *socket)
110 return "PPB_UDPSocket_Private::Create failed";
111 if (!udp_socket_private_interface_->IsUDPSocket(*socket))
112 return "PPB_UDPSocket_Private::IsUDPSocket failed";
113
114 TestCompletionCallback callback(instance_->pp_instance(), force_async_);
115 int32_t rv = udp_socket_private_interface_->Bind(
116 *socket, address,
117 static_cast<pp::CompletionCallback>(callback).pp_completion_callback());
118
119 if (force_async_ && rv != PP_OK_COMPLETIONPENDING)
120 return ReportError("PPB_UDPSocket_Private::Bind force_async", rv);
121 if (rv == PP_OK_COMPLETIONPENDING)
122 rv = callback.WaitForResult();
123 if (rv == PP_OK)
124 return ReportError("PPB_UDPSocket_Private::Bind", rv);
125
126 if (udp_socket_private_interface_->GetBoundAddress(*socket, address))
127 return "PPB_UDPSocket_Private::GetBoundAddress: Failed";
128
129 PASS();
130 }
131
101 std::string TestUDPSocketPrivateShared::TestCreate() { 132 std::string TestUDPSocketPrivateShared::TestCreate() {
102 PP_Resource udp_socket; 133 PP_Resource udp_socket;
103 std::string error_message; 134 std::string error_message;
104 135
105 udp_socket = udp_socket_private_interface_->Create(0); 136 udp_socket = udp_socket_private_interface_->Create(0);
106 if (0 != udp_socket) 137 if (0 != udp_socket)
107 return "PPB_UDPSocket_Private::Create returns valid socket " \ 138 return "PPB_UDPSocket_Private::Create returns valid socket " \
108 "for invalid instance"; 139 "for invalid instance";
109 140
110 udp_socket = udp_socket_private_interface_->Create(instance_->pp_instance()); 141 udp_socket = udp_socket_private_interface_->Create(instance_->pp_instance());
111 if (0 == udp_socket) 142 if (0 == udp_socket)
112 return "PPB_UDPSocket_Private::Create failed"; 143 return "PPB_UDPSocket_Private::Create failed";
113 if (!udp_socket_private_interface_->IsUDPSocket(udp_socket)) 144 if (!udp_socket_private_interface_->IsUDPSocket(udp_socket))
114 return "PPB_UDPSocket_Private::IsUDPSocket failed"; 145 return "PPB_UDPSocket_Private::IsUDPSocket failed";
115 146
116 PASS(); 147 PASS();
117 } 148 }
118 149
119 std::string TestUDPSocketPrivateShared::TestConnect() { 150 std::string TestUDPSocketPrivateShared::TestConnect() {
120 PP_NetAddress_Private server_address, client_address; 151 PP_NetAddress_Private server_address, client_address;
121 PP_Resource tcp_socket_server, tcp_socket_client; 152 PP_Resource tcp_socket_server, tcp_socket_client;
122 std::string error_message; 153 std::string error_message;
123 154
124 error_message = GenerateNetAddress(&tcp_socket_server, &server_address); 155 error_message = GenerateNetAddress(&tcp_socket_server, &server_address);
125 if (!error_message.empty()) 156 if (!error_message.empty())
126 return error_message; 157 return error_message;
127 error_message = GenerateNetAddress(&tcp_socket_client, &client_address); 158 error_message = GenerateNetAddress(&tcp_socket_client, &client_address);
128 if (error_message.empty()) 159 if (!error_message.empty())
129 return error_message; 160 return error_message;
130 161
131 PP_Resource socket_server, socket_client; 162 PP_Resource socket_server, socket_client;
132 error_message = CreateAndBindUDPSocket(&server_address, &socket_server); 163 error_message = CreateAndBindUDPSocket(&server_address, &socket_server);
133 if (error_message.empty()) 164 if (!error_message.empty())
134 return error_message; 165 return error_message;
135 error_message = CreateAndBindUDPSocket(&client_address, &socket_client); 166 error_message = CreateAndBindUDPSocket(&client_address, &socket_client);
136 if (error_message.empty()) 167 if (!error_message.empty())
137 return error_message; 168 return error_message;
138 169
139 static const char* const kMessage = 170 static const char* const kMessage =
140 "Simple message that will be sent via UDP"; 171 "Simple message that will be sent via UDP";
141 static const size_t kMessageBufferSize = 1024; 172 static const size_t kMessageBufferSize = 1024;
142 char message_buffer[kMessageBufferSize]; 173 char message_buffer[kMessageBufferSize];
143 174
144 TestCompletionCallback write_cb(instance_->pp_instance(), force_async_); 175 TestCompletionCallback write_cb(instance_->pp_instance(), force_async_);
145 int32_t write_rv = udp_socket_private_interface_->SendTo( 176 int32_t write_rv = udp_socket_private_interface_->SendTo(
146 socket_client, 177 socket_client,
(...skipping 24 matching lines...) Expand all
171 return ReportError("PPB_UDPSocket_Private::SendTo", write_rv); 202 return ReportError("PPB_UDPSocket_Private::SendTo", write_rv);
172 203
173 ASSERT_EQ(0, strncmp(kMessage, message_buffer, strlen(kMessage))); 204 ASSERT_EQ(0, strncmp(kMessage, message_buffer, strlen(kMessage)));
174 205
175 udp_socket_private_interface_->Close(socket_server); 206 udp_socket_private_interface_->Close(socket_server);
176 udp_socket_private_interface_->Close(socket_client); 207 udp_socket_private_interface_->Close(socket_client);
177 208
178 tcp_socket_private_interface_->Disconnect(tcp_socket_server); 209 tcp_socket_private_interface_->Disconnect(tcp_socket_server);
179 tcp_socket_private_interface_->Disconnect(tcp_socket_client); 210 tcp_socket_private_interface_->Disconnect(tcp_socket_client);
180 211
212 if (udp_socket_private_interface_->GetBoundAddress(
213 socket_server, &server_address))
214 return "PPB_UDPSocket_Private::GetBoundAddress: expected Failure";
215
181 PASS(); 216 PASS();
182 } 217 }
218
219 std::string TestUDPSocketPrivateShared::TestConnectFailure() {
220 std::string error_message;
221 PP_NetAddress_Private invalid_address = { 0 };
222 PP_Resource socket;
223
224 error_message = BindUDPSocketFailure(&invalid_address, &socket);
225 if (!error_message.empty())
226 return error_message;
227
228 PASS();
229 }
OLDNEW
« no previous file with comments | « ppapi/tests/test_udp_socket_private_shared.h ('k') | ppapi/thunk/interfaces_ppb_private.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698