| // Copyright 2018 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. |
| |
| #include "mojo/public/c/system/core.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| |
| namespace { |
| |
| TEST(MojoCoreTest, SanityCheck) { |
| // Exercises some APIs against the mojo_core library and expects them to work |
| // as intended. |
| |
| MojoHandle a, b; |
| EXPECT_EQ(MOJO_RESULT_OK, MojoCreateMessagePipe(nullptr, &a, &b)); |
| |
| MojoMessageHandle m; |
| EXPECT_EQ(MOJO_RESULT_OK, MojoCreateMessage(nullptr, &m)); |
| EXPECT_EQ(MOJO_RESULT_OK, |
| MojoSetMessageContext(m, 42, nullptr, nullptr, nullptr)); |
| EXPECT_EQ(MOJO_RESULT_OK, MojoWriteMessage(a, m, nullptr)); |
| m = MOJO_MESSAGE_HANDLE_INVALID; |
| |
| MojoHandleSignalsState state; |
| EXPECT_EQ(MOJO_RESULT_OK, MojoQueryHandleSignalsState(b, &state)); |
| EXPECT_TRUE(state.satisfied_signals & MOJO_HANDLE_SIGNAL_READABLE); |
| |
| EXPECT_EQ(MOJO_RESULT_OK, MojoReadMessage(b, nullptr, &m)); |
| |
| uintptr_t context = 0; |
| EXPECT_EQ(MOJO_RESULT_OK, MojoGetMessageContext(m, nullptr, &context)); |
| EXPECT_EQ(42u, context); |
| |
| EXPECT_EQ(MOJO_RESULT_OK, MojoDestroyMessage(m)); |
| EXPECT_EQ(MOJO_RESULT_OK, MojoClose(b)); |
| EXPECT_EQ(MOJO_RESULT_OK, MojoClose(a)); |
| } |
| |
| } // namespace |