OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 <stdint.h> | 5 #include <stdint.h> |
6 #include <stdio.h> | 6 #include <stdio.h> |
7 #include <string.h> | 7 #include <string.h> |
8 | 8 |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 656 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
667 mp1->ReadMessage(1, UserPointer<void>(read_buffer), | 667 mp1->ReadMessage(1, UserPointer<void>(read_buffer), |
668 MakeUserPointer(&read_buffer_size), &read_dispatchers, | 668 MakeUserPointer(&read_buffer_size), &read_dispatchers, |
669 &read_num_dispatchers, MOJO_READ_MESSAGE_FLAG_NONE)); | 669 &read_num_dispatchers, MOJO_READ_MESSAGE_FLAG_NONE)); |
670 EXPECT_EQ(sizeof(kHello), static_cast<size_t>(read_buffer_size)); | 670 EXPECT_EQ(sizeof(kHello), static_cast<size_t>(read_buffer_size)); |
671 EXPECT_STREQ(kHello, read_buffer); | 671 EXPECT_STREQ(kHello, read_buffer); |
672 EXPECT_EQ(1u, read_dispatchers.size()); | 672 EXPECT_EQ(1u, read_dispatchers.size()); |
673 EXPECT_EQ(1u, read_num_dispatchers); | 673 EXPECT_EQ(1u, read_num_dispatchers); |
674 ASSERT_TRUE(read_dispatchers[0]); | 674 ASSERT_TRUE(read_dispatchers[0]); |
675 EXPECT_TRUE(read_dispatchers[0]->HasOneRef()); | 675 EXPECT_TRUE(read_dispatchers[0]->HasOneRef()); |
676 | 676 |
677 EXPECT_EQ(Dispatcher::kTypeMessagePipe, read_dispatchers[0]->GetType()); | 677 EXPECT_EQ(Dispatcher::Type::MESSAGE_PIPE, read_dispatchers[0]->GetType()); |
678 dispatcher = static_cast<MessagePipeDispatcher*>(read_dispatchers[0].get()); | 678 dispatcher = static_cast<MessagePipeDispatcher*>(read_dispatchers[0].get()); |
679 | 679 |
680 // Add the waiter now, before it becomes readable to avoid a race. | 680 // Add the waiter now, before it becomes readable to avoid a race. |
681 waiter.Init(); | 681 waiter.Init(); |
682 ASSERT_EQ(MOJO_RESULT_OK, | 682 ASSERT_EQ(MOJO_RESULT_OK, |
683 dispatcher->AddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE, 456, | 683 dispatcher->AddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE, 456, |
684 nullptr)); | 684 nullptr)); |
685 | 685 |
686 // Write to "local_mp", port 1. | 686 // Write to "local_mp", port 1. |
687 EXPECT_EQ( | 687 EXPECT_EQ( |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
841 mp1->ReadMessage(1, UserPointer<void>(read_buffer), | 841 mp1->ReadMessage(1, UserPointer<void>(read_buffer), |
842 MakeUserPointer(&read_buffer_size), &read_dispatchers, | 842 MakeUserPointer(&read_buffer_size), &read_dispatchers, |
843 &read_num_dispatchers, MOJO_READ_MESSAGE_FLAG_NONE)); | 843 &read_num_dispatchers, MOJO_READ_MESSAGE_FLAG_NONE)); |
844 EXPECT_EQ(sizeof(kHello), static_cast<size_t>(read_buffer_size)); | 844 EXPECT_EQ(sizeof(kHello), static_cast<size_t>(read_buffer_size)); |
845 EXPECT_STREQ(kHello, read_buffer); | 845 EXPECT_STREQ(kHello, read_buffer); |
846 EXPECT_EQ(1u, read_dispatchers.size()); | 846 EXPECT_EQ(1u, read_dispatchers.size()); |
847 EXPECT_EQ(1u, read_num_dispatchers); | 847 EXPECT_EQ(1u, read_num_dispatchers); |
848 ASSERT_TRUE(read_dispatchers[0]); | 848 ASSERT_TRUE(read_dispatchers[0]); |
849 EXPECT_TRUE(read_dispatchers[0]->HasOneRef()); | 849 EXPECT_TRUE(read_dispatchers[0]->HasOneRef()); |
850 | 850 |
851 EXPECT_EQ(Dispatcher::kTypeMessagePipe, read_dispatchers[0]->GetType()); | 851 EXPECT_EQ(Dispatcher::Type::MESSAGE_PIPE, read_dispatchers[0]->GetType()); |
852 dispatcher = static_cast<MessagePipeDispatcher*>(read_dispatchers[0].get()); | 852 dispatcher = static_cast<MessagePipeDispatcher*>(read_dispatchers[0].get()); |
853 | 853 |
854 // |dispatcher| should already be readable and not writable. | 854 // |dispatcher| should already be readable and not writable. |
855 hss = dispatcher->GetHandleSignalsState(); | 855 hss = dispatcher->GetHandleSignalsState(); |
856 EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED, | 856 EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED, |
857 hss.satisfied_signals); | 857 hss.satisfied_signals); |
858 EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED, | 858 EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED, |
859 hss.satisfiable_signals); | 859 hss.satisfiable_signals); |
860 // So read from it. | 860 // So read from it. |
861 memset(read_buffer, 0, sizeof(read_buffer)); | 861 memset(read_buffer, 0, sizeof(read_buffer)); |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
975 mp1->ReadMessage(1, UserPointer<void>(read_buffer), | 975 mp1->ReadMessage(1, UserPointer<void>(read_buffer), |
976 MakeUserPointer(&read_buffer_size), &read_dispatchers, | 976 MakeUserPointer(&read_buffer_size), &read_dispatchers, |
977 &read_num_dispatchers, MOJO_READ_MESSAGE_FLAG_NONE)); | 977 &read_num_dispatchers, MOJO_READ_MESSAGE_FLAG_NONE)); |
978 EXPECT_EQ(sizeof(kHello), static_cast<size_t>(read_buffer_size)); | 978 EXPECT_EQ(sizeof(kHello), static_cast<size_t>(read_buffer_size)); |
979 EXPECT_STREQ(kHello, read_buffer); | 979 EXPECT_STREQ(kHello, read_buffer); |
980 EXPECT_EQ(1u, read_dispatchers.size()); | 980 EXPECT_EQ(1u, read_dispatchers.size()); |
981 EXPECT_EQ(1u, read_num_dispatchers); | 981 EXPECT_EQ(1u, read_num_dispatchers); |
982 ASSERT_TRUE(read_dispatchers[0]); | 982 ASSERT_TRUE(read_dispatchers[0]); |
983 EXPECT_TRUE(read_dispatchers[0]->HasOneRef()); | 983 EXPECT_TRUE(read_dispatchers[0]->HasOneRef()); |
984 | 984 |
985 EXPECT_EQ(Dispatcher::kTypeSharedBuffer, read_dispatchers[0]->GetType()); | 985 EXPECT_EQ(Dispatcher::Type::SHARED_BUFFER, read_dispatchers[0]->GetType()); |
986 dispatcher = static_cast<SharedBufferDispatcher*>(read_dispatchers[0].get()); | 986 dispatcher = static_cast<SharedBufferDispatcher*>(read_dispatchers[0].get()); |
987 | 987 |
988 // Make another mapping. | 988 // Make another mapping. |
989 scoped_ptr<embedder::PlatformSharedBufferMapping> mapping1; | 989 scoped_ptr<embedder::PlatformSharedBufferMapping> mapping1; |
990 EXPECT_EQ(MOJO_RESULT_OK, dispatcher->MapBuffer( | 990 EXPECT_EQ(MOJO_RESULT_OK, dispatcher->MapBuffer( |
991 0, 100, MOJO_MAP_BUFFER_FLAG_NONE, &mapping1)); | 991 0, 100, MOJO_MAP_BUFFER_FLAG_NONE, &mapping1)); |
992 ASSERT_TRUE(mapping1); | 992 ASSERT_TRUE(mapping1); |
993 ASSERT_TRUE(mapping1->GetBase()); | 993 ASSERT_TRUE(mapping1->GetBase()); |
994 ASSERT_EQ(100u, mapping1->GetLength()); | 994 ASSERT_EQ(100u, mapping1->GetLength()); |
995 EXPECT_NE(mapping1->GetBase(), mapping0->GetBase()); | 995 EXPECT_NE(mapping1->GetBase(), mapping0->GetBase()); |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1094 mp1->ReadMessage(1, UserPointer<void>(read_buffer), | 1094 mp1->ReadMessage(1, UserPointer<void>(read_buffer), |
1095 MakeUserPointer(&read_buffer_size), &read_dispatchers, | 1095 MakeUserPointer(&read_buffer_size), &read_dispatchers, |
1096 &read_num_dispatchers, MOJO_READ_MESSAGE_FLAG_NONE)); | 1096 &read_num_dispatchers, MOJO_READ_MESSAGE_FLAG_NONE)); |
1097 EXPECT_EQ(sizeof(kWorld), static_cast<size_t>(read_buffer_size)); | 1097 EXPECT_EQ(sizeof(kWorld), static_cast<size_t>(read_buffer_size)); |
1098 EXPECT_STREQ(kWorld, read_buffer); | 1098 EXPECT_STREQ(kWorld, read_buffer); |
1099 EXPECT_EQ(1u, read_dispatchers.size()); | 1099 EXPECT_EQ(1u, read_dispatchers.size()); |
1100 EXPECT_EQ(1u, read_num_dispatchers); | 1100 EXPECT_EQ(1u, read_num_dispatchers); |
1101 ASSERT_TRUE(read_dispatchers[0]); | 1101 ASSERT_TRUE(read_dispatchers[0]); |
1102 EXPECT_TRUE(read_dispatchers[0]->HasOneRef()); | 1102 EXPECT_TRUE(read_dispatchers[0]->HasOneRef()); |
1103 | 1103 |
1104 EXPECT_EQ(Dispatcher::kTypePlatformHandle, read_dispatchers[0]->GetType()); | 1104 EXPECT_EQ(Dispatcher::Type::PLATFORM_HANDLE, read_dispatchers[0]->GetType()); |
1105 dispatcher = | 1105 dispatcher = |
1106 static_cast<PlatformHandleDispatcher*>(read_dispatchers[0].get()); | 1106 static_cast<PlatformHandleDispatcher*>(read_dispatchers[0].get()); |
1107 | 1107 |
1108 embedder::ScopedPlatformHandle h = dispatcher->PassPlatformHandle().Pass(); | 1108 embedder::ScopedPlatformHandle h = dispatcher->PassPlatformHandle().Pass(); |
1109 EXPECT_TRUE(h.is_valid()); | 1109 EXPECT_TRUE(h.is_valid()); |
1110 | 1110 |
1111 fp = mojo::test::FILEFromPlatformHandle(h.Pass(), "rb").Pass(); | 1111 fp = mojo::test::FILEFromPlatformHandle(h.Pass(), "rb").Pass(); |
1112 EXPECT_FALSE(h.is_valid()); | 1112 EXPECT_FALSE(h.is_valid()); |
1113 EXPECT_TRUE(fp); | 1113 EXPECT_TRUE(fp); |
1114 | 1114 |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1231 mp1->ReadMessage(1, UserPointer<void>(read_buffer), | 1231 mp1->ReadMessage(1, UserPointer<void>(read_buffer), |
1232 MakeUserPointer(&read_buffer_size), &read_dispatchers, | 1232 MakeUserPointer(&read_buffer_size), &read_dispatchers, |
1233 &read_num_dispatchers, MOJO_READ_MESSAGE_FLAG_NONE)); | 1233 &read_num_dispatchers, MOJO_READ_MESSAGE_FLAG_NONE)); |
1234 EXPECT_EQ(sizeof(kHello), static_cast<size_t>(read_buffer_size)); | 1234 EXPECT_EQ(sizeof(kHello), static_cast<size_t>(read_buffer_size)); |
1235 EXPECT_STREQ(kHello, read_buffer); | 1235 EXPECT_STREQ(kHello, read_buffer); |
1236 EXPECT_EQ(1u, read_dispatchers.size()); | 1236 EXPECT_EQ(1u, read_dispatchers.size()); |
1237 EXPECT_EQ(1u, read_num_dispatchers); | 1237 EXPECT_EQ(1u, read_num_dispatchers); |
1238 ASSERT_TRUE(read_dispatchers[0]); | 1238 ASSERT_TRUE(read_dispatchers[0]); |
1239 EXPECT_TRUE(read_dispatchers[0]->HasOneRef()); | 1239 EXPECT_TRUE(read_dispatchers[0]->HasOneRef()); |
1240 | 1240 |
1241 EXPECT_EQ(Dispatcher::kTypeMessagePipe, read_dispatchers[0]->GetType()); | 1241 EXPECT_EQ(Dispatcher::Type::MESSAGE_PIPE, read_dispatchers[0]->GetType()); |
1242 dispatcher = static_cast<MessagePipeDispatcher*>(read_dispatchers[0].get()); | 1242 dispatcher = static_cast<MessagePipeDispatcher*>(read_dispatchers[0].get()); |
1243 read_dispatchers.clear(); | 1243 read_dispatchers.clear(); |
1244 | 1244 |
1245 // Now pass it back. | 1245 // Now pass it back. |
1246 | 1246 |
1247 // Prepare to wait on MP 0, port 0. (Add the waiter now. Otherwise, if we do | 1247 // Prepare to wait on MP 0, port 0. (Add the waiter now. Otherwise, if we do |
1248 // it later, it might already be readable.) | 1248 // it later, it might already be readable.) |
1249 waiter.Init(); | 1249 waiter.Init(); |
1250 ASSERT_EQ( | 1250 ASSERT_EQ( |
1251 MOJO_RESULT_OK, | 1251 MOJO_RESULT_OK, |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1288 mp0->ReadMessage(0, UserPointer<void>(read_buffer), | 1288 mp0->ReadMessage(0, UserPointer<void>(read_buffer), |
1289 MakeUserPointer(&read_buffer_size), &read_dispatchers, | 1289 MakeUserPointer(&read_buffer_size), &read_dispatchers, |
1290 &read_num_dispatchers, MOJO_READ_MESSAGE_FLAG_NONE)); | 1290 &read_num_dispatchers, MOJO_READ_MESSAGE_FLAG_NONE)); |
1291 EXPECT_EQ(sizeof(kWorld), static_cast<size_t>(read_buffer_size)); | 1291 EXPECT_EQ(sizeof(kWorld), static_cast<size_t>(read_buffer_size)); |
1292 EXPECT_STREQ(kWorld, read_buffer); | 1292 EXPECT_STREQ(kWorld, read_buffer); |
1293 EXPECT_EQ(1u, read_dispatchers.size()); | 1293 EXPECT_EQ(1u, read_dispatchers.size()); |
1294 EXPECT_EQ(1u, read_num_dispatchers); | 1294 EXPECT_EQ(1u, read_num_dispatchers); |
1295 ASSERT_TRUE(read_dispatchers[0]); | 1295 ASSERT_TRUE(read_dispatchers[0]); |
1296 EXPECT_TRUE(read_dispatchers[0]->HasOneRef()); | 1296 EXPECT_TRUE(read_dispatchers[0]->HasOneRef()); |
1297 | 1297 |
1298 EXPECT_EQ(Dispatcher::kTypeMessagePipe, read_dispatchers[0]->GetType()); | 1298 EXPECT_EQ(Dispatcher::Type::MESSAGE_PIPE, read_dispatchers[0]->GetType()); |
1299 dispatcher = static_cast<MessagePipeDispatcher*>(read_dispatchers[0].get()); | 1299 dispatcher = static_cast<MessagePipeDispatcher*>(read_dispatchers[0].get()); |
1300 read_dispatchers.clear(); | 1300 read_dispatchers.clear(); |
1301 | 1301 |
1302 // Add the waiter now, before it becomes readable to avoid a race. | 1302 // Add the waiter now, before it becomes readable to avoid a race. |
1303 waiter.Init(); | 1303 waiter.Init(); |
1304 ASSERT_EQ(MOJO_RESULT_OK, | 1304 ASSERT_EQ(MOJO_RESULT_OK, |
1305 dispatcher->AddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE, 789, | 1305 dispatcher->AddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE, 789, |
1306 nullptr)); | 1306 nullptr)); |
1307 | 1307 |
1308 // Write to "local_mp", port 1. | 1308 // Write to "local_mp", port 1. |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1367 mp0->Close(0); | 1367 mp0->Close(0); |
1368 mp1->Close(1); | 1368 mp1->Close(1); |
1369 EXPECT_EQ(MOJO_RESULT_OK, dispatcher->Close()); | 1369 EXPECT_EQ(MOJO_RESULT_OK, dispatcher->Close()); |
1370 // Note that |local_mp|'s port 0 belong to |dispatcher|, which was closed. | 1370 // Note that |local_mp|'s port 0 belong to |dispatcher|, which was closed. |
1371 local_mp->Close(1); | 1371 local_mp->Close(1); |
1372 } | 1372 } |
1373 | 1373 |
1374 } // namespace | 1374 } // namespace |
1375 } // namespace system | 1375 } // namespace system |
1376 } // namespace mojo | 1376 } // namespace mojo |
OLD | NEW |