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 "mojo/public/c/system/core.h" | 7 #include "mojo/public/c/system/core.h" |
8 | 8 |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 #include <string.h> | 10 #include <string.h> |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
149 // |h0| should no longer be readable. | 149 // |h0| should no longer be readable. |
150 EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, | 150 EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, |
151 MojoWait(h0, MOJO_HANDLE_SIGNAL_READABLE, 10, &state)); | 151 MojoWait(h0, MOJO_HANDLE_SIGNAL_READABLE, 10, &state)); |
152 | 152 |
153 EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, state.satisfied_signals); | 153 EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, state.satisfied_signals); |
154 EXPECT_EQ(kSignalAll, state.satisfiable_signals); | 154 EXPECT_EQ(kSignalAll, state.satisfiable_signals); |
155 | 155 |
156 // Close |h0|. | 156 // Close |h0|. |
157 EXPECT_EQ(MOJO_RESULT_OK, MojoClose(h0)); | 157 EXPECT_EQ(MOJO_RESULT_OK, MojoClose(h0)); |
158 | 158 |
| 159 EXPECT_EQ(MOJO_RESULT_OK, |
| 160 MojoWait(h1, MOJO_HANDLE_SIGNAL_PEER_CLOSED, |
| 161 MOJO_DEADLINE_INDEFINITE, &state)); |
| 162 |
159 // |h1| should no longer be readable or writable. | 163 // |h1| should no longer be readable or writable. |
160 EXPECT_EQ( | 164 EXPECT_EQ( |
161 MOJO_RESULT_FAILED_PRECONDITION, | 165 MOJO_RESULT_FAILED_PRECONDITION, |
162 MojoWait(h1, MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE, | 166 MojoWait(h1, MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE, |
163 1000, &state)); | 167 1000, &state)); |
164 | 168 |
165 EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, state.satisfied_signals); | 169 EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, state.satisfied_signals); |
166 EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, state.satisfiable_signals); | 170 EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, state.satisfiable_signals); |
167 | 171 |
168 EXPECT_EQ(MOJO_RESULT_OK, MojoClose(h1)); | 172 EXPECT_EQ(MOJO_RESULT_OK, MojoClose(h1)); |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
243 memset(buffer, 0, sizeof(buffer)); | 247 memset(buffer, 0, sizeof(buffer)); |
244 buffer_size = 1; | 248 buffer_size = 1; |
245 EXPECT_EQ(MOJO_RESULT_OK, | 249 EXPECT_EQ(MOJO_RESULT_OK, |
246 MojoReadData(hc, buffer, &buffer_size, MOJO_READ_DATA_FLAG_NONE)); | 250 MojoReadData(hc, buffer, &buffer_size, MOJO_READ_DATA_FLAG_NONE)); |
247 | 251 |
248 // Close |hp|. | 252 // Close |hp|. |
249 EXPECT_EQ(MOJO_RESULT_OK, MojoClose(hp)); | 253 EXPECT_EQ(MOJO_RESULT_OK, MojoClose(hp)); |
250 | 254 |
251 // |hc| should still be readable. | 255 // |hc| should still be readable. |
252 EXPECT_EQ(MOJO_RESULT_OK, | 256 EXPECT_EQ(MOJO_RESULT_OK, |
253 MojoWait(hc, MOJO_HANDLE_SIGNAL_READABLE, 0, &state)); | 257 MojoWait(hc, MOJO_HANDLE_SIGNAL_PEER_CLOSED, |
| 258 MOJO_DEADLINE_INDEFINITE, &state)); |
254 | 259 |
255 EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED, | 260 EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED, |
256 state.satisfied_signals); | 261 state.satisfied_signals); |
257 EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED, | 262 EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED, |
258 state.satisfiable_signals); | 263 state.satisfiable_signals); |
259 | 264 |
260 // Do a two-phase read from |hc|. | 265 // Do a two-phase read from |hc|. |
261 read_pointer = nullptr; | 266 read_pointer = nullptr; |
262 EXPECT_EQ(MOJO_RESULT_OK, MojoBeginReadData(hc, &read_pointer, &buffer_size, | 267 EXPECT_EQ(MOJO_RESULT_OK, MojoBeginReadData(hc, &read_pointer, &buffer_size, |
263 MOJO_READ_DATA_FLAG_NONE)); | 268 MOJO_READ_DATA_FLAG_NONE)); |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
331 // This checks that things actually work in C (not C++). | 336 // This checks that things actually work in C (not C++). |
332 TEST(CoreTest, MinimalCTest) { | 337 TEST(CoreTest, MinimalCTest) { |
333 const char* failure = MinimalCTest(); | 338 const char* failure = MinimalCTest(); |
334 EXPECT_FALSE(failure) << failure; | 339 EXPECT_FALSE(failure) << failure; |
335 } | 340 } |
336 | 341 |
337 // TODO(vtl): Add multi-threaded tests. | 342 // TODO(vtl): Add multi-threaded tests. |
338 | 343 |
339 } // namespace | 344 } // namespace |
340 } // namespace mojo | 345 } // namespace mojo |
OLD | NEW |