Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(740)

Side by Side Diff: mojo/edk/system/multiprocess_message_pipe_unittest.cc

Issue 2596363002: [mojo] Delete RemoteMessagePipeBootstrap (Closed)
Patch Set: rebased Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « mojo/edk/system/core.cc ('k') | mojo/edk/system/remote_message_pipe_bootstrap.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 #include <stdio.h> 7 #include <stdio.h>
8 #include <string.h> 8 #include <string.h>
9 9
10 #include <string> 10 #include <string>
(...skipping 1240 matching lines...) Expand 10 before | Expand all | Expand 10 after
1251 EXPECT_EQ("qux", ReadMessage(p)); 1251 EXPECT_EQ("qux", ReadMessage(p));
1252 1252
1253 // Expect to have peer closure signaled. 1253 // Expect to have peer closure signaled.
1254 EXPECT_EQ(MOJO_RESULT_OK, MojoWait(p, MOJO_HANDLE_SIGNAL_PEER_CLOSED, 1254 EXPECT_EQ(MOJO_RESULT_OK, MojoWait(p, MOJO_HANDLE_SIGNAL_PEER_CLOSED,
1255 MOJO_DEADLINE_INDEFINITE, nullptr)); 1255 MOJO_DEADLINE_INDEFINITE, nullptr));
1256 1256
1257 WriteMessage(h, "quit"); 1257 WriteMessage(h, "quit");
1258 END_CHILD() 1258 END_CHILD()
1259 } 1259 }
1260 1260
1261 DEFINE_TEST_CLIENT_TEST_WITH_PIPE(BootstrapMessagePipeAsyncClient,
1262 MultiprocessMessagePipeTest, parent) {
1263 // Receive one end of a platform channel from the parent.
1264 MojoHandle channel_handle;
1265 EXPECT_EQ("hi", ReadMessageWithHandles(parent, &channel_handle, 1));
1266 ScopedPlatformHandle channel;
1267 EXPECT_EQ(MOJO_RESULT_OK,
1268 edk::PassWrappedPlatformHandle(channel_handle, &channel));
1269 ASSERT_TRUE(channel.is_valid());
1270
1271 // Create a new pipe using our end of the channel.
1272 ScopedMessagePipeHandle pipe = edk::CreateMessagePipe(std::move(channel));
1273
1274 // Ensure that we can read and write on the new pipe.
1275 VerifyEcho(pipe.get().value(), "goodbye");
1276 }
1277
1278 TEST_F(MultiprocessMessagePipeTest, BootstrapMessagePipeAsync) {
1279 // Tests that new cross-process message pipes can be created synchronously
1280 // using asynchronous negotiation over an arbitrary platform channel.
1281 RUN_CHILD_ON_PIPE(BootstrapMessagePipeAsyncClient, child)
1282 // Pass one end of a platform channel to the child.
1283 PlatformChannelPair platform_channel;
1284 MojoHandle client_channel_handle;
1285 EXPECT_EQ(MOJO_RESULT_OK,
1286 CreatePlatformHandleWrapper(platform_channel.PassClientHandle(),
1287 &client_channel_handle));
1288 WriteMessageWithHandles(child, "hi", &client_channel_handle, 1);
1289
1290 // Create a new pipe using our end of the channel.
1291 ScopedMessagePipeHandle pipe =
1292 edk::CreateMessagePipe(platform_channel.PassServerHandle());
1293
1294 // Ensure that we can read and write on the new pipe.
1295 VerifyEcho(pipe.get().value(), "goodbye");
1296 END_CHILD()
1297 }
1298
1299 DEFINE_TEST_CLIENT_TEST_WITH_PIPE(MessagePipeStatusChangeInTransitClient, 1261 DEFINE_TEST_CLIENT_TEST_WITH_PIPE(MessagePipeStatusChangeInTransitClient,
1300 MultiprocessMessagePipeTest, parent) { 1262 MultiprocessMessagePipeTest, parent) {
1301 // This test verifies that peer closure is detectable through various 1263 // This test verifies that peer closure is detectable through various
1302 // mechanisms when it races with handle transfer. 1264 // mechanisms when it races with handle transfer.
1303 MojoHandle handles[4]; 1265 MojoHandle handles[4];
1304 EXPECT_EQ("o_O", ReadMessageWithHandles(parent, handles, 4)); 1266 EXPECT_EQ("o_O", ReadMessageWithHandles(parent, handles, 4));
1305 1267
1306 // Wait on handle 0 using MojoWait. 1268 // Wait on handle 0 using MojoWait.
1307 EXPECT_EQ(MOJO_RESULT_OK, MojoWait(handles[0], MOJO_HANDLE_SIGNAL_PEER_CLOSED, 1269 EXPECT_EQ(MOJO_RESULT_OK, MojoWait(handles[0], MOJO_HANDLE_SIGNAL_PEER_CLOSED,
1308 MOJO_DEADLINE_INDEFINITE, nullptr)); 1270 MOJO_DEADLINE_INDEFINITE, nullptr));
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
1421 INSTANTIATE_TEST_CASE_P( 1383 INSTANTIATE_TEST_CASE_P(
1422 , 1384 ,
1423 MultiprocessMessagePipeTestWithPeerSupport, 1385 MultiprocessMessagePipeTestWithPeerSupport,
1424 testing::Values(test::MojoTestBase::LaunchType::CHILD, 1386 testing::Values(test::MojoTestBase::LaunchType::CHILD,
1425 test::MojoTestBase::LaunchType::PEER, 1387 test::MojoTestBase::LaunchType::PEER,
1426 test::MojoTestBase::LaunchType::NAMED_CHILD, 1388 test::MojoTestBase::LaunchType::NAMED_CHILD,
1427 test::MojoTestBase::LaunchType::NAMED_PEER)); 1389 test::MojoTestBase::LaunchType::NAMED_PEER));
1428 } // namespace 1390 } // namespace
1429 } // namespace edk 1391 } // namespace edk
1430 } // namespace mojo 1392 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/edk/system/core.cc ('k') | mojo/edk/system/remote_message_pipe_bootstrap.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698