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

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

Issue 345463003: Mojo: MojoWaitFlags -> MojoHandleSignals. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 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/c/system/functions.h ('k') | mojo/public/c/system/tests/core_unittest_pure_c.c » ('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/c/system/core.h" 7 #include "mojo/public/c/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 // The only handle that's guaranteed to be invalid is |MOJO_HANDLE_INVALID|. 22 // The only handle that's guaranteed to be invalid is |MOJO_HANDLE_INVALID|.
23 // Tests that everything that takes a handle properly recognizes it. 23 // Tests that everything that takes a handle properly recognizes it.
24 TEST(CoreTest, InvalidHandle) { 24 TEST(CoreTest, InvalidHandle) {
25 MojoHandle h0, h1; 25 MojoHandle h0, h1;
26 MojoWaitFlags wf; 26 MojoHandleSignals sig;
27 char buffer[10] = { 0 }; 27 char buffer[10] = { 0 };
28 uint32_t buffer_size; 28 uint32_t buffer_size;
29 void* write_pointer; 29 void* write_pointer;
30 const void* read_pointer; 30 const void* read_pointer;
31 31
32 // Close: 32 // Close:
33 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, MojoClose(MOJO_HANDLE_INVALID)); 33 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, MojoClose(MOJO_HANDLE_INVALID));
34 34
35 // Wait: 35 // Wait:
36 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, 36 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
37 MojoWait(MOJO_HANDLE_INVALID, MOJO_WAIT_FLAG_EVERYTHING, 1000000)); 37 MojoWait(MOJO_HANDLE_INVALID, MOJO_WAIT_FLAG_EVERYTHING, 1000000));
38 h0 = MOJO_HANDLE_INVALID; 38 h0 = MOJO_HANDLE_INVALID;
39 wf = MOJO_WAIT_FLAG_EVERYTHING; 39 sig = MOJO_WAIT_FLAG_EVERYTHING;
40 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, 40 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
41 MojoWaitMany(&h0, &wf, 1, MOJO_DEADLINE_INDEFINITE)); 41 MojoWaitMany(&h0, &sig, 1, MOJO_DEADLINE_INDEFINITE));
42 42
43 // Message pipe: 43 // Message pipe:
44 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, 44 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
45 MojoWriteMessage(h0, buffer, 3, NULL, 0, 45 MojoWriteMessage(h0, buffer, 3, NULL, 0,
46 MOJO_WRITE_MESSAGE_FLAG_NONE)); 46 MOJO_WRITE_MESSAGE_FLAG_NONE));
47 buffer_size = static_cast<uint32_t>(sizeof(buffer)); 47 buffer_size = static_cast<uint32_t>(sizeof(buffer));
48 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, 48 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
49 MojoReadMessage(h0, buffer, &buffer_size, NULL, NULL, 49 MojoReadMessage(h0, buffer, &buffer_size, NULL, NULL,
50 MOJO_READ_MESSAGE_FLAG_NONE)); 50 MOJO_READ_MESSAGE_FLAG_NONE));
51 51
(...skipping 18 matching lines...) Expand all
70 // Shared buffer: 70 // Shared buffer:
71 h1 = MOJO_HANDLE_INVALID; 71 h1 = MOJO_HANDLE_INVALID;
72 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, 72 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
73 MojoDuplicateBufferHandle(h0, NULL, &h1)); 73 MojoDuplicateBufferHandle(h0, NULL, &h1));
74 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, 74 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
75 MojoMapBuffer(h0, 0, 1, &write_pointer, MOJO_MAP_BUFFER_FLAG_NONE)); 75 MojoMapBuffer(h0, 0, 1, &write_pointer, MOJO_MAP_BUFFER_FLAG_NONE));
76 } 76 }
77 77
78 TEST(CoreTest, BasicMessagePipe) { 78 TEST(CoreTest, BasicMessagePipe) {
79 MojoHandle h0, h1; 79 MojoHandle h0, h1;
80 MojoWaitFlags wf; 80 MojoHandleSignals sig;
81 char buffer[10] = { 0 }; 81 char buffer[10] = { 0 };
82 uint32_t buffer_size; 82 uint32_t buffer_size;
83 83
84 h0 = MOJO_HANDLE_INVALID; 84 h0 = MOJO_HANDLE_INVALID;
85 h1 = MOJO_HANDLE_INVALID; 85 h1 = MOJO_HANDLE_INVALID;
86 EXPECT_EQ(MOJO_RESULT_OK, MojoCreateMessagePipe(NULL, &h0, &h1)); 86 EXPECT_EQ(MOJO_RESULT_OK, MojoCreateMessagePipe(NULL, &h0, &h1));
87 EXPECT_NE(h0, MOJO_HANDLE_INVALID); 87 EXPECT_NE(h0, MOJO_HANDLE_INVALID);
88 EXPECT_NE(h1, MOJO_HANDLE_INVALID); 88 EXPECT_NE(h1, MOJO_HANDLE_INVALID);
89 89
90 // Shouldn't be readable. 90 // Shouldn't be readable.
(...skipping 10 matching lines...) Expand all
101 MOJO_READ_MESSAGE_FLAG_NONE)); 101 MOJO_READ_MESSAGE_FLAG_NONE));
102 102
103 // Write to |h1|. 103 // Write to |h1|.
104 static const char kHello[] = "hello"; 104 static const char kHello[] = "hello";
105 buffer_size = static_cast<uint32_t>(sizeof(kHello)); 105 buffer_size = static_cast<uint32_t>(sizeof(kHello));
106 EXPECT_EQ(MOJO_RESULT_OK, 106 EXPECT_EQ(MOJO_RESULT_OK,
107 MojoWriteMessage(h1, kHello, buffer_size, NULL, 0, 107 MojoWriteMessage(h1, kHello, buffer_size, NULL, 0,
108 MOJO_WRITE_MESSAGE_FLAG_NONE)); 108 MOJO_WRITE_MESSAGE_FLAG_NONE));
109 109
110 // |h0| should be readable. 110 // |h0| should be readable.
111 wf = MOJO_WAIT_FLAG_READABLE; 111 sig = MOJO_WAIT_FLAG_READABLE;
112 EXPECT_EQ(MOJO_RESULT_OK, 112 EXPECT_EQ(MOJO_RESULT_OK,
113 MojoWaitMany(&h0, &wf, 1, MOJO_DEADLINE_INDEFINITE)); 113 MojoWaitMany(&h0, &sig, 1, MOJO_DEADLINE_INDEFINITE));
114 114
115 // Read from |h0|. 115 // Read from |h0|.
116 buffer_size = static_cast<uint32_t>(sizeof(buffer)); 116 buffer_size = static_cast<uint32_t>(sizeof(buffer));
117 EXPECT_EQ(MOJO_RESULT_OK, 117 EXPECT_EQ(MOJO_RESULT_OK,
118 MojoReadMessage(h0, buffer, &buffer_size, NULL, NULL, 118 MojoReadMessage(h0, buffer, &buffer_size, NULL, NULL,
119 MOJO_READ_MESSAGE_FLAG_NONE)); 119 MOJO_READ_MESSAGE_FLAG_NONE));
120 EXPECT_EQ(static_cast<uint32_t>(sizeof(kHello)), buffer_size); 120 EXPECT_EQ(static_cast<uint32_t>(sizeof(kHello)), buffer_size);
121 EXPECT_STREQ(kHello, buffer); 121 EXPECT_STREQ(kHello, buffer);
122 122
123 // |h0| should no longer be readable. 123 // |h0| should no longer be readable.
124 EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, 124 EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED,
125 MojoWait(h0, MOJO_WAIT_FLAG_READABLE, 10)); 125 MojoWait(h0, MOJO_WAIT_FLAG_READABLE, 10));
126 126
127 // Close |h0|. 127 // Close |h0|.
128 EXPECT_EQ(MOJO_RESULT_OK, MojoClose(h0)); 128 EXPECT_EQ(MOJO_RESULT_OK, MojoClose(h0));
129 129
130 // |h1| should no longer be readable or writable. 130 // |h1| should no longer be readable or writable.
131 EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION, 131 EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION,
132 MojoWait(h1, MOJO_WAIT_FLAG_READABLE | MOJO_WAIT_FLAG_WRITABLE, 132 MojoWait(h1, MOJO_WAIT_FLAG_READABLE | MOJO_WAIT_FLAG_WRITABLE,
133 1000)); 133 1000));
134 134
135 EXPECT_EQ(MOJO_RESULT_OK, MojoClose(h1)); 135 EXPECT_EQ(MOJO_RESULT_OK, MojoClose(h1));
136 } 136 }
137 137
138 TEST(CoreTest, BasicDataPipe) { 138 TEST(CoreTest, BasicDataPipe) {
139 MojoHandle hp, hc; 139 MojoHandle hp, hc;
140 MojoWaitFlags wf; 140 MojoHandleSignals sig;
141 char buffer[20] = { 0 }; 141 char buffer[20] = { 0 };
142 uint32_t buffer_size; 142 uint32_t buffer_size;
143 void* write_pointer; 143 void* write_pointer;
144 const void* read_pointer; 144 const void* read_pointer;
145 145
146 hp = MOJO_HANDLE_INVALID; 146 hp = MOJO_HANDLE_INVALID;
147 hc = MOJO_HANDLE_INVALID; 147 hc = MOJO_HANDLE_INVALID;
148 EXPECT_EQ(MOJO_RESULT_OK, MojoCreateDataPipe(NULL, &hp, &hc)); 148 EXPECT_EQ(MOJO_RESULT_OK, MojoCreateDataPipe(NULL, &hp, &hc));
149 EXPECT_NE(hp, MOJO_HANDLE_INVALID); 149 EXPECT_NE(hp, MOJO_HANDLE_INVALID);
150 EXPECT_NE(hc, MOJO_HANDLE_INVALID); 150 EXPECT_NE(hc, MOJO_HANDLE_INVALID);
(...skipping 18 matching lines...) Expand all
169 169
170 // Write to |hp|. 170 // Write to |hp|.
171 static const char kHello[] = "hello "; 171 static const char kHello[] = "hello ";
172 // Don't include terminating null. 172 // Don't include terminating null.
173 buffer_size = static_cast<uint32_t>(strlen(kHello)); 173 buffer_size = static_cast<uint32_t>(strlen(kHello));
174 EXPECT_EQ(MOJO_RESULT_OK, 174 EXPECT_EQ(MOJO_RESULT_OK,
175 MojoWriteData(hp, kHello, &buffer_size, 175 MojoWriteData(hp, kHello, &buffer_size,
176 MOJO_WRITE_MESSAGE_FLAG_NONE)); 176 MOJO_WRITE_MESSAGE_FLAG_NONE));
177 177
178 // |hc| should be(come) readable. 178 // |hc| should be(come) readable.
179 wf = MOJO_WAIT_FLAG_READABLE; 179 sig = MOJO_WAIT_FLAG_READABLE;
180 EXPECT_EQ(MOJO_RESULT_OK, 180 EXPECT_EQ(MOJO_RESULT_OK,
181 MojoWaitMany(&hc, &wf, 1, MOJO_DEADLINE_INDEFINITE)); 181 MojoWaitMany(&hc, &sig, 1, MOJO_DEADLINE_INDEFINITE));
182 182
183 // Do a two-phase write to |hp|. 183 // Do a two-phase write to |hp|.
184 EXPECT_EQ(MOJO_RESULT_OK, 184 EXPECT_EQ(MOJO_RESULT_OK,
185 MojoBeginWriteData(hp, &write_pointer, &buffer_size, 185 MojoBeginWriteData(hp, &write_pointer, &buffer_size,
186 MOJO_WRITE_DATA_FLAG_NONE)); 186 MOJO_WRITE_DATA_FLAG_NONE));
187 static const char kWorld[] = "world"; 187 static const char kWorld[] = "world";
188 ASSERT_GE(buffer_size, sizeof(kWorld)); 188 ASSERT_GE(buffer_size, sizeof(kWorld));
189 // Include the terminating null. 189 // Include the terminating null.
190 memcpy(write_pointer, kWorld, sizeof(kWorld)); 190 memcpy(write_pointer, kWorld, sizeof(kWorld));
191 EXPECT_EQ(MOJO_RESULT_OK, 191 EXPECT_EQ(MOJO_RESULT_OK,
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
275 // This checks that things actually work in C (not C++). 275 // This checks that things actually work in C (not C++).
276 TEST(CoreTest, MinimalCTest) { 276 TEST(CoreTest, MinimalCTest) {
277 const char* failure = MinimalCTest(); 277 const char* failure = MinimalCTest();
278 EXPECT_TRUE(failure == NULL) << failure; 278 EXPECT_TRUE(failure == NULL) << failure;
279 } 279 }
280 280
281 // TODO(vtl): Add multi-threaded tests. 281 // TODO(vtl): Add multi-threaded tests.
282 282
283 } // namespace 283 } // namespace
284 } // namespace mojo 284 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/public/c/system/functions.h ('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