Index: mojo/public/c/tests/system/buffer_unittest.cc |
diff --git a/mojo/public/c/tests/system/buffer_unittest.cc b/mojo/public/c/tests/system/buffer_unittest.cc |
deleted file mode 100644 |
index 2a2ed5727bc4fe5fe073dbaaab02c239f73737c0..0000000000000000000000000000000000000000 |
--- a/mojo/public/c/tests/system/buffer_unittest.cc |
+++ /dev/null |
@@ -1,132 +0,0 @@ |
-// Copyright 2016 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-// This file tests the C buffer API (the functions declared in |
-// mojo/public/c/include/mojo/system/buffer.h). |
- |
-#include <mojo/system/buffer.h> |
- |
-#include <mojo/result.h> |
-#include <mojo/system/handle.h> |
- |
-#include "gtest/gtest.h" |
- |
-namespace { |
- |
-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; |
- |
-// The only handle that's guaranteed to be invalid is |MOJO_HANDLE_INVALID|. |
-// Tests that everything that takes a handle properly recognizes it. |
-TEST(BufferTest, InvalidHandle) { |
- MojoHandle out_handle = MOJO_HANDLE_INVALID; |
- EXPECT_EQ( |
- MOJO_RESULT_INVALID_ARGUMENT, |
- MojoDuplicateBufferHandle(MOJO_HANDLE_INVALID, nullptr, &out_handle)); |
- MojoBufferInformation buffer_info = {}; |
- EXPECT_EQ( |
- MOJO_RESULT_INVALID_ARGUMENT, |
- MojoGetBufferInformation(MOJO_HANDLE_INVALID, &buffer_info, |
- static_cast<uint32_t>(sizeof(buffer_info)))); |
- void* write_pointer = nullptr; |
- EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, |
- MojoMapBuffer(MOJO_HANDLE_INVALID, 0u, 1u, &write_pointer, |
- MOJO_MAP_BUFFER_FLAG_NONE)); |
- // This isn't an "invalid handle" test, but we'll throw it in here anyway |
- // (since it involves a look-up). |
- EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, MojoUnmapBuffer(nullptr)); |
-} |
- |
-TEST(BufferTest, Basic) { |
- // Create a shared buffer (|h0|). |
- MojoHandle h0 = MOJO_HANDLE_INVALID; |
- 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)); |
- EXPECT_EQ(MOJO_RESULT_OK, MojoGetBufferInformation(h0, &info, kInfoSize)); |
- EXPECT_EQ(kInfoSize, info.struct_size); |
- EXPECT_EQ(MOJO_BUFFER_INFORMATION_FLAG_NONE, info.flags); |
- EXPECT_EQ(100u, info.num_bytes); |
- |
- // Map everything. |
- void* pointer = nullptr; |
- EXPECT_EQ(MOJO_RESULT_OK, |
- MojoMapBuffer(h0, 0, 100, &pointer, MOJO_MAP_BUFFER_FLAG_NONE)); |
- ASSERT_TRUE(pointer); |
- static_cast<char*>(pointer)[50] = 'x'; |
- |
- // Duplicate |h0| to |h1|. |
- MojoHandle h1 = MOJO_HANDLE_INVALID; |
- EXPECT_EQ(MOJO_RESULT_OK, MojoDuplicateHandle(h0, &h1)); |
- EXPECT_NE(h1, MOJO_HANDLE_INVALID); |
- EXPECT_NE(h1, h0); |
- |
- // 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)); |
- EXPECT_EQ(kInfoSize, info.struct_size); |
- EXPECT_EQ(MOJO_BUFFER_INFORMATION_FLAG_NONE, info.flags); |
- EXPECT_EQ(100u, info.num_bytes); |
- |
- // Close |h0|. |
- EXPECT_EQ(MOJO_RESULT_OK, MojoClose(h0)); |
- |
- // The mapping should still be good. |
- static_cast<char*>(pointer)[51] = 'y'; |
- |
- // Unmap it. |
- EXPECT_EQ(MOJO_RESULT_OK, MojoUnmapBuffer(pointer)); |
- |
- // Map half of |h1|. |
- pointer = nullptr; |
- EXPECT_EQ(MOJO_RESULT_OK, |
- MojoMapBuffer(h1, 50, 50, &pointer, MOJO_MAP_BUFFER_FLAG_NONE)); |
- ASSERT_TRUE(pointer); |
- |
- // It should have what we wrote. |
- EXPECT_EQ('x', static_cast<char*>(pointer)[0]); |
- EXPECT_EQ('y', static_cast<char*>(pointer)[1]); |
- |
- // Unmap it. |
- EXPECT_EQ(MOJO_RESULT_OK, MojoUnmapBuffer(pointer)); |
- |
- // Test duplication with reduced rights. |
- MojoHandle h2 = MOJO_HANDLE_INVALID; |
- EXPECT_EQ(MOJO_RESULT_OK, MojoDuplicateHandleWithReducedRights( |
- h1, MOJO_HANDLE_RIGHT_DUPLICATE, &h2)); |
- EXPECT_NE(h2, MOJO_HANDLE_INVALID); |
- EXPECT_NE(h2, h1); |
- // |h2| should have the correct rights. |
- rights = MOJO_HANDLE_RIGHT_NONE; |
- EXPECT_EQ(MOJO_RESULT_OK, MojoGetRights(h2, &rights)); |
- EXPECT_EQ(kDefaultSharedBufferHandleRights & ~MOJO_HANDLE_RIGHT_DUPLICATE, |
- rights); |
- // Trying to duplicate |h2| should fail. |
- MojoHandle h3 = MOJO_HANDLE_INVALID; |
- EXPECT_EQ(MOJO_RESULT_PERMISSION_DENIED, MojoDuplicateHandle(h2, &h3)); |
- EXPECT_EQ(MOJO_HANDLE_INVALID, h3); |
- |
- EXPECT_EQ(MOJO_RESULT_OK, MojoClose(h1)); |
- EXPECT_EQ(MOJO_RESULT_OK, MojoClose(h2)); |
-} |
- |
-// TODO(vtl): Add multi-threaded tests. |
- |
-} // namespace |