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

Side by Side Diff: mojo/public/cpp/bindings/tests/array_unittest.cc

Issue 1358353002: * Change C++ serialization/deserialization to not be move-only operations (with the except of |Ha… (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: (*it).get() to it->, and other formatting Created 5 years, 2 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/public/cpp/bindings/struct_ptr.h ('k') | mojo/public/cpp/bindings/tests/map_unittest.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 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 "mojo/public/cpp/bindings/array.h" 5 #include "mojo/public/cpp/bindings/array.h"
6 #include "mojo/public/cpp/bindings/lib/array_internal.h" 6 #include "mojo/public/cpp/bindings/lib/array_internal.h"
7 #include "mojo/public/cpp/bindings/lib/array_serialization.h" 7 #include "mojo/public/cpp/bindings/lib/array_serialization.h"
8 #include "mojo/public/cpp/bindings/lib/fixed_buffer.h" 8 #include "mojo/public/cpp/bindings/lib/fixed_buffer.h"
9 #include "mojo/public/cpp/bindings/tests/container_test_util.h" 9 #include "mojo/public/cpp/bindings/tests/container_test_util.h"
10 #include "mojo/public/cpp/bindings/tests/iterator_test_util.h" 10 #include "mojo/public/cpp/bindings/tests/iterator_test_util.h"
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 Array<int32_t> array(4); 154 Array<int32_t> array(4);
155 for (size_t i = 0; i < array.size(); ++i) 155 for (size_t i = 0; i < array.size(); ++i)
156 array[i] = static_cast<int32_t>(i); 156 array[i] = static_cast<int32_t>(i);
157 157
158 size_t size = GetSerializedSize_(array); 158 size_t size = GetSerializedSize_(array);
159 EXPECT_EQ(8U + 4 * 4U, size); 159 EXPECT_EQ(8U + 4 * 4U, size);
160 160
161 FixedBufferForTesting buf(size); 161 FixedBufferForTesting buf(size);
162 Array_Data<int32_t>* data; 162 Array_Data<int32_t>* data;
163 ArrayValidateParams validate_params(0, false, nullptr); 163 ArrayValidateParams validate_params(0, false, nullptr);
164 SerializeArray_(array.Pass(), &buf, &data, &validate_params); 164 SerializeArray_(&array, &buf, &data, &validate_params);
165 165
166 Array<int32_t> array2; 166 Array<int32_t> array2;
167 Deserialize_(data, &array2); 167 Deserialize_(data, &array2);
168 168
169 EXPECT_EQ(4U, array2.size()); 169 EXPECT_EQ(4U, array2.size());
170 for (size_t i = 0; i < array2.size(); ++i) 170 for (size_t i = 0; i < array2.size(); ++i)
171 EXPECT_EQ(static_cast<int32_t>(i), array2[i]); 171 EXPECT_EQ(static_cast<int32_t>(i), array2[i]);
172 } 172 }
173 173
174 TEST_F(ArrayTest, Serialization_EmptyArrayOfPOD) { 174 TEST_F(ArrayTest, Serialization_EmptyArrayOfPOD) {
175 Array<int32_t> array(0); 175 Array<int32_t> array(0);
176 size_t size = GetSerializedSize_(array); 176 size_t size = GetSerializedSize_(array);
177 EXPECT_EQ(8U, size); 177 EXPECT_EQ(8U, size);
178 178
179 FixedBufferForTesting buf(size); 179 FixedBufferForTesting buf(size);
180 Array_Data<int32_t>* data; 180 Array_Data<int32_t>* data;
181 ArrayValidateParams validate_params(0, false, nullptr); 181 ArrayValidateParams validate_params(0, false, nullptr);
182 SerializeArray_(array.Pass(), &buf, &data, &validate_params); 182 SerializeArray_(&array, &buf, &data, &validate_params);
183 183
184 Array<int32_t> array2; 184 Array<int32_t> array2;
185 Deserialize_(data, &array2); 185 Deserialize_(data, &array2);
186 EXPECT_EQ(0U, array2.size()); 186 EXPECT_EQ(0U, array2.size());
187 } 187 }
188 188
189 TEST_F(ArrayTest, Serialization_ArrayOfArrayOfPOD) { 189 TEST_F(ArrayTest, Serialization_ArrayOfArrayOfPOD) {
190 Array<Array<int32_t>> array(2); 190 Array<Array<int32_t>> array(2);
191 for (size_t j = 0; j < array.size(); ++j) { 191 for (size_t j = 0; j < array.size(); ++j) {
192 Array<int32_t> inner(4); 192 Array<int32_t> inner(4);
193 for (size_t i = 0; i < inner.size(); ++i) 193 for (size_t i = 0; i < inner.size(); ++i)
194 inner[i] = static_cast<int32_t>(i + (j * 10)); 194 inner[i] = static_cast<int32_t>(i + (j * 10));
195 array[j] = inner.Pass(); 195 array[j] = inner.Pass();
196 } 196 }
197 197
198 size_t size = GetSerializedSize_(array); 198 size_t size = GetSerializedSize_(array);
199 EXPECT_EQ(8U + 2 * 8U + 2 * (8U + 4 * 4U), size); 199 EXPECT_EQ(8U + 2 * 8U + 2 * (8U + 4 * 4U), size);
200 200
201 FixedBufferForTesting buf(size); 201 FixedBufferForTesting buf(size);
202 Array_Data<Array_Data<int32_t>*>* data; 202 Array_Data<Array_Data<int32_t>*>* data;
203 ArrayValidateParams validate_params( 203 ArrayValidateParams validate_params(
204 0, false, new ArrayValidateParams(0, false, nullptr)); 204 0, false, new ArrayValidateParams(0, false, nullptr));
205 SerializeArray_(array.Pass(), &buf, &data, &validate_params); 205 SerializeArray_(&array, &buf, &data, &validate_params);
206 206
207 Array<Array<int32_t>> array2; 207 Array<Array<int32_t>> array2;
208 Deserialize_(data, &array2); 208 Deserialize_(data, &array2);
209 209
210 EXPECT_EQ(2U, array2.size()); 210 EXPECT_EQ(2U, array2.size());
211 for (size_t j = 0; j < array2.size(); ++j) { 211 for (size_t j = 0; j < array2.size(); ++j) {
212 const Array<int32_t>& inner = array2[j]; 212 const Array<int32_t>& inner = array2[j];
213 EXPECT_EQ(4U, inner.size()); 213 EXPECT_EQ(4U, inner.size());
214 for (size_t i = 0; i < inner.size(); ++i) 214 for (size_t i = 0; i < inner.size(); ++i)
215 EXPECT_EQ(static_cast<int32_t>(i + (j * 10)), inner[i]); 215 EXPECT_EQ(static_cast<int32_t>(i + (j * 10)), inner[i]);
216 } 216 }
217 } 217 }
218 218
219 TEST_F(ArrayTest, Serialization_ArrayOfBool) { 219 TEST_F(ArrayTest, Serialization_ArrayOfBool) {
220 Array<bool> array(10); 220 Array<bool> array(10);
221 for (size_t i = 0; i < array.size(); ++i) 221 for (size_t i = 0; i < array.size(); ++i)
222 array[i] = i % 2 ? true : false; 222 array[i] = i % 2 ? true : false;
223 223
224 size_t size = GetSerializedSize_(array); 224 size_t size = GetSerializedSize_(array);
225 EXPECT_EQ(8U + 8U, size); 225 EXPECT_EQ(8U + 8U, size);
226 226
227 FixedBufferForTesting buf(size); 227 FixedBufferForTesting buf(size);
228 Array_Data<bool>* data; 228 Array_Data<bool>* data;
229 ArrayValidateParams validate_params(0, false, nullptr); 229 ArrayValidateParams validate_params(0, false, nullptr);
230 SerializeArray_(array.Pass(), &buf, &data, &validate_params); 230 SerializeArray_(&array, &buf, &data, &validate_params);
231 231
232 Array<bool> array2; 232 Array<bool> array2;
233 Deserialize_(data, &array2); 233 Deserialize_(data, &array2);
234 234
235 EXPECT_EQ(10U, array2.size()); 235 EXPECT_EQ(10U, array2.size());
236 for (size_t i = 0; i < array2.size(); ++i) 236 for (size_t i = 0; i < array2.size(); ++i)
237 EXPECT_EQ(i % 2 ? true : false, array2[i]); 237 EXPECT_EQ(i % 2 ? true : false, array2[i]);
238 } 238 }
239 239
240 TEST_F(ArrayTest, Serialization_ArrayOfString) { 240 TEST_F(ArrayTest, Serialization_ArrayOfString) {
241 Array<String> array(10); 241 Array<String> array(10);
242 for (size_t i = 0; i < array.size(); ++i) { 242 for (size_t i = 0; i < array.size(); ++i) {
243 char c = 'A' + static_cast<char>(i); 243 char c = 'A' + static_cast<char>(i);
244 array[i] = String(&c, 1); 244 array[i] = String(&c, 1);
245 } 245 }
246 246
247 size_t size = GetSerializedSize_(array); 247 size_t size = GetSerializedSize_(array);
248 EXPECT_EQ(8U + // array header 248 EXPECT_EQ(8U + // array header
249 10 * 8U + // array payload (10 pointers) 249 10 * 8U + // array payload (10 pointers)
250 10 * (8U + // string header 250 10 * (8U + // string header
251 8U), // string length of 1 padded to 8 251 8U), // string length of 1 padded to 8
252 size); 252 size);
253 253
254 FixedBufferForTesting buf(size); 254 FixedBufferForTesting buf(size);
255 Array_Data<String_Data*>* data; 255 Array_Data<String_Data*>* data;
256 ArrayValidateParams validate_params( 256 ArrayValidateParams validate_params(
257 0, false, new ArrayValidateParams(0, false, nullptr)); 257 0, false, new ArrayValidateParams(0, false, nullptr));
258 SerializeArray_(array.Pass(), &buf, &data, &validate_params); 258 SerializeArray_(&array, &buf, &data, &validate_params);
259 259
260 Array<String> array2; 260 Array<String> array2;
261 Deserialize_(data, &array2); 261 Deserialize_(data, &array2);
262 262
263 EXPECT_EQ(10U, array2.size()); 263 EXPECT_EQ(10U, array2.size());
264 for (size_t i = 0; i < array2.size(); ++i) { 264 for (size_t i = 0; i < array2.size(); ++i) {
265 char c = 'A' + static_cast<char>(i); 265 char c = 'A' + static_cast<char>(i);
266 EXPECT_EQ(String(&c, 1), array2[i]); 266 EXPECT_EQ(String(&c, 1), array2[i]);
267 } 267 }
268 } 268 }
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
486 { 486 {
487 SCOPED_TRACE("Array iterator bidirectionality test."); 487 SCOPED_TRACE("Array iterator bidirectionality test.");
488 ExpectBidiIteratorConcept(arr.begin(), arr.end(), values); 488 ExpectBidiIteratorConcept(arr.begin(), arr.end(), values);
489 ExpectBidiMutableIteratorConcept(arr.begin(), arr.end(), values); 489 ExpectBidiMutableIteratorConcept(arr.begin(), arr.end(), values);
490 } 490 }
491 } 491 }
492 492
493 } // namespace 493 } // namespace
494 } // namespace test 494 } // namespace test
495 } // namespace mojo 495 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/public/cpp/bindings/struct_ptr.h ('k') | mojo/public/cpp/bindings/tests/map_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698