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

Side by Side Diff: mojo/edk/js/tests/js_to_cpp_tests.cc

Issue 2163773002: Mojo C++ bindings: remove use_new_wrapper_types=false from all remaining targets im mojo/ folder. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 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
« no previous file with comments | « mojo/edk/js/tests/BUILD.gn ('k') | mojo/mojo_base.gyp » ('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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #include <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 7
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 args->ui64 = kExpectedUInt64Value; 97 args->ui64 = kExpectedUInt64Value;
98 args->ui32 = kExpectedUInt32Value; 98 args->ui32 = kExpectedUInt32Value;
99 args->ui16 = kExpectedUInt16Value; 99 args->ui16 = kExpectedUInt16Value;
100 args->ui8 = kExpectedUInt8Value; 100 args->ui8 = kExpectedUInt8Value;
101 args->float_val = kExpectedFloatVal; 101 args->float_val = kExpectedFloatVal;
102 args->float_inf = kExpectedFloatInf; 102 args->float_inf = kExpectedFloatInf;
103 args->float_nan = kExpectedFloatNan; 103 args->float_nan = kExpectedFloatNan;
104 args->double_val = kExpectedDoubleVal; 104 args->double_val = kExpectedDoubleVal;
105 args->double_inf = kExpectedDoubleInf; 105 args->double_inf = kExpectedDoubleInf;
106 args->double_nan = kExpectedDoubleNan; 106 args->double_nan = kExpectedDoubleNan;
107 args->name = "coming"; 107 args->name.emplace("coming");
108 Array<String> string_array(3); 108 args->string_array.emplace(3);
109 string_array[0] = "one"; 109 (*args->string_array)[0] = "one";
110 string_array[1] = "two"; 110 (*args->string_array)[1] = "two";
111 string_array[2] = "three"; 111 (*args->string_array)[2] = "three";
112 args->string_array = std::move(string_array);
113 return args; 112 return args;
114 } 113 }
115 114
116 void CheckSampleEchoArgs(js_to_cpp::EchoArgsPtr arg) { 115 void CheckSampleEchoArgs(js_to_cpp::EchoArgsPtr arg) {
117 EXPECT_EQ(kExpectedInt64Value, arg->si64); 116 EXPECT_EQ(kExpectedInt64Value, arg->si64);
118 EXPECT_EQ(kExpectedInt32Value, arg->si32); 117 EXPECT_EQ(kExpectedInt32Value, arg->si32);
119 EXPECT_EQ(kExpectedInt16Value, arg->si16); 118 EXPECT_EQ(kExpectedInt16Value, arg->si16);
120 EXPECT_EQ(kExpectedInt8Value, arg->si8); 119 EXPECT_EQ(kExpectedInt8Value, arg->si8);
121 EXPECT_EQ(kExpectedUInt64Value, arg->ui64); 120 EXPECT_EQ(kExpectedUInt64Value, arg->ui64);
122 EXPECT_EQ(kExpectedUInt32Value, arg->ui32); 121 EXPECT_EQ(kExpectedUInt32Value, arg->ui32);
123 EXPECT_EQ(kExpectedUInt16Value, arg->ui16); 122 EXPECT_EQ(kExpectedUInt16Value, arg->ui16);
124 EXPECT_EQ(kExpectedUInt8Value, arg->ui8); 123 EXPECT_EQ(kExpectedUInt8Value, arg->ui8);
125 EXPECT_EQ(kExpectedFloatVal, arg->float_val); 124 EXPECT_EQ(kExpectedFloatVal, arg->float_val);
126 EXPECT_EQ(kExpectedFloatInf, arg->float_inf); 125 EXPECT_EQ(kExpectedFloatInf, arg->float_inf);
127 EXPECT_NAN(arg->float_nan); 126 EXPECT_NAN(arg->float_nan);
128 EXPECT_EQ(kExpectedDoubleVal, arg->double_val); 127 EXPECT_EQ(kExpectedDoubleVal, arg->double_val);
129 EXPECT_EQ(kExpectedDoubleInf, arg->double_inf); 128 EXPECT_EQ(kExpectedDoubleInf, arg->double_inf);
130 EXPECT_NAN(arg->double_nan); 129 EXPECT_NAN(arg->double_nan);
131 EXPECT_EQ(std::string("coming"), arg->name.get()); 130 EXPECT_EQ(std::string("coming"), *arg->name);
132 EXPECT_EQ(std::string("one"), arg->string_array[0].get()); 131 EXPECT_EQ(std::string("one"), (*arg->string_array)[0]);
133 EXPECT_EQ(std::string("two"), arg->string_array[1].get()); 132 EXPECT_EQ(std::string("two"), (*arg->string_array)[1]);
134 EXPECT_EQ(std::string("three"), arg->string_array[2].get()); 133 EXPECT_EQ(std::string("three"), (*arg->string_array)[2]);
135 CheckDataPipe(std::move(arg->data_handle)); 134 CheckDataPipe(std::move(arg->data_handle));
136 CheckMessagePipe(arg->message_handle.get()); 135 CheckMessagePipe(arg->message_handle.get());
137 } 136 }
138 137
139 void CheckSampleEchoArgsList(const js_to_cpp::EchoArgsListPtr& list) { 138 void CheckSampleEchoArgsList(const js_to_cpp::EchoArgsListPtr& list) {
140 if (list.is_null()) 139 if (list.is_null())
141 return; 140 return;
142 CheckSampleEchoArgs(std::move(list->item)); 141 CheckSampleEchoArgs(std::move(list->item));
143 CheckSampleEchoArgsList(list->next); 142 CheckSampleEchoArgsList(list->next);
144 } 143 }
145 144
146 // More forgiving checks are needed in the face of potentially corrupt 145 // More forgiving checks are needed in the face of potentially corrupt
147 // messages. The values don't matter so long as all accesses are within 146 // messages. The values don't matter so long as all accesses are within
148 // bounds. 147 // bounds.
149 void CheckCorruptedString(const String& arg) { 148 void CheckCorruptedString(const std::string& arg) {
150 if (arg.is_null())
151 return;
152 for (size_t i = 0; i < arg.size(); ++i) 149 for (size_t i = 0; i < arg.size(); ++i)
153 g_waste_accumulator += arg[i]; 150 g_waste_accumulator += arg[i];
154 } 151 }
155 152
156 void CheckCorruptedStringArray(const Array<String>& string_array) { 153 void CheckCorruptedString(const base::Optional<std::string>& arg) {
157 if (string_array.is_null()) 154 if (!arg)
158 return; 155 return;
159 for (size_t i = 0; i < string_array.size(); ++i) 156 CheckCorruptedString(*arg);
160 CheckCorruptedString(string_array[i]); 157 }
158
159 void CheckCorruptedStringArray(
160 const base::Optional<std::vector<std::string>>& string_array) {
161 if (!string_array)
162 return;
163 for (size_t i = 0; i < string_array->size(); ++i)
164 CheckCorruptedString((*string_array)[i]);
161 } 165 }
162 166
163 void CheckCorruptedDataPipe(MojoHandle data_pipe_handle) { 167 void CheckCorruptedDataPipe(MojoHandle data_pipe_handle) {
164 unsigned char buffer[100]; 168 unsigned char buffer[100];
165 uint32_t buffer_size = static_cast<uint32_t>(sizeof(buffer)); 169 uint32_t buffer_size = static_cast<uint32_t>(sizeof(buffer));
166 MojoResult result = MojoReadData( 170 MojoResult result = MojoReadData(
167 data_pipe_handle, buffer, &buffer_size, MOJO_READ_DATA_FLAG_NONE); 171 data_pipe_handle, buffer, &buffer_size, MOJO_READ_DATA_FLAG_NONE);
168 if (result != MOJO_RESULT_OK) 172 if (result != MOJO_RESULT_OK)
169 return; 173 return;
170 for (uint32_t i = 0; i < buffer_size; ++i) 174 for (uint32_t i = 0; i < buffer_size; ++i)
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
290 js_side_->Echo(kExpectedMessageCount, BuildSampleEchoArgs()); 294 js_side_->Echo(kExpectedMessageCount, BuildSampleEchoArgs());
291 } 295 }
292 296
293 void EchoResponse(js_to_cpp::EchoArgsListPtr list) override { 297 void EchoResponse(js_to_cpp::EchoArgsListPtr list) override {
294 const js_to_cpp::EchoArgsPtr& special_arg = list->item; 298 const js_to_cpp::EchoArgsPtr& special_arg = list->item;
295 message_count_ += 1; 299 message_count_ += 1;
296 EXPECT_EQ(-1, special_arg->si64); 300 EXPECT_EQ(-1, special_arg->si64);
297 EXPECT_EQ(-1, special_arg->si32); 301 EXPECT_EQ(-1, special_arg->si32);
298 EXPECT_EQ(-1, special_arg->si16); 302 EXPECT_EQ(-1, special_arg->si16);
299 EXPECT_EQ(-1, special_arg->si8); 303 EXPECT_EQ(-1, special_arg->si8);
300 EXPECT_EQ(std::string("going"), special_arg->name.To<std::string>()); 304 EXPECT_EQ(std::string("going"), *special_arg->name);
301 CheckSampleEchoArgsList(list->next); 305 CheckSampleEchoArgsList(list->next);
302 } 306 }
303 307
304 void TestFinished() override { 308 void TestFinished() override {
305 termination_seen_ = true; 309 termination_seen_ = true;
306 run_loop()->Quit(); 310 run_loop()->Quit();
307 } 311 }
308 312
309 bool DidSucceed() { 313 bool DidSucceed() {
310 return termination_seen_ && 314 return termination_seen_ &&
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
436 440
437 TEST_F(JsToCppTest, BackPointer) { 441 TEST_F(JsToCppTest, BackPointer) {
438 BackPointerCppSideConnection cpp_side_connection; 442 BackPointerCppSideConnection cpp_side_connection;
439 RunTest("mojo/edk/js/tests/js_to_cpp_tests", &cpp_side_connection); 443 RunTest("mojo/edk/js/tests/js_to_cpp_tests", &cpp_side_connection);
440 EXPECT_TRUE(cpp_side_connection.DidSucceed()); 444 EXPECT_TRUE(cpp_side_connection.DidSucceed());
441 } 445 }
442 446
443 } // namespace js 447 } // namespace js
444 } // namespace edk 448 } // namespace edk
445 } // namespace mojo 449 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/edk/js/tests/BUILD.gn ('k') | mojo/mojo_base.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698