| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 // This file tests the C API. | 5 // This file tests the C API. |
| 6 | 6 |
| 7 #include <string.h> | 7 #include <string.h> |
| 8 | 8 |
| 9 #include "mojo/public/c/system/buffer.h" | 9 #include "mojo/public/c/system/buffer.h" |
| 10 #include "mojo/public/c/system/data_pipe.h" | 10 #include "mojo/public/c/system/data_pipe.h" |
| (...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 223 EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, | 223 EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, |
| 224 MojoWait(hc, MOJO_HANDLE_SIGNAL_READABLE, 0, &state)); | 224 MojoWait(hc, MOJO_HANDLE_SIGNAL_READABLE, 0, &state)); |
| 225 EXPECT_EQ(MOJO_HANDLE_SIGNAL_NONE, state.satisfied_signals); | 225 EXPECT_EQ(MOJO_HANDLE_SIGNAL_NONE, state.satisfied_signals); |
| 226 EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED | | 226 EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED | |
| 227 MOJO_HANDLE_SIGNAL_READ_THRESHOLD, | 227 MOJO_HANDLE_SIGNAL_READ_THRESHOLD, |
| 228 state.satisfiable_signals); | 228 state.satisfiable_signals); |
| 229 | 229 |
| 230 // The producer |hp| should be writable. | 230 // The producer |hp| should be writable. |
| 231 EXPECT_EQ(MOJO_RESULT_OK, | 231 EXPECT_EQ(MOJO_RESULT_OK, |
| 232 MojoWait(hp, MOJO_HANDLE_SIGNAL_WRITABLE, 0, &state)); | 232 MojoWait(hp, MOJO_HANDLE_SIGNAL_WRITABLE, 0, &state)); |
| 233 EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, state.satisfied_signals); | 233 EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD, |
| 234 EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED, | 234 state.satisfied_signals); |
| 235 EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED | |
| 236 MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD, |
| 235 state.satisfiable_signals); | 237 state.satisfiable_signals); |
| 236 | 238 |
| 237 // Try to read from |hc|. | 239 // Try to read from |hc|. |
| 238 buffer_size = static_cast<uint32_t>(sizeof(buffer)); | 240 buffer_size = static_cast<uint32_t>(sizeof(buffer)); |
| 239 EXPECT_EQ(MOJO_RESULT_SHOULD_WAIT, | 241 EXPECT_EQ(MOJO_RESULT_SHOULD_WAIT, |
| 240 MojoReadData(hc, buffer, &buffer_size, MOJO_READ_DATA_FLAG_NONE)); | 242 MojoReadData(hc, buffer, &buffer_size, MOJO_READ_DATA_FLAG_NONE)); |
| 241 | 243 |
| 242 // Try to begin a two-phase read from |hc|. | 244 // Try to begin a two-phase read from |hc|. |
| 243 read_pointer = nullptr; | 245 read_pointer = nullptr; |
| 244 EXPECT_EQ(MOJO_RESULT_SHOULD_WAIT, | 246 EXPECT_EQ(MOJO_RESULT_SHOULD_WAIT, |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 308 MojoWait(hc, MOJO_HANDLE_SIGNAL_READABLE, 1000, &state)); | 310 MojoWait(hc, MOJO_HANDLE_SIGNAL_READABLE, 1000, &state)); |
| 309 EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, state.satisfied_signals); | 311 EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, state.satisfied_signals); |
| 310 EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, state.satisfiable_signals); | 312 EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, state.satisfiable_signals); |
| 311 | 313 |
| 312 EXPECT_EQ(MOJO_RESULT_OK, MojoClose(hc)); | 314 EXPECT_EQ(MOJO_RESULT_OK, MojoClose(hc)); |
| 313 | 315 |
| 314 // TODO(vtl): Test the other way around -- closing the consumer should make | 316 // TODO(vtl): Test the other way around -- closing the consumer should make |
| 315 // the producer never-writable? | 317 // the producer never-writable? |
| 316 } | 318 } |
| 317 | 319 |
| 320 // TODO(vtl): Once thunks are in: TEST(CoreTest, DataPipeWriteThreshold) { ... } |
| 321 |
| 318 TEST(CoreTest, DataPipeReadThreshold) { | 322 TEST(CoreTest, DataPipeReadThreshold) { |
| 319 MojoHandle hp = MOJO_HANDLE_INVALID; | 323 MojoHandle hp = MOJO_HANDLE_INVALID; |
| 320 MojoHandle hc = MOJO_HANDLE_INVALID; | 324 MojoHandle hc = MOJO_HANDLE_INVALID; |
| 321 EXPECT_EQ(MOJO_RESULT_OK, MojoCreateDataPipe(nullptr, &hp, &hc)); | 325 EXPECT_EQ(MOJO_RESULT_OK, MojoCreateDataPipe(nullptr, &hp, &hc)); |
| 322 EXPECT_NE(hp, MOJO_HANDLE_INVALID); | 326 EXPECT_NE(hp, MOJO_HANDLE_INVALID); |
| 323 EXPECT_NE(hc, MOJO_HANDLE_INVALID); | 327 EXPECT_NE(hc, MOJO_HANDLE_INVALID); |
| 328 EXPECT_NE(hc, hp); |
| 324 | 329 |
| 325 MojoDataPipeConsumerOptions copts; | 330 MojoDataPipeConsumerOptions copts; |
| 326 static const uint32_t kCoptsSize = static_cast<uint32_t>(sizeof(copts)); | 331 static const uint32_t kCoptsSize = static_cast<uint32_t>(sizeof(copts)); |
| 327 | 332 |
| 328 // Check the current read threshold; should be the default. | 333 // Check the current read threshold; should be the default. |
| 329 memset(&copts, 255, kCoptsSize); | 334 memset(&copts, 255, kCoptsSize); |
| 330 EXPECT_EQ(MOJO_RESULT_OK, | 335 EXPECT_EQ(MOJO_RESULT_OK, |
| 331 MojoGetDataPipeConsumerOptions(hc, &copts, kCoptsSize)); | 336 MojoGetDataPipeConsumerOptions(hc, &copts, kCoptsSize)); |
| 332 EXPECT_EQ(kCoptsSize, copts.struct_size); | 337 EXPECT_EQ(kCoptsSize, copts.struct_size); |
| 333 EXPECT_EQ(0u, copts.read_threshold_num_bytes); | 338 EXPECT_EQ(0u, copts.read_threshold_num_bytes); |
| (...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 503 | 508 |
| 504 TEST(CoreTest, MinimalCppTest) { | 509 TEST(CoreTest, MinimalCppTest) { |
| 505 const char* failure = MinimalCppTest(); | 510 const char* failure = MinimalCppTest(); |
| 506 EXPECT_FALSE(failure) << failure; | 511 EXPECT_FALSE(failure) << failure; |
| 507 } | 512 } |
| 508 | 513 |
| 509 // TODO(vtl): Add multi-threaded tests. | 514 // TODO(vtl): Add multi-threaded tests. |
| 510 | 515 |
| 511 } // namespace | 516 } // namespace |
| 512 } // namespace mojo | 517 } // namespace mojo |
| OLD | NEW |