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

Side by Side Diff: mojo/public/tests/system/core_unittest.cc

Issue 140503005: Mojo: foo_[0-9] -> foo[0-9]. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « mojo/public/tests/system/core_perftest.cc ('k') | mojo/system/core_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // This file tests the C API. 5 // This file tests the C API.
6 6
7 #include "mojo/public/system/core.h" 7 #include "mojo/public/system/core.h"
8 8
9 #include <string.h> 9 #include <string.h>
10 10
11 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
12 12
13 namespace mojo { 13 namespace mojo {
14 namespace { 14 namespace {
15 15
16 TEST(CoreTest, GetTimeTicksNow) { 16 TEST(CoreTest, GetTimeTicksNow) {
17 const MojoTimeTicks start = MojoGetTimeTicksNow(); 17 const MojoTimeTicks start = MojoGetTimeTicksNow();
18 EXPECT_NE(static_cast<MojoTimeTicks>(0), start) 18 EXPECT_NE(static_cast<MojoTimeTicks>(0), start)
19 << "MojoGetTimeTicksNow should return nonzero value"; 19 << "MojoGetTimeTicksNow should return nonzero value";
20 } 20 }
21 21
22 TEST(CoreTest, Basic) { 22 TEST(CoreTest, Basic) {
23 MojoHandle h_0; 23 MojoHandle h0;
24 MojoWaitFlags wf; 24 MojoWaitFlags wf;
25 char buffer[10] = { 0 }; 25 char buffer[10] = { 0 };
26 uint32_t buffer_size; 26 uint32_t buffer_size;
27 27
28 // The only handle that's guaranteed to be invalid is |MOJO_HANDLE_INVALID|. 28 // The only handle that's guaranteed to be invalid is |MOJO_HANDLE_INVALID|.
29 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, MojoClose(MOJO_HANDLE_INVALID)); 29 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, MojoClose(MOJO_HANDLE_INVALID));
30 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, 30 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
31 MojoWait(MOJO_HANDLE_INVALID, MOJO_WAIT_FLAG_EVERYTHING, 1000000)); 31 MojoWait(MOJO_HANDLE_INVALID, MOJO_WAIT_FLAG_EVERYTHING, 1000000));
32 h_0 = MOJO_HANDLE_INVALID; 32 h0 = MOJO_HANDLE_INVALID;
33 wf = MOJO_WAIT_FLAG_EVERYTHING; 33 wf = MOJO_WAIT_FLAG_EVERYTHING;
34 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, 34 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
35 MojoWaitMany(&h_0, &wf, 1, MOJO_DEADLINE_INDEFINITE)); 35 MojoWaitMany(&h0, &wf, 1, MOJO_DEADLINE_INDEFINITE));
36 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, 36 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
37 MojoWriteMessage(h_0, 37 MojoWriteMessage(h0,
38 buffer, 3, 38 buffer, 3,
39 NULL, 0, 39 NULL, 0,
40 MOJO_WRITE_MESSAGE_FLAG_NONE)); 40 MOJO_WRITE_MESSAGE_FLAG_NONE));
41 buffer_size = static_cast<uint32_t>(sizeof(buffer)); 41 buffer_size = static_cast<uint32_t>(sizeof(buffer));
42 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, 42 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
43 MojoReadMessage(h_0, 43 MojoReadMessage(h0,
44 buffer, &buffer_size, 44 buffer, &buffer_size,
45 NULL, NULL, 45 NULL, NULL,
46 MOJO_READ_MESSAGE_FLAG_NONE)); 46 MOJO_READ_MESSAGE_FLAG_NONE));
47 47
48 MojoHandle h_1; 48 MojoHandle h1;
49 EXPECT_EQ(MOJO_RESULT_OK, MojoCreateMessagePipe(&h_0, &h_1)); 49 EXPECT_EQ(MOJO_RESULT_OK, MojoCreateMessagePipe(&h0, &h1));
50 50
51 // Shouldn't be readable. 51 // Shouldn't be readable.
52 EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, 52 EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED,
53 MojoWait(h_0, MOJO_WAIT_FLAG_READABLE, 0)); 53 MojoWait(h0, MOJO_WAIT_FLAG_READABLE, 0));
54 54
55 // Should be writable. 55 // Should be writable.
56 EXPECT_EQ(MOJO_RESULT_OK, 56 EXPECT_EQ(MOJO_RESULT_OK,
57 MojoWait(h_0, MOJO_WAIT_FLAG_WRITABLE, 0)); 57 MojoWait(h0, MOJO_WAIT_FLAG_WRITABLE, 0));
58 58
59 // Try to read. 59 // Try to read.
60 EXPECT_EQ(MOJO_RESULT_SHOULD_WAIT, 60 EXPECT_EQ(MOJO_RESULT_SHOULD_WAIT,
61 MojoReadMessage(h_0, 61 MojoReadMessage(h0,
62 buffer, &buffer_size, 62 buffer, &buffer_size,
63 NULL, NULL, 63 NULL, NULL,
64 MOJO_READ_MESSAGE_FLAG_NONE)); 64 MOJO_READ_MESSAGE_FLAG_NONE));
65 65
66 // Write to |h_1|. 66 // Write to |h1|.
67 static const char hello[] = "hello"; 67 static const char hello[] = "hello";
68 memcpy(buffer, hello, sizeof(hello)); 68 memcpy(buffer, hello, sizeof(hello));
69 buffer_size = static_cast<uint32_t>(sizeof(hello)); 69 buffer_size = static_cast<uint32_t>(sizeof(hello));
70 EXPECT_EQ(MOJO_RESULT_OK, 70 EXPECT_EQ(MOJO_RESULT_OK,
71 MojoWriteMessage(h_1, 71 MojoWriteMessage(h1,
72 hello, buffer_size, 72 hello, buffer_size,
73 NULL, 0, 73 NULL, 0,
74 MOJO_WRITE_MESSAGE_FLAG_NONE)); 74 MOJO_WRITE_MESSAGE_FLAG_NONE));
75 75
76 // |h_0| should be readable. 76 // |h0| should be readable.
77 wf = MOJO_WAIT_FLAG_READABLE; 77 wf = MOJO_WAIT_FLAG_READABLE;
78 EXPECT_EQ(MOJO_RESULT_OK, 78 EXPECT_EQ(MOJO_RESULT_OK,
79 MojoWaitMany(&h_0, &wf, 1, MOJO_DEADLINE_INDEFINITE)); 79 MojoWaitMany(&h0, &wf, 1, MOJO_DEADLINE_INDEFINITE));
80 80
81 // Read from |h_0|. 81 // Read from |h0|.
82 memset(buffer, 0, sizeof(buffer)); 82 memset(buffer, 0, sizeof(buffer));
83 buffer_size = static_cast<uint32_t>(sizeof(buffer)); 83 buffer_size = static_cast<uint32_t>(sizeof(buffer));
84 EXPECT_EQ(MOJO_RESULT_OK, 84 EXPECT_EQ(MOJO_RESULT_OK,
85 MojoReadMessage(h_0, 85 MojoReadMessage(h0,
86 buffer, &buffer_size, 86 buffer, &buffer_size,
87 NULL, NULL, 87 NULL, NULL,
88 MOJO_READ_MESSAGE_FLAG_NONE)); 88 MOJO_READ_MESSAGE_FLAG_NONE));
89 EXPECT_EQ(static_cast<uint32_t>(sizeof(hello)), buffer_size); 89 EXPECT_EQ(static_cast<uint32_t>(sizeof(hello)), buffer_size);
90 EXPECT_EQ(0, memcmp(hello, buffer, sizeof(hello))); 90 EXPECT_EQ(0, memcmp(hello, buffer, sizeof(hello)));
91 91
92 // |h_0| should no longer be readable. 92 // |h0| should no longer be readable.
93 EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, 93 EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED,
94 MojoWait(h_0, MOJO_WAIT_FLAG_READABLE, 10)); 94 MojoWait(h0, MOJO_WAIT_FLAG_READABLE, 10));
95 95
96 // Close |h_0|. 96 // Close |h0|.
97 EXPECT_EQ(MOJO_RESULT_OK, MojoClose(h_0)); 97 EXPECT_EQ(MOJO_RESULT_OK, MojoClose(h0));
98 98
99 // |h_1| should no longer be readable or writable. 99 // |h1| should no longer be readable or writable.
100 EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION, 100 EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION,
101 MojoWait(h_1, 101 MojoWait(h1, MOJO_WAIT_FLAG_READABLE | MOJO_WAIT_FLAG_WRITABLE,
102 MOJO_WAIT_FLAG_READABLE | MOJO_WAIT_FLAG_WRITABLE,
103 1000)); 102 1000));
104 103
105 EXPECT_EQ(MOJO_RESULT_OK, MojoClose(h_1)); 104 EXPECT_EQ(MOJO_RESULT_OK, MojoClose(h1));
106 } 105 }
107 106
108 // TODO(vtl): Add multi-threaded tests. 107 // TODO(vtl): Add multi-threaded tests.
109 108
110 } // namespace 109 } // namespace
111 } // namespace mojo 110 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/public/tests/system/core_perftest.cc ('k') | mojo/system/core_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698