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 <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 Loading... | |
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 Loading... | |
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 Loading... | |
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 } | |
OLD | NEW |