Index: mojo/public/platform/native/system_impl_private_unittest.cc |
diff --git a/mojo/public/platform/native/system_impl_private_unittest.cc b/mojo/public/platform/native/system_impl_private_unittest.cc |
index 871d055cd051b137fed1620f64cc92fdac898e49..215ccd40e7cb4d8fc5fbbebe48039830088818fd 100644 |
--- a/mojo/public/platform/native/system_impl_private_unittest.cc |
+++ b/mojo/public/platform/native/system_impl_private_unittest.cc |
@@ -12,6 +12,22 @@ |
namespace mojo { |
namespace { |
+const MojoHandleRights kDefaultMessagePipeHandleRights = |
+ MOJO_HANDLE_RIGHT_TRANSFER | MOJO_HANDLE_RIGHT_READ | |
+ MOJO_HANDLE_RIGHT_WRITE | MOJO_HANDLE_RIGHT_GET_OPTIONS | |
+ MOJO_HANDLE_RIGHT_SET_OPTIONS; |
+const MojoHandleRights kDefaultDataPipeProducerHandleRights = |
+ MOJO_HANDLE_RIGHT_TRANSFER | MOJO_HANDLE_RIGHT_WRITE | |
+ MOJO_HANDLE_RIGHT_GET_OPTIONS | MOJO_HANDLE_RIGHT_SET_OPTIONS; |
+const MojoHandleRights kDefaultDataPipeConsumerHandleRights = |
+ MOJO_HANDLE_RIGHT_TRANSFER | MOJO_HANDLE_RIGHT_READ | |
+ MOJO_HANDLE_RIGHT_GET_OPTIONS | MOJO_HANDLE_RIGHT_SET_OPTIONS; |
+const MojoHandleRights kDefaultSharedBufferHandleRights = |
+ MOJO_HANDLE_RIGHT_DUPLICATE | MOJO_HANDLE_RIGHT_TRANSFER | |
+ MOJO_HANDLE_RIGHT_GET_OPTIONS | MOJO_HANDLE_RIGHT_SET_OPTIONS | |
+ MOJO_HANDLE_RIGHT_MAP_READABLE | MOJO_HANDLE_RIGHT_MAP_WRITABLE | |
+ MOJO_HANDLE_RIGHT_MAP_EXECUTABLE; |
+ |
TEST(SystemImplTest, GetTimeTicksNow) { |
MojoSystemImpl system = MojoSystemImplCreateImpl(); |
const MojoTimeTicks start = MojoSystemImplGetTimeTicksNow(system); |
@@ -37,6 +53,15 @@ TEST(SystemImplTest, BasicMessagePipe) { |
MojoSystemImplCreateMessagePipe(sys0, nullptr, &h0, &h1)); |
EXPECT_NE(h0, MOJO_HANDLE_INVALID); |
EXPECT_NE(h1, MOJO_HANDLE_INVALID); |
+ EXPECT_NE(h0, h1); |
+ |
+ // Both handles should have the correct rights. |
+ MojoHandleRights rights = MOJO_HANDLE_RIGHT_NONE; |
+ EXPECT_EQ(MOJO_RESULT_OK, MojoSystemImplGetRights(sys0, h0, &rights)); |
+ EXPECT_EQ(kDefaultMessagePipeHandleRights, rights); |
+ rights = MOJO_HANDLE_RIGHT_NONE; |
+ EXPECT_EQ(MOJO_RESULT_OK, MojoSystemImplGetRights(sys0, h1, &rights)); |
+ EXPECT_EQ(kDefaultMessagePipeHandleRights, rights); |
// Move the other end of the pipe to a different SystemImpl. |
EXPECT_EQ(MOJO_RESULT_OK, MojoSystemImplTransferHandle(sys0, h1, sys1, &h1)); |
@@ -147,6 +172,15 @@ TEST(SystemImplTest, BasicDataPipe) { |
MojoSystemImplCreateDataPipe(sys0, nullptr, &hp, &hc)); |
EXPECT_NE(hp, MOJO_HANDLE_INVALID); |
EXPECT_NE(hc, MOJO_HANDLE_INVALID); |
+ EXPECT_NE(hp, hc); |
+ |
+ // Both handles should have the correct rights. |
+ MojoHandleRights rights = MOJO_HANDLE_RIGHT_NONE; |
+ EXPECT_EQ(MOJO_RESULT_OK, MojoSystemImplGetRights(sys0, hp, &rights)); |
+ EXPECT_EQ(kDefaultDataPipeProducerHandleRights, rights); |
+ rights = MOJO_HANDLE_RIGHT_NONE; |
+ EXPECT_EQ(MOJO_RESULT_OK, MojoSystemImplGetRights(sys0, hc, &rights)); |
+ EXPECT_EQ(kDefaultDataPipeConsumerHandleRights, rights); |
// Move the other end of the pipe to a different SystemImpl. |
EXPECT_EQ(MOJO_RESULT_OK, MojoSystemImplTransferHandle(sys0, hc, sys1, &hc)); |
@@ -574,6 +608,11 @@ TEST(SystemImplTest, BasicSharedBuffer) { |
MojoSystemImplCreateSharedBuffer(sys0, nullptr, kSize, &h0)); |
EXPECT_NE(h0, MOJO_HANDLE_INVALID); |
+ // The handle should have the correct rights. |
+ MojoHandleRights rights = MOJO_HANDLE_RIGHT_NONE; |
+ EXPECT_EQ(MOJO_RESULT_OK, MojoSystemImplGetRights(sys0, h0, &rights)); |
+ EXPECT_EQ(kDefaultSharedBufferHandleRights, rights); |
+ |
// Check the buffer information. |
{ |
MojoBufferInformation info = {}; |
@@ -598,6 +637,11 @@ TEST(SystemImplTest, BasicSharedBuffer) { |
MojoSystemImplDuplicateBufferHandle(sys0, h0, nullptr, &h1)); |
EXPECT_NE(h1, MOJO_HANDLE_INVALID); |
+ // The new handle should have the correct rights. |
+ rights = MOJO_HANDLE_RIGHT_NONE; |
+ EXPECT_EQ(MOJO_RESULT_OK, MojoSystemImplGetRights(sys0, h1, &rights)); |
+ EXPECT_EQ(kDefaultSharedBufferHandleRights, rights); |
+ |
// Move the other end of the pipe to a different SystemImpl. |
EXPECT_EQ(MOJO_RESULT_OK, MojoSystemImplTransferHandle(sys0, h1, sys1, &h1)); |
EXPECT_NE(h1, MOJO_HANDLE_INVALID); |