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

Unified Diff: mojo/public/c/system/tests/core_unittest.cc

Issue 1993283002: Add thunks for MojoGetRights(), etc. (Closed) Base URL: https://github.com/domokit/mojo.git@work795_core_get_rights
Patch Set: I'm an idiot Created 4 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mojo/nacl/sfi/nacl_bindings_generator/interface.py ('k') | mojo/public/platform/nacl/libmojo.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/public/c/system/tests/core_unittest.cc
diff --git a/mojo/public/c/system/tests/core_unittest.cc b/mojo/public/c/system/tests/core_unittest.cc
index b8667fd80faa6047e5aa2d30bc297843e3e41cac..4e3686048511dafe62c6e7a3dbe888786de4cd82 100644
--- a/mojo/public/c/system/tests/core_unittest.cc
+++ b/mojo/public/c/system/tests/core_unittest.cc
@@ -24,6 +24,22 @@ const char* MinimalCppTest();
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(CoreTest, GetTimeTicksNow) {
const MojoTimeTicks start = MojoGetTimeTicksNow();
EXPECT_NE(static_cast<MojoTimeTicks>(0), start)
@@ -42,6 +58,11 @@ TEST(CoreTest, InvalidHandle) {
// Close:
EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, MojoClose(MOJO_HANDLE_INVALID));
+ // GetRights:
+ MojoHandleRights rights = MOJO_HANDLE_RIGHT_NONE;
+ EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
+ MojoGetRights(MOJO_HANDLE_INVALID, &rights));
+
// Wait:
EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
MojoWait(MOJO_HANDLE_INVALID, ~MOJO_HANDLE_SIGNAL_NONE, 1000000u,
@@ -129,6 +150,15 @@ TEST(CoreTest, BasicMessagePipe) {
EXPECT_EQ(MOJO_RESULT_OK, MojoCreateMessagePipe(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, MojoGetRights(h0, &rights));
+ EXPECT_EQ(kDefaultMessagePipeHandleRights, rights);
+ rights = MOJO_HANDLE_RIGHT_NONE;
+ EXPECT_EQ(MOJO_RESULT_OK, MojoGetRights(h1, &rights));
+ EXPECT_EQ(kDefaultMessagePipeHandleRights, rights);
// Shouldn't be readable, we haven't written anything.
MojoHandleSignalsState state;
@@ -225,6 +255,15 @@ TEST(CoreTest, MAYBE_BasicDataPipe) {
EXPECT_EQ(MOJO_RESULT_OK, MojoCreateDataPipe(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, MojoGetRights(hp, &rights));
+ EXPECT_EQ(kDefaultDataPipeProducerHandleRights, rights);
+ rights = MOJO_HANDLE_RIGHT_NONE;
+ EXPECT_EQ(MOJO_RESULT_OK, MojoGetRights(hc, &rights));
+ EXPECT_EQ(kDefaultDataPipeConsumerHandleRights, rights);
// The consumer |hc| shouldn't be readable.
MojoHandleSignalsState state;
@@ -583,6 +622,11 @@ TEST(CoreTest, MAYBE_BasicSharedBuffer) {
EXPECT_EQ(MOJO_RESULT_OK, MojoCreateSharedBuffer(nullptr, 100, &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, MojoGetRights(h0, &rights));
+ EXPECT_EQ(kDefaultSharedBufferHandleRights, rights);
+
// Check information about the buffer from |h0|.
MojoBufferInformation info = {};
static const uint32_t kInfoSize = static_cast<uint32_t>(sizeof(info));
@@ -603,6 +647,11 @@ TEST(CoreTest, MAYBE_BasicSharedBuffer) {
EXPECT_EQ(MOJO_RESULT_OK, MojoDuplicateBufferHandle(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, MojoGetRights(h1, &rights));
+ EXPECT_EQ(kDefaultSharedBufferHandleRights, rights);
+
// Check information about the buffer from |h1|.
info = MojoBufferInformation();
EXPECT_EQ(MOJO_RESULT_OK, MojoGetBufferInformation(h1, &info, kInfoSize));
« no previous file with comments | « mojo/nacl/sfi/nacl_bindings_generator/interface.py ('k') | mojo/public/platform/nacl/libmojo.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698