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

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

Issue 704133005: Pepper: Add support for multicast in PPB_UDPSocket API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase, initial unit tests Created 6 years, 1 month 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
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 #include <cstring> 5 #include <cstring>
6 #include <vector> 6 #include <vector>
7 7
8 #include "ppapi/cpp/module.h" 8 #include "ppapi/cpp/module.h"
9 #include "ppapi/cpp/private/net_address_private.h" 9 #include "ppapi/cpp/private/net_address_private.h"
10 #include "ppapi/cpp/private/tcp_socket_private.h" 10 #include "ppapi/cpp/private/tcp_socket_private.h"
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 init_host_port && 51 init_host_port &&
52 CheckTestingInterface() && 52 CheckTestingInterface() &&
53 EnsureRunningOverHTTP(); 53 EnsureRunningOverHTTP();
54 } 54 }
55 55
56 void TestUDPSocketPrivate::RunTests(const std::string& filter) { 56 void TestUDPSocketPrivate::RunTests(const std::string& filter) {
57 RUN_CALLBACK_TEST(TestUDPSocketPrivate, Connect, filter); 57 RUN_CALLBACK_TEST(TestUDPSocketPrivate, Connect, filter);
58 RUN_CALLBACK_TEST(TestUDPSocketPrivate, ConnectFailure, filter); 58 RUN_CALLBACK_TEST(TestUDPSocketPrivate, ConnectFailure, filter);
59 RUN_CALLBACK_TEST(TestUDPSocketPrivate, Broadcast, filter); 59 RUN_CALLBACK_TEST(TestUDPSocketPrivate, Broadcast, filter);
60 RUN_CALLBACK_TEST(TestUDPSocketPrivate, SetSocketFeatureErrors, filter); 60 RUN_CALLBACK_TEST(TestUDPSocketPrivate, SetSocketFeatureErrors, filter);
61 RUN_CALLBACK_TEST(TestUDPSocketPrivate, Multicast, filter);
61 } 62 }
62 63
63 std::string TestUDPSocketPrivate::GetLocalAddress( 64 std::string TestUDPSocketPrivate::GetLocalAddress(
64 PP_NetAddress_Private* address) { 65 PP_NetAddress_Private* address) {
65 pp::TCPSocketPrivate socket(instance_); 66 pp::TCPSocketPrivate socket(instance_);
66 TestCompletionCallback callback(instance_->pp_instance(), callback_type()); 67 TestCompletionCallback callback(instance_->pp_instance(), callback_type());
67 callback.WaitForResult( 68 callback.WaitForResult(
68 socket.Connect(host_.c_str(), port_, callback.GetCallback())); 69 socket.Connect(host_.c_str(), port_, callback.GetCallback()));
69 CHECK_CALLBACK_BEHAVIOR(callback); 70 CHECK_CALLBACK_BEHAVIOR(callback);
70 ASSERT_EQ(PP_OK, callback.result()); 71 ASSERT_EQ(PP_OK, callback.result());
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 ASSERT_SUBTEST_SUCCESS(ReadSocket(target, address, message.size(), &str)); 158 ASSERT_SUBTEST_SUCCESS(ReadSocket(target, address, message.size(), &str));
158 159
159 callback.WaitForResult(rv); 160 callback.WaitForResult(rv);
160 CHECK_CALLBACK_BEHAVIOR(callback); 161 CHECK_CALLBACK_BEHAVIOR(callback);
161 ASSERT_FALSE(callback.result() < 0); 162 ASSERT_FALSE(callback.result() < 0);
162 ASSERT_EQ(message.size(), static_cast<size_t>(callback.result())); 163 ASSERT_EQ(message.size(), static_cast<size_t>(callback.result()));
163 ASSERT_EQ(message, str); 164 ASSERT_EQ(message, str);
164 PASS(); 165 PASS();
165 } 166 }
166 167
168 std::string TestUDPSocketPrivate::SetMulticastOptions(
169 pp::UDPSocketPrivate* socket) {
170 int32_t rv = socket->SetSocketFeature(
171 PP_UDPSOCKETFEATURE_PRIVATE_MULTICAST_LOOP, pp::Var(true));
172 if (rv != PP_OK)
173 return ReportError("PPB_UDPSocket_Private::SetSocketFeature", rv);
174
175 rv = socket->SetSocketFeature(PP_UDPSOCKETFEATURE_PRIVATE_MULTICAST_TTL,
176 pp::Var(1));
177 if (rv != PP_OK)
178 return ReportError("PPB_UDPSocket_Private::SetSocketFeature", rv);
179
180 rv = socket->SetSocketFeature(PP_UDPSOCKETFEATURE_PRIVATE_MULTICAST_IF,
181 pp::Var(1));
182 if (rv != PP_OK)
183 return ReportError("PPB_UDPSocket_Private::SetSocketFeature", rv);
184
185 PASS();
186 }
187
167 std::string TestUDPSocketPrivate::TestConnect() { 188 std::string TestUDPSocketPrivate::TestConnect() {
168 pp::UDPSocketPrivate server_socket(instance_), client_socket(instance_); 189 pp::UDPSocketPrivate server_socket(instance_), client_socket(instance_);
169 PP_NetAddress_Private server_address, client_address; 190 PP_NetAddress_Private server_address, client_address;
170 191
171 ASSERT_SUBTEST_SUCCESS(LookupPortAndBindUDPSocket(&server_socket, 192 ASSERT_SUBTEST_SUCCESS(LookupPortAndBindUDPSocket(&server_socket,
172 &server_address)); 193 &server_address));
173 ASSERT_SUBTEST_SUCCESS(LookupPortAndBindUDPSocket(&client_socket, 194 ASSERT_SUBTEST_SUCCESS(LookupPortAndBindUDPSocket(&client_socket,
174 &client_address)); 195 &client_address));
175 const std::string message = "Simple message that will be sent via UDP"; 196 const std::string message = "Simple message that will be sent via UDP";
176 ASSERT_SUBTEST_SUCCESS(PassMessage(&server_socket, &client_socket, 197 ASSERT_SUBTEST_SUCCESS(PassMessage(&server_socket, &client_socket,
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 // Try to pass incorrect feature name. 270 // Try to pass incorrect feature name.
250 int32_t rv = socket.SetSocketFeature(PP_UDPSOCKETFEATURE_PRIVATE_COUNT, 271 int32_t rv = socket.SetSocketFeature(PP_UDPSOCKETFEATURE_PRIVATE_COUNT,
251 pp::Var(true)); 272 pp::Var(true));
252 ASSERT_EQ(PP_ERROR_BADARGUMENT, rv); 273 ASSERT_EQ(PP_ERROR_BADARGUMENT, rv);
253 274
254 // Try to pass incorrect feature value's type. 275 // Try to pass incorrect feature value's type.
255 rv = socket.SetSocketFeature(PP_UDPSOCKETFEATURE_PRIVATE_ADDRESS_REUSE, 276 rv = socket.SetSocketFeature(PP_UDPSOCKETFEATURE_PRIVATE_ADDRESS_REUSE,
256 pp::Var(1)); 277 pp::Var(1));
257 ASSERT_EQ(PP_ERROR_BADARGUMENT, rv); 278 ASSERT_EQ(PP_ERROR_BADARGUMENT, rv);
258 PASS(); 279 PASS();
280
ygorshenin1 2014/11/14 08:03:43 nit: remove the blank line.
etrunko 2014/11/17 17:45:10 Done.
259 } 281 }
282 std::string TestUDPSocketPrivate::TestMulticast() {
ygorshenin1 2014/11/14 08:03:43 nit: insert a blank line before #282.
etrunko 2014/11/17 17:45:10 Done.
283 pp::UDPSocketPrivate server1(instance_), server2(instance_);
ygorshenin1 2014/11/14 08:03:43 Could you please clarify why these sockets are cal
etrunko 2014/11/17 17:45:10 Oh, sorry, i submitted this test unfinished. It wa
284
285 ASSERT_SUBTEST_SUCCESS(SetMulticastOptions(&server1));
286 ASSERT_SUBTEST_SUCCESS(SetMulticastOptions(&server2));
287 PASS();
288 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698