OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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, but using the explicit MojoSystemImpl parameter. | 5 // This file tests the C API, but using the explicit MojoSystemImpl parameter. |
6 | 6 |
7 #include <string.h> | 7 #include <string.h> |
8 | 8 |
9 #include "mojo/public/platform/native/system_impl_private.h" | 9 #include "mojo/public/platform/native/system_impl_private.h" |
10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
(...skipping 150 matching lines...) Loading... |
161 EXPECT_EQ(MOJO_HANDLE_SIGNAL_NONE, state.satisfied_signals); | 161 EXPECT_EQ(MOJO_HANDLE_SIGNAL_NONE, state.satisfied_signals); |
162 EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED | | 162 EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED | |
163 MOJO_HANDLE_SIGNAL_READ_THRESHOLD, | 163 MOJO_HANDLE_SIGNAL_READ_THRESHOLD, |
164 state.satisfiable_signals); | 164 state.satisfiable_signals); |
165 | 165 |
166 // The producer |hp| should be writable. | 166 // The producer |hp| should be writable. |
167 EXPECT_EQ( | 167 EXPECT_EQ( |
168 MOJO_RESULT_OK, | 168 MOJO_RESULT_OK, |
169 MojoSystemImplWait(sys0, hp, MOJO_HANDLE_SIGNAL_WRITABLE, 0, &state)); | 169 MojoSystemImplWait(sys0, hp, MOJO_HANDLE_SIGNAL_WRITABLE, 0, &state)); |
170 | 170 |
171 EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, state.satisfied_signals); | 171 EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD, |
172 EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED, | 172 state.satisfied_signals); |
| 173 EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED | |
| 174 MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD, |
173 state.satisfiable_signals); | 175 state.satisfiable_signals); |
174 | 176 |
175 // Try to read from |hc|. | 177 // Try to read from |hc|. |
176 buffer_size = static_cast<uint32_t>(sizeof(buffer)); | 178 buffer_size = static_cast<uint32_t>(sizeof(buffer)); |
177 EXPECT_EQ(MOJO_RESULT_SHOULD_WAIT, | 179 EXPECT_EQ(MOJO_RESULT_SHOULD_WAIT, |
178 MojoSystemImplReadData(sys1, hc, buffer, &buffer_size, | 180 MojoSystemImplReadData(sys1, hc, buffer, &buffer_size, |
179 MOJO_READ_DATA_FLAG_NONE)); | 181 MOJO_READ_DATA_FLAG_NONE)); |
180 | 182 |
181 // Try to begin a two-phase read from |hc|. | 183 // Try to begin a two-phase read from |hc|. |
182 read_pointer = nullptr; | 184 read_pointer = nullptr; |
(...skipping 77 matching lines...) Loading... |
260 EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, state.satisfiable_signals); | 262 EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, state.satisfiable_signals); |
261 | 263 |
262 EXPECT_EQ(MOJO_RESULT_OK, MojoSystemImplClose(sys1, hc)); | 264 EXPECT_EQ(MOJO_RESULT_OK, MojoSystemImplClose(sys1, hc)); |
263 | 265 |
264 // TODO(vtl): Test the other way around -- closing the consumer should make | 266 // TODO(vtl): Test the other way around -- closing the consumer should make |
265 // the producer never-writable? | 267 // the producer never-writable? |
266 | 268 |
267 // 2 SystemImpls are leaked... | 269 // 2 SystemImpls are leaked... |
268 } | 270 } |
269 | 271 |
| 272 // TODO(vtl): Once thunks are in: |
| 273 // TEST(SystemImplTest, DataPipeWriteThreshold) { ... } |
| 274 |
270 TEST(SystemImplTest, DataPipeReadThreshold) { | 275 TEST(SystemImplTest, DataPipeReadThreshold) { |
271 MojoSystemImpl sys0 = MojoSystemImplCreateImpl(); | 276 MojoSystemImpl sys0 = MojoSystemImplCreateImpl(); |
272 MojoSystemImpl sys1 = MojoSystemImplCreateImpl(); | 277 MojoSystemImpl sys1 = MojoSystemImplCreateImpl(); |
273 EXPECT_NE(sys0, sys1); | 278 EXPECT_NE(sys0, sys1); |
274 | 279 |
275 MojoHandle hp = MOJO_HANDLE_INVALID; | 280 MojoHandle hp = MOJO_HANDLE_INVALID; |
276 MojoHandle hc = MOJO_HANDLE_INVALID; | 281 MojoHandle hc = MOJO_HANDLE_INVALID; |
277 EXPECT_EQ(MOJO_RESULT_OK, | 282 EXPECT_EQ(MOJO_RESULT_OK, |
278 MojoSystemImplCreateDataPipe(sys0, nullptr, &hp, &hc)); | 283 MojoSystemImplCreateDataPipe(sys0, nullptr, &hp, &hc)); |
279 EXPECT_NE(hp, MOJO_HANDLE_INVALID); | 284 EXPECT_NE(hp, MOJO_HANDLE_INVALID); |
(...skipping 203 matching lines...) Loading... |
483 // Unmap it. | 488 // Unmap it. |
484 EXPECT_EQ(MOJO_RESULT_OK, MojoSystemImplUnmapBuffer(sys1, pointer)); | 489 EXPECT_EQ(MOJO_RESULT_OK, MojoSystemImplUnmapBuffer(sys1, pointer)); |
485 | 490 |
486 EXPECT_EQ(MOJO_RESULT_OK, MojoSystemImplClose(sys1, h1)); | 491 EXPECT_EQ(MOJO_RESULT_OK, MojoSystemImplClose(sys1, h1)); |
487 | 492 |
488 // 2 SystemImpls are leaked... | 493 // 2 SystemImpls are leaked... |
489 } | 494 } |
490 | 495 |
491 } // namespace | 496 } // namespace |
492 } // namespace mojo | 497 } // namespace mojo |
OLD | NEW |