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

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

Issue 8555002: Added NaCl proxy for TCP/UDP (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Added PPAPI NaCl tests. Created 9 years 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include <string.h>
6
7 #include "ppapi/cpp/module.h"
8 #include "ppapi/tests/test_udp_socket_private_shared.h"
9 #include "ppapi/tests/test_utils.h"
10 #include "ppapi/tests/testing_instance.h"
11
12 REGISTER_TEST_CASE(UDPSocketPrivateShared);
13
14 static const char* const kSuccess = "";
15
16 bool TestUDPSocketPrivateShared::Init() {
17 tcp_socket_private_interface_ =
18 reinterpret_cast<PPB_TCPSocket_Private const*>(
19 pp::Module::Get()->GetBrowserInterface(
20 PPB_TCPSOCKET_PRIVATE_INTERFACE));
21 udp_socket_private_interface_ =
22 reinterpret_cast<PPB_UDPSocket_Private const*>(
23 pp::Module::Get()->GetBrowserInterface(
24 PPB_UDPSOCKET_PRIVATE_INTERFACE));
25 return tcp_socket_private_interface_ && udp_socket_private_interface_ &&
polina 2011/11/29 05:20:47 same as in other file
ygorshenin 2011/11/29 13:25:18 Done.
26 InitTestingInterface();
27 }
28
29 void TestUDPSocketPrivateShared::RunTests(const std::string& filter) {
30 RUN_TEST(Create, filter);
31 RUN_TEST(Connect, filter);
polina 2011/11/29 05:20:47 same as in other file
ygorshenin 2011/11/29 13:25:18 Done.
32 }
33
34 void TestUDPSocketPrivateShared::QuitMessageLoop() {
35 testing_interface_->QuitMessageLoop(instance_->pp_instance());
36 }
37
38 std::string TestUDPSocketPrivateShared::GenerateNetAddress(
39 PP_Resource* socket, PP_NetAddress_Private* address) {
40 static const char* const kServerHost = "www.google.com";
polina 2011/11/29 05:20:47 would make more sense to move these to the header
ygorshenin 2011/11/29 13:25:18 Done.
41 static const int kServerPort = 80;
42
43 *socket = tcp_socket_private_interface_->Create(instance_->pp_instance());
44 ASSERT_NE(0, *socket);
polina 2011/11/29 05:20:47 same as in other file
ygorshenin 2011/11/29 13:25:18 Done.
45
46 TestCompletionCallback callback(instance_->pp_instance(), true);
47 pp::CompletionCallback cb = (pp::CompletionCallback) callback;
polina 2011/11/29 05:20:47 same as in other file
ygorshenin 2011/11/29 13:25:18 Done.
48 ASSERT_EQ(PP_OK_COMPLETIONPENDING,
49 tcp_socket_private_interface_->Connect(*socket,
50 kServerHost, kServerPort,
51 cb.pp_completion_callback()));
52 ASSERT_EQ(PP_OK, callback.WaitForResult());
53 ASSERT_EQ(PP_TRUE,
54 tcp_socket_private_interface_->GetLocalAddress(*socket, address));
55 return kSuccess;
56 }
57
58 std::string TestUDPSocketPrivateShared::CreateAndBindUDPSocket(
polina 2011/11/29 05:20:47 same as in other file
ygorshenin 2011/11/29 13:25:18 Done.
59 const PP_NetAddress_Private *address,
60 PP_Resource *socket) {
61 *socket = udp_socket_private_interface_->Create(instance_->pp_instance());
62 ASSERT_NE(0, *socket);
63 ASSERT_TRUE(udp_socket_private_interface_->IsUDPSocket(*socket));
64
65 TestCompletionCallback callback(instance_->pp_instance(), true);
66 pp::CompletionCallback cb = (pp::CompletionCallback) callback;
67 ASSERT_EQ(PP_OK_COMPLETIONPENDING,
68 udp_socket_private_interface_->Bind(
69 *socket, address, cb.pp_completion_callback()));;
70 ASSERT_EQ(PP_OK, callback.WaitForResult());
71 return kSuccess;
72 }
73
74 std::string TestUDPSocketPrivateShared::TestCreate() {
polina 2011/11/29 05:20:47 same as in other file
ygorshenin 2011/11/29 13:25:18 Done.
75 PP_Resource udp_socket;
76 std::string error_message;
77
78 udp_socket = udp_socket_private_interface_->Create(0);
79 ASSERT_EQ(0, udp_socket);
80 udp_socket = udp_socket_private_interface_->Create(instance_->pp_instance());
81 ASSERT_NE(0, udp_socket);
82 ASSERT_TRUE(udp_socket_private_interface_->IsUDPSocket(udp_socket));
83
84 PASS();
85 }
86
87 std::string TestUDPSocketPrivateShared::TestConnect() {
88 PP_NetAddress_Private server_address, client_address;
89 PP_Resource tcp_socket_server, tcp_socket_client;
90 std::string error_message;
91
92 error_message = GenerateNetAddress(&tcp_socket_server, &server_address);
93 if (error_message != kSuccess)
polina 2011/11/29 05:20:47 same as in other file
ygorshenin 2011/11/29 13:25:18 Done.
94 return error_message;
95 error_message = GenerateNetAddress(&tcp_socket_client, &client_address);
96 if (error_message != kSuccess)
polina 2011/11/29 05:20:47 same as in other file
ygorshenin 2011/11/29 13:25:18 Done.
97 return error_message;
98
99 PP_Resource socket_server, socket_client;
100 error_message = CreateAndBindUDPSocket(&server_address, &socket_server);
101 if (error_message != kSuccess)
polina 2011/11/29 05:20:47 same as in other file
ygorshenin 2011/11/29 13:25:18 Done.
102 return error_message;
103 error_message = CreateAndBindUDPSocket(&client_address, &socket_client);
104 if (error_message != kSuccess)
polina 2011/11/29 05:20:47 same as in other file
ygorshenin 2011/11/29 13:25:18 Done.
105 return error_message;
106
107 static const char* const kMessage =
108 "Simple message that will be sent via UDP";
109 static const size_t kMessageBufferSize = 1024;
110 char message_buffer[kMessageBufferSize];
111
112 TestCompletionCallback write_callback(instance_->pp_instance(), true);
113 pp::CompletionCallback write_cb = (pp::CompletionCallback) write_callback;
114 int32_t write_rv = udp_socket_private_interface_->SendTo(
115 socket_client,
116 kMessage,
117 strlen(kMessage),
118 &server_address,
119 write_cb.pp_completion_callback());
120 ASSERT_EQ(PP_OK_COMPLETIONPENDING, write_rv);
polina 2011/11/29 05:20:47 same as in other file
ygorshenin 2011/11/29 13:25:18 Done.
121
122 TestCompletionCallback read_callback(instance_->pp_instance(), true);
123 pp::CompletionCallback read_cb = (pp::CompletionCallback) read_callback;
124 int32_t read_rv = udp_socket_private_interface_->RecvFrom(
125 socket_server,
126 message_buffer,
127 strlen(kMessage),
128 read_cb.pp_completion_callback());
129 ASSERT_EQ(PP_OK_COMPLETIONPENDING, read_rv);
130
131 read_rv = read_callback.WaitForResult();
132 ASSERT_TRUE(0 <= read_rv);
133 ASSERT_EQ(strlen(kMessage), static_cast<size_t>(read_rv));
134 write_rv = write_callback.WaitForResult();
135 ASSERT_TRUE(0 <= write_rv);
136 ASSERT_EQ(strlen(kMessage), static_cast<size_t>(write_rv));
137
138 ASSERT_EQ(0, strncmp(kMessage, message_buffer, strlen(kMessage)));
139
140 udp_socket_private_interface_->Close(socket_server);
141 udp_socket_private_interface_->Close(socket_client);
142
143 tcp_socket_private_interface_->Disconnect(tcp_socket_server);
144 tcp_socket_private_interface_->Disconnect(tcp_socket_client);
145
146 PASS();
147 }
OLDNEW
« ppapi/tests/test_udp_socket_private_shared.h ('K') | « ppapi/tests/test_udp_socket_private_shared.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698