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

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

Issue 814543006: Move //mojo/{public, edk} underneath //third_party (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years, 11 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/public/c/system/tests/core_perftest.cc ('k') | mojo/public/c/system/tests/core_unittest_pure_c.c » ('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
deleted file mode 100644
index 2f3ef629a5727d6a86481225bdfad613748a3bf4..0000000000000000000000000000000000000000
--- a/mojo/public/c/system/tests/core_unittest.cc
+++ /dev/null
@@ -1,342 +0,0 @@
-// Copyright 2013 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 API.
-
-#include "mojo/public/c/system/core.h"
-
-#include <string.h>
-
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace mojo {
-namespace {
-
-const MojoHandleSignals kSignalReadadableWritable =
- MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE;
-
-const MojoHandleSignals kSignalAll = MOJO_HANDLE_SIGNAL_READABLE |
- MOJO_HANDLE_SIGNAL_WRITABLE |
- MOJO_HANDLE_SIGNAL_PEER_CLOSED;
-
-TEST(CoreTest, GetTimeTicksNow) {
- const MojoTimeTicks start = MojoGetTimeTicksNow();
- EXPECT_NE(static_cast<MojoTimeTicks>(0), start)
- << "MojoGetTimeTicksNow should return nonzero value";
-}
-
-// The only handle that's guaranteed to be invalid is |MOJO_HANDLE_INVALID|.
-// Tests that everything that takes a handle properly recognizes it.
-TEST(CoreTest, InvalidHandle) {
- MojoHandle h0, h1;
- MojoHandleSignals sig;
- char buffer[10] = {0};
- uint32_t buffer_size;
- void* write_pointer;
- const void* read_pointer;
-
- // Close:
- EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, MojoClose(MOJO_HANDLE_INVALID));
-
- // Wait:
- EXPECT_EQ(
- MOJO_RESULT_INVALID_ARGUMENT,
- MojoWait(MOJO_HANDLE_INVALID, ~MOJO_HANDLE_SIGNAL_NONE, 1000000, NULL));
-
- h0 = MOJO_HANDLE_INVALID;
- sig = ~MOJO_HANDLE_SIGNAL_NONE;
- EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
- MojoWaitMany(&h0, &sig, 1, MOJO_DEADLINE_INDEFINITE, NULL, NULL));
-
- // Message pipe:
- EXPECT_EQ(
- MOJO_RESULT_INVALID_ARGUMENT,
- MojoWriteMessage(h0, buffer, 3, NULL, 0, MOJO_WRITE_MESSAGE_FLAG_NONE));
- buffer_size = static_cast<uint32_t>(sizeof(buffer));
- EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
- MojoReadMessage(h0, buffer, &buffer_size, NULL, NULL,
- MOJO_READ_MESSAGE_FLAG_NONE));
-
- // Data pipe:
- buffer_size = static_cast<uint32_t>(sizeof(buffer));
- EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
- MojoWriteData(h0, buffer, &buffer_size, MOJO_WRITE_DATA_FLAG_NONE));
- write_pointer = NULL;
- EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
- MojoBeginWriteData(h0, &write_pointer, &buffer_size,
- MOJO_WRITE_DATA_FLAG_NONE));
- EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, MojoEndWriteData(h0, 1));
- buffer_size = static_cast<uint32_t>(sizeof(buffer));
- EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
- MojoReadData(h0, buffer, &buffer_size, MOJO_READ_DATA_FLAG_NONE));
- read_pointer = NULL;
- EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
- MojoBeginReadData(h0, &read_pointer, &buffer_size,
- MOJO_READ_DATA_FLAG_NONE));
- EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, MojoEndReadData(h0, 1));
-
- // Shared buffer:
- h1 = MOJO_HANDLE_INVALID;
- EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
- MojoDuplicateBufferHandle(h0, NULL, &h1));
- EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
- MojoMapBuffer(h0, 0, 1, &write_pointer, MOJO_MAP_BUFFER_FLAG_NONE));
-}
-
-TEST(CoreTest, BasicMessagePipe) {
- MojoHandle h0, h1;
- MojoHandleSignals sig;
- char buffer[10] = {0};
- uint32_t buffer_size;
-
- h0 = MOJO_HANDLE_INVALID;
- h1 = MOJO_HANDLE_INVALID;
- EXPECT_EQ(MOJO_RESULT_OK, MojoCreateMessagePipe(NULL, &h0, &h1));
- EXPECT_NE(h0, MOJO_HANDLE_INVALID);
- EXPECT_NE(h1, MOJO_HANDLE_INVALID);
-
- // Shouldn't be readable, we haven't written anything.
- MojoHandleSignalsState state;
- EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED,
- MojoWait(h0, MOJO_HANDLE_SIGNAL_READABLE, 0, &state));
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, state.satisfied_signals);
- EXPECT_EQ(kSignalAll, state.satisfiable_signals);
-
- // Should be writable.
- EXPECT_EQ(MOJO_RESULT_OK,
- MojoWait(h0, MOJO_HANDLE_SIGNAL_WRITABLE, 0, &state));
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, state.satisfied_signals);
- EXPECT_EQ(kSignalAll, state.satisfiable_signals);
-
- // Try to read.
- buffer_size = static_cast<uint32_t>(sizeof(buffer));
- EXPECT_EQ(MOJO_RESULT_SHOULD_WAIT,
- MojoReadMessage(h0, buffer, &buffer_size, NULL, NULL,
- MOJO_READ_MESSAGE_FLAG_NONE));
-
- // Write to |h1|.
- static const char kHello[] = "hello";
- buffer_size = static_cast<uint32_t>(sizeof(kHello));
- EXPECT_EQ(MOJO_RESULT_OK, MojoWriteMessage(h1, kHello, buffer_size, NULL, 0,
- MOJO_WRITE_MESSAGE_FLAG_NONE));
-
- // |h0| should be readable.
- uint32_t result_index = 1;
- MojoHandleSignalsState states[1];
- sig = MOJO_HANDLE_SIGNAL_READABLE;
- EXPECT_EQ(MOJO_RESULT_OK, MojoWaitMany(&h0, &sig, 1, MOJO_DEADLINE_INDEFINITE,
- &result_index, states));
-
- EXPECT_EQ(0u, result_index);
- EXPECT_EQ(kSignalReadadableWritable, states[0].satisfied_signals);
- EXPECT_EQ(kSignalAll, states[0].satisfiable_signals);
-
- // Read from |h0|.
- buffer_size = static_cast<uint32_t>(sizeof(buffer));
- EXPECT_EQ(MOJO_RESULT_OK, MojoReadMessage(h0, buffer, &buffer_size, NULL,
- NULL, MOJO_READ_MESSAGE_FLAG_NONE));
- EXPECT_EQ(static_cast<uint32_t>(sizeof(kHello)), buffer_size);
- EXPECT_STREQ(kHello, buffer);
-
- // |h0| should no longer be readable.
- EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED,
- MojoWait(h0, MOJO_HANDLE_SIGNAL_READABLE, 10, &state));
-
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, state.satisfied_signals);
- EXPECT_EQ(kSignalAll, state.satisfiable_signals);
-
- // Close |h0|.
- EXPECT_EQ(MOJO_RESULT_OK, MojoClose(h0));
-
- // |h1| should no longer be readable or writable.
- EXPECT_EQ(
- MOJO_RESULT_FAILED_PRECONDITION,
- MojoWait(h1, MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
- 1000, &state));
-
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, state.satisfied_signals);
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, state.satisfiable_signals);
-
- EXPECT_EQ(MOJO_RESULT_OK, MojoClose(h1));
-}
-
-// TODO(ncbray): enable these tests once NaCl supports the corresponding APIs.
-#ifdef __native_client__
-#define MAYBE_BasicDataPipe DISABLED_BasicDataPipe
-#define MAYBE_BasicSharedBuffer DISABLED_BasicSharedBuffer
-#else
-#define MAYBE_BasicDataPipe BasicDataPipe
-#define MAYBE_BasicSharedBuffer BasicSharedBuffer
-#endif
-
-TEST(CoreTest, MAYBE_BasicDataPipe) {
- MojoHandle hp, hc;
- MojoHandleSignals sig;
- char buffer[20] = {0};
- uint32_t buffer_size;
- void* write_pointer;
- const void* read_pointer;
-
- hp = MOJO_HANDLE_INVALID;
- hc = MOJO_HANDLE_INVALID;
- EXPECT_EQ(MOJO_RESULT_OK, MojoCreateDataPipe(NULL, &hp, &hc));
- EXPECT_NE(hp, MOJO_HANDLE_INVALID);
- EXPECT_NE(hc, MOJO_HANDLE_INVALID);
-
- // The consumer |hc| shouldn't be readable.
- MojoHandleSignalsState state;
- EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED,
- MojoWait(hc, MOJO_HANDLE_SIGNAL_READABLE, 0, &state));
-
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_NONE, state.satisfied_signals);
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED,
- state.satisfiable_signals);
-
- // The producer |hp| should be writable.
- EXPECT_EQ(MOJO_RESULT_OK,
- MojoWait(hp, MOJO_HANDLE_SIGNAL_WRITABLE, 0, &state));
-
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, state.satisfied_signals);
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED,
- state.satisfiable_signals);
-
- // Try to read from |hc|.
- buffer_size = static_cast<uint32_t>(sizeof(buffer));
- EXPECT_EQ(MOJO_RESULT_SHOULD_WAIT,
- MojoReadData(hc, buffer, &buffer_size, MOJO_READ_DATA_FLAG_NONE));
-
- // Try to begin a two-phase read from |hc|.
- read_pointer = NULL;
- EXPECT_EQ(MOJO_RESULT_SHOULD_WAIT,
- MojoBeginReadData(hc, &read_pointer, &buffer_size,
- MOJO_READ_DATA_FLAG_NONE));
-
- // Write to |hp|.
- static const char kHello[] = "hello ";
- // Don't include terminating null.
- buffer_size = static_cast<uint32_t>(strlen(kHello));
- EXPECT_EQ(MOJO_RESULT_OK, MojoWriteData(hp, kHello, &buffer_size,
- MOJO_WRITE_MESSAGE_FLAG_NONE));
-
- // |hc| should be(come) readable.
- uint32_t result_index = 1;
- MojoHandleSignalsState states[1];
- sig = MOJO_HANDLE_SIGNAL_READABLE;
- EXPECT_EQ(MOJO_RESULT_OK, MojoWaitMany(&hc, &sig, 1, MOJO_DEADLINE_INDEFINITE,
- &result_index, states));
-
- EXPECT_EQ(0u, result_index);
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, states[0].satisfied_signals);
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED,
- states[0].satisfiable_signals);
-
- // Do a two-phase write to |hp|.
- EXPECT_EQ(MOJO_RESULT_OK, MojoBeginWriteData(hp, &write_pointer, &buffer_size,
- MOJO_WRITE_DATA_FLAG_NONE));
- static const char kWorld[] = "world";
- ASSERT_GE(buffer_size, sizeof(kWorld));
- // Include the terminating null.
- memcpy(write_pointer, kWorld, sizeof(kWorld));
- EXPECT_EQ(MOJO_RESULT_OK,
- MojoEndWriteData(hp, static_cast<uint32_t>(sizeof(kWorld))));
-
- // Read one character from |hc|.
- memset(buffer, 0, sizeof(buffer));
- buffer_size = 1;
- EXPECT_EQ(MOJO_RESULT_OK,
- MojoReadData(hc, buffer, &buffer_size, MOJO_READ_DATA_FLAG_NONE));
-
- // Close |hp|.
- EXPECT_EQ(MOJO_RESULT_OK, MojoClose(hp));
-
- // |hc| should still be readable.
- EXPECT_EQ(MOJO_RESULT_OK,
- MojoWait(hc, MOJO_HANDLE_SIGNAL_READABLE, 0, &state));
-
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED,
- state.satisfied_signals);
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED,
- state.satisfiable_signals);
-
- // Do a two-phase read from |hc|.
- read_pointer = NULL;
- EXPECT_EQ(MOJO_RESULT_OK, MojoBeginReadData(hc, &read_pointer, &buffer_size,
- MOJO_READ_DATA_FLAG_NONE));
- ASSERT_LE(buffer_size, sizeof(buffer) - 1);
- memcpy(&buffer[1], read_pointer, buffer_size);
- EXPECT_EQ(MOJO_RESULT_OK, MojoEndReadData(hc, buffer_size));
- EXPECT_STREQ("hello world", buffer);
-
- // |hc| should no longer be readable.
- EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION,
- MojoWait(hc, MOJO_HANDLE_SIGNAL_READABLE, 1000, &state));
-
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, state.satisfied_signals);
- EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, state.satisfiable_signals);
-
- EXPECT_EQ(MOJO_RESULT_OK, MojoClose(hc));
-
- // TODO(vtl): Test the other way around -- closing the consumer should make
- // the producer never-writable?
-}
-
-TEST(CoreTest, MAYBE_BasicSharedBuffer) {
- MojoHandle h0, h1;
- void* pointer;
-
- // Create a shared buffer (|h0|).
- h0 = MOJO_HANDLE_INVALID;
- EXPECT_EQ(MOJO_RESULT_OK, MojoCreateSharedBuffer(NULL, 100, &h0));
- EXPECT_NE(h0, MOJO_HANDLE_INVALID);
-
- // Map everything.
- pointer = NULL;
- 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|.
- h1 = MOJO_HANDLE_INVALID;
- EXPECT_EQ(MOJO_RESULT_OK, MojoDuplicateBufferHandle(h0, NULL, &h1));
- EXPECT_NE(h1, MOJO_HANDLE_INVALID);
-
- // 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 = NULL;
- 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));
-
- EXPECT_EQ(MOJO_RESULT_OK, MojoClose(h1));
-}
-
-// Defined in core_unittest_pure_c.c.
-extern "C" const char* MinimalCTest(void);
-
-// This checks that things actually work in C (not C++).
-TEST(CoreTest, MinimalCTest) {
- const char* failure = MinimalCTest();
- EXPECT_TRUE(failure == NULL) << failure;
-}
-
-// TODO(vtl): Add multi-threaded tests.
-
-} // namespace
-} // namespace mojo
« no previous file with comments | « mojo/public/c/system/tests/core_perftest.cc ('k') | mojo/public/c/system/tests/core_unittest_pure_c.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698