| 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 "base/sync_socket.h" | 5 #include "base/sync_socket.h" |
| 6 | 6 |
| 7 #include <stdio.h> | 7 #include <stdio.h> |
| 8 #include <sstream> | 8 #include <sstream> |
| 9 #include <string> | 9 #include <string> |
| 10 | 10 |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 159 | 159 |
| 160 base::SyncSocket* socket_; | 160 base::SyncSocket* socket_; |
| 161 IPC::Channel* chan_; | 161 IPC::Channel* chan_; |
| 162 | 162 |
| 163 DISALLOW_COPY_AND_ASSIGN(SyncSocketClientListener); | 163 DISALLOW_COPY_AND_ASSIGN(SyncSocketClientListener); |
| 164 }; | 164 }; |
| 165 | 165 |
| 166 class SyncSocketTest : public IPCTestBase { | 166 class SyncSocketTest : public IPCTestBase { |
| 167 }; | 167 }; |
| 168 | 168 |
| 169 TEST_F(SyncSocketTest, SanityTest) { | 169 #if defined(OS_ANDROID) |
| 170 #define MAYBE_SanityTest DISABLED_SanityTest |
| 171 #else |
| 172 #define MAYBE_SanityTest SanityTest |
| 173 #endif |
| 174 TEST_F(SyncSocketTest, MAYBE_SanityTest) { |
| 170 Init("SyncSocketServerClient"); | 175 Init("SyncSocketServerClient"); |
| 171 | 176 |
| 172 SyncSocketClientListener listener; | 177 SyncSocketClientListener listener; |
| 173 CreateChannel(&listener); | 178 CreateChannel(&listener); |
| 174 ASSERT_TRUE(StartClient()); | 179 ASSERT_TRUE(StartClient()); |
| 175 // Create a pair of SyncSockets. | 180 // Create a pair of SyncSockets. |
| 176 base::SyncSocket pair[2]; | 181 base::SyncSocket pair[2]; |
| 177 base::SyncSocket::CreatePair(&pair[0], &pair[1]); | 182 base::SyncSocket::CreatePair(&pair[0], &pair[1]); |
| 178 // Immediately after creation there should be no pending bytes. | 183 // Immediately after creation there should be no pending bytes. |
| 179 EXPECT_EQ(0U, pair[0].Peek()); | 184 EXPECT_EQ(0U, pair[0].Peek()); |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 241 | 246 |
| 242 // Now shut down the socket that the thread is issuing a blocking read on | 247 // Now shut down the socket that the thread is issuing a blocking read on |
| 243 // which should cause Receive to return with an error. | 248 // which should cause Receive to return with an error. |
| 244 pair[0].Shutdown(); | 249 pair[0].Shutdown(); |
| 245 | 250 |
| 246 worker.Stop(); | 251 worker.Stop(); |
| 247 | 252 |
| 248 EXPECT_EQ(0U, received); | 253 EXPECT_EQ(0U, received); |
| 249 } | 254 } |
| 250 | 255 |
| 256 #if defined(OS_ANDROID) |
| 257 #define MAYBE_BlockingReceiveTest DISABLED_BlockingReceiveTest |
| 258 #else |
| 259 #define MAYBE_BlockingReceiveTest BlockingReceiveTest |
| 260 #endif |
| 251 // Tests that read is a blocking operation. | 261 // Tests that read is a blocking operation. |
| 252 TEST_F(SyncSocketTest, BlockingReceiveTest) { | 262 TEST_F(SyncSocketTest, MAYBE_BlockingReceiveTest) { |
| 253 base::CancelableSyncSocket pair[2]; | 263 base::CancelableSyncSocket pair[2]; |
| 254 ASSERT_TRUE(base::CancelableSyncSocket::CreatePair(&pair[0], &pair[1])); | 264 ASSERT_TRUE(base::CancelableSyncSocket::CreatePair(&pair[0], &pair[1])); |
| 255 | 265 |
| 256 base::Thread worker("BlockingThread"); | 266 base::Thread worker("BlockingThread"); |
| 257 worker.Start(); | 267 worker.Start(); |
| 258 | 268 |
| 259 // Try to do a blocking read from one of the sockets on the worker thread. | 269 // Try to do a blocking read from one of the sockets on the worker thread. |
| 260 char buf[kHelloStringLength] = {0}; | 270 char buf[kHelloStringLength] = {0}; |
| 261 size_t received = 1U; // Initialize to an unexpected value. | 271 size_t received = 1U; // Initialize to an unexpected value. |
| 262 worker.task_runner()->PostTask(FROM_HERE, | 272 worker.task_runner()->PostTask(FROM_HERE, |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 301 | 311 |
| 302 // Read from another socket to free some space for a new write. | 312 // Read from another socket to free some space for a new write. |
| 303 char hello[kHelloStringLength] = {0}; | 313 char hello[kHelloStringLength] = {0}; |
| 304 pair[1].Receive(&hello[0], sizeof(hello)); | 314 pair[1].Receive(&hello[0], sizeof(hello)); |
| 305 | 315 |
| 306 // Should be able to write more data to the buffer now. | 316 // Should be able to write more data to the buffer now. |
| 307 EXPECT_EQ(kHelloStringLength, pair[0].Send(kHelloString, kHelloStringLength)); | 317 EXPECT_EQ(kHelloStringLength, pair[0].Send(kHelloString, kHelloStringLength)); |
| 308 } | 318 } |
| 309 | 319 |
| 310 } // namespace | 320 } // namespace |
| OLD | NEW |