mojo-ipcz: Driver transports
Implements the mojo-ipcz driver transport on top of a lightly tweaked
variation of each platform's existing Channel implementation in Mojo.
Bug: 1299283
Change-Id: I7e6277477cda4d23a18d950f65624ce33b8d7ce2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3810676
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Ken Rockot <rockot@google.com>
Cr-Commit-Position: refs/heads/main@{#1035255}
NOKEYCHECK=True
GitOrigin-RevId: 36d44a5766247372307a54f4ded06f8b41fcf96f
diff --git a/src/connect_test.cc b/src/connect_test.cc
index 787db90..10d4df5 100644
--- a/src/connect_test.cc
+++ b/src/connect_test.cc
@@ -189,6 +189,13 @@
std::size(kBadMessage), nullptr, 0,
IPCZ_NO_FLAGS, nullptr));
+ auto ignore_activity =
+ [](IpczHandle, const void*, size_t, const IpczDriverHandle*, size_t,
+ IpczTransportActivityFlags, const void*) { return IPCZ_RESULT_OK; };
+ EXPECT_EQ(IPCZ_RESULT_OK, GetDriver().ActivateTransport(
+ transports.theirs, IPCZ_INVALID_HANDLE,
+ ignore_activity, IPCZ_NO_FLAGS, nullptr));
+
// Now refer our imaginary other node using our end of the transport. The
// broker should reject the referral and we should eventually observe
// disconnection of our initial portal to the referred node.
@@ -198,6 +205,9 @@
IPCZ_CONNECT_NODE_SHARE_BROKER, nullptr, &p));
EXPECT_EQ(IPCZ_RESULT_OK, WaitForConditionFlags(p, IPCZ_TRAP_PEER_CLOSED));
CloseAll({b, p});
+
+ EXPECT_EQ(IPCZ_RESULT_OK, GetDriver().DeactivateTransport(
+ transports.theirs, IPCZ_NO_FLAGS, nullptr));
EXPECT_EQ(IPCZ_RESULT_OK,
GetDriver().Close(transports.theirs, IPCZ_NO_FLAGS, nullptr));
}