| 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 #include "mojo/edk/system/core.h" | 5 #include "mojo/edk/system/core.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <limits> | 9 #include <limits> |
| 10 | 10 |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 151 MOJO_RESULT_FAILED_PRECONDITION, | 151 MOJO_RESULT_FAILED_PRECONDITION, |
| 152 core()->WaitMany(&h, &handle_signals, 1, MOJO_DEADLINE_INDEFINITE, | 152 core()->WaitMany(&h, &handle_signals, 1, MOJO_DEADLINE_INDEFINITE, |
| 153 &result_index, &hss)); | 153 &result_index, &hss)); |
| 154 ASSERT_EQ(9u, info.GetAddAwakableCallCount()); | 154 ASSERT_EQ(9u, info.GetAddAwakableCallCount()); |
| 155 ASSERT_EQ(0u, result_index); | 155 ASSERT_EQ(0u, result_index); |
| 156 ASSERT_EQ(0u, hss.satisfied_signals); | 156 ASSERT_EQ(0u, hss.satisfied_signals); |
| 157 ASSERT_EQ(0u, hss.satisfiable_signals); | 157 ASSERT_EQ(0u, hss.satisfiable_signals); |
| 158 | 158 |
| 159 ASSERT_EQ(0u, info.GetDtorCallCount()); | 159 ASSERT_EQ(0u, info.GetDtorCallCount()); |
| 160 ASSERT_EQ(0u, info.GetCloseCallCount()); | 160 ASSERT_EQ(0u, info.GetCloseCallCount()); |
| 161 ASSERT_EQ(0u, info.GetCancelAllAwakablesCallCount()); | |
| 162 ASSERT_EQ(MOJO_RESULT_OK, core()->Close(h)); | 161 ASSERT_EQ(MOJO_RESULT_OK, core()->Close(h)); |
| 163 ASSERT_EQ(1u, info.GetCancelAllAwakablesCallCount()); | |
| 164 ASSERT_EQ(1u, info.GetCloseCallCount()); | 162 ASSERT_EQ(1u, info.GetCloseCallCount()); |
| 165 ASSERT_EQ(1u, info.GetDtorCallCount()); | 163 ASSERT_EQ(1u, info.GetDtorCallCount()); |
| 166 | 164 |
| 167 // No awakables should ever have ever been added. | 165 // No awakables should ever have ever been added. |
| 168 ASSERT_EQ(0u, info.GetRemoveAwakableCallCount()); | 166 ASSERT_EQ(0u, info.GetRemoveAwakableCallCount()); |
| 169 } | 167 } |
| 170 | 168 |
| 171 TEST_F(CoreTest, InvalidArguments) { | 169 TEST_F(CoreTest, InvalidArguments) { |
| 172 // |Close()|: | 170 // |Close()|: |
| 173 { | 171 { |
| (...skipping 537 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 711 ASSERT_EQ(kHelloSize, num_bytes); | 709 ASSERT_EQ(kHelloSize, num_bytes); |
| 712 ASSERT_STREQ(kHello, buffer); | 710 ASSERT_STREQ(kHello, buffer); |
| 713 ASSERT_EQ(0u, num_handles); | 711 ASSERT_EQ(0u, num_handles); |
| 714 | 712 |
| 715 // Make sure that you can't pass either of the message pipe's handles over | 713 // Make sure that you can't pass either of the message pipe's handles over |
| 716 // itself. | 714 // itself. |
| 717 ASSERT_EQ(MOJO_RESULT_BUSY, | 715 ASSERT_EQ(MOJO_RESULT_BUSY, |
| 718 core()->WriteMessage(h_passing[0], kHello, kHelloSize, | 716 core()->WriteMessage(h_passing[0], kHello, kHelloSize, |
| 719 &h_passing[0], 1, | 717 &h_passing[0], 1, |
| 720 MOJO_WRITE_MESSAGE_FLAG_NONE)); | 718 MOJO_WRITE_MESSAGE_FLAG_NONE)); |
| 721 #if defined(OS_WIN) | |
| 722 if (base::win::GetVersion() >= base::win::VERSION_VISTA) { | |
| 723 #endif | |
| 724 ASSERT_EQ(MOJO_RESULT_INVALID_ARGUMENT, | 719 ASSERT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
| 725 core()->WriteMessage(h_passing[0], kHello, kHelloSize, | 720 core()->WriteMessage(h_passing[0], kHello, kHelloSize, |
| 726 &h_passing[1], 1, | 721 &h_passing[1], 1, |
| 727 MOJO_WRITE_MESSAGE_FLAG_NONE)); | 722 MOJO_WRITE_MESSAGE_FLAG_NONE)); |
| 728 #if defined(OS_WIN) | |
| 729 } | |
| 730 #endif | |
| 731 | 723 |
| 732 MojoHandle h_passed[2]; | 724 MojoHandle h_passed[2]; |
| 733 MojoCreateMessagePipeOptions options; | 725 MojoCreateMessagePipeOptions options; |
| 734 options.struct_size = sizeof(MojoCreateMessagePipeOptions); | 726 options.struct_size = sizeof(MojoCreateMessagePipeOptions); |
| 735 options.flags = MOJO_CREATE_MESSAGE_PIPE_OPTIONS_FLAG_TRANSFERABLE; | 727 options.flags = MOJO_CREATE_MESSAGE_PIPE_OPTIONS_FLAG_TRANSFERABLE; |
| 736 ASSERT_EQ(MOJO_RESULT_OK, | 728 ASSERT_EQ(MOJO_RESULT_OK, |
| 737 core()->CreateMessagePipe(&options, &h_passed[0], &h_passed[1])); | 729 core()->CreateMessagePipe(&options, &h_passed[0], &h_passed[1])); |
| 738 | 730 |
| 739 // Make sure that |h_passed[]| work properly. | 731 // Make sure that |h_passed[]| work properly. |
| 740 ASSERT_EQ(MOJO_RESULT_OK, | 732 ASSERT_EQ(MOJO_RESULT_OK, |
| (...skipping 528 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1269 ASSERT_EQ(MOJO_RESULT_BUSY, waiter.result); | 1261 ASSERT_EQ(MOJO_RESULT_BUSY, waiter.result); |
| 1270 | 1262 |
| 1271 ASSERT_EQ(MOJO_RESULT_OK, core()->Close(h)); | 1263 ASSERT_EQ(MOJO_RESULT_OK, core()->Close(h)); |
| 1272 } | 1264 } |
| 1273 | 1265 |
| 1274 // TODO(vtl): Test |DuplicateBufferHandle()| and |MapBuffer()|. | 1266 // TODO(vtl): Test |DuplicateBufferHandle()| and |MapBuffer()|. |
| 1275 | 1267 |
| 1276 } // namespace | 1268 } // namespace |
| 1277 } // namespace edk | 1269 } // namespace edk |
| 1278 } // namespace mojo | 1270 } // namespace mojo |
| OLD | NEW |