| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "content/child/shared_memory_data_consumer_handle.h" | 5 #include "content/child/shared_memory_data_consumer_handle.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <string.h> | 8 #include <string.h> |
| 9 | 9 |
| 10 #include <string> | 10 #include <string> |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 139 const base::Closure& on_done) | 139 const base::Closure& on_done) |
| 140 : handle_(std::move(handle)), | 140 : handle_(std::move(handle)), |
| 141 main_message_loop_(main_message_loop), | 141 main_message_loop_(main_message_loop), |
| 142 on_done_(on_done) {} | 142 on_done_(on_done) {} |
| 143 | 143 |
| 144 const std::string& result() const { return result_; } | 144 const std::string& result() const { return result_; } |
| 145 | 145 |
| 146 void ReadData() { | 146 void ReadData() { |
| 147 if (!client_) { | 147 if (!client_) { |
| 148 client_.reset(new ClientImpl(this)); | 148 client_.reset(new ClientImpl(this)); |
| 149 reader_ = handle_->ObtainReader(client_.get()); | 149 reader_ = handle_->obtainReader(client_.get()); |
| 150 } | 150 } |
| 151 | 151 |
| 152 Result rv = kOk; | 152 Result rv = kOk; |
| 153 size_t read_size = 0; | 153 size_t read_size = 0; |
| 154 | 154 |
| 155 while (true) { | 155 while (true) { |
| 156 char buffer[16]; | 156 char buffer[16]; |
| 157 rv = reader_->read(&buffer, sizeof(buffer), kNone, &read_size); | 157 rv = reader_->read(&buffer, sizeof(buffer), kNone, &read_size); |
| 158 if (rv != kOk) | 158 if (rv != kOk) |
| 159 break; | 159 break; |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 215 void RunPostedTasks() { | 215 void RunPostedTasks() { |
| 216 base::RunLoop run_loop; | 216 base::RunLoop run_loop; |
| 217 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, | 217 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, |
| 218 run_loop.QuitClosure()); | 218 run_loop.QuitClosure()); |
| 219 run_loop.Run(); | 219 run_loop.Run(); |
| 220 } | 220 } |
| 221 | 221 |
| 222 TEST_P(SharedMemoryDataConsumerHandleTest, ReadFromEmpty) { | 222 TEST_P(SharedMemoryDataConsumerHandleTest, ReadFromEmpty) { |
| 223 char buffer[4]; | 223 char buffer[4]; |
| 224 size_t read = 88; | 224 size_t read = 88; |
| 225 auto reader = handle_->ObtainReader(nullptr); | 225 auto reader = handle_->obtainReader(nullptr); |
| 226 Result result = reader->read(buffer, 4, kNone, &read); | 226 Result result = reader->read(buffer, 4, kNone, &read); |
| 227 | 227 |
| 228 EXPECT_EQ(kShouldWait, result); | 228 EXPECT_EQ(kShouldWait, result); |
| 229 EXPECT_EQ(0u, read); | 229 EXPECT_EQ(0u, read); |
| 230 } | 230 } |
| 231 | 231 |
| 232 TEST_P(SharedMemoryDataConsumerHandleTest, AutoClose) { | 232 TEST_P(SharedMemoryDataConsumerHandleTest, AutoClose) { |
| 233 char buffer[4]; | 233 char buffer[4]; |
| 234 size_t read = 88; | 234 size_t read = 88; |
| 235 | 235 |
| 236 writer_.reset(); | 236 writer_.reset(); |
| 237 auto reader = handle_->ObtainReader(nullptr); | 237 auto reader = handle_->obtainReader(nullptr); |
| 238 Result result = reader->read(buffer, 4, kNone, &read); | 238 Result result = reader->read(buffer, 4, kNone, &read); |
| 239 | 239 |
| 240 EXPECT_EQ(kDone, result); | 240 EXPECT_EQ(kDone, result); |
| 241 EXPECT_EQ(0u, read); | 241 EXPECT_EQ(0u, read); |
| 242 } | 242 } |
| 243 | 243 |
| 244 TEST_P(SharedMemoryDataConsumerHandleTest, ReadSimple) { | 244 TEST_P(SharedMemoryDataConsumerHandleTest, ReadSimple) { |
| 245 writer_->AddData(NewFixedData("hello")); | 245 writer_->AddData(NewFixedData("hello")); |
| 246 | 246 |
| 247 char buffer[4] = {}; | 247 char buffer[4] = {}; |
| 248 size_t read = 88; | 248 size_t read = 88; |
| 249 auto reader = handle_->ObtainReader(nullptr); | 249 auto reader = handle_->obtainReader(nullptr); |
| 250 Result result = reader->read(buffer, 3, kNone, &read); | 250 Result result = reader->read(buffer, 3, kNone, &read); |
| 251 | 251 |
| 252 EXPECT_EQ(kOk, result); | 252 EXPECT_EQ(kOk, result); |
| 253 EXPECT_EQ(3u, read); | 253 EXPECT_EQ(3u, read); |
| 254 EXPECT_STREQ("hel", buffer); | 254 EXPECT_STREQ("hel", buffer); |
| 255 | 255 |
| 256 result = reader->read(buffer, 3, kNone, &read); | 256 result = reader->read(buffer, 3, kNone, &read); |
| 257 EXPECT_EQ(kOk, result); | 257 EXPECT_EQ(kOk, result); |
| 258 EXPECT_EQ(2u, read); | 258 EXPECT_EQ(2u, read); |
| 259 EXPECT_STREQ("lol", buffer); | 259 EXPECT_STREQ("lol", buffer); |
| 260 | 260 |
| 261 result = reader->read(buffer, 3, kNone, &read); | 261 result = reader->read(buffer, 3, kNone, &read); |
| 262 EXPECT_EQ(kShouldWait, result); | 262 EXPECT_EQ(kShouldWait, result); |
| 263 EXPECT_EQ(0u, read); | 263 EXPECT_EQ(0u, read); |
| 264 | 264 |
| 265 writer_->Close(); | 265 writer_->Close(); |
| 266 | 266 |
| 267 result = reader->read(buffer, 3, kNone, &read); | 267 result = reader->read(buffer, 3, kNone, &read); |
| 268 EXPECT_EQ(kDone, result); | 268 EXPECT_EQ(kDone, result); |
| 269 EXPECT_EQ(0u, read); | 269 EXPECT_EQ(0u, read); |
| 270 } | 270 } |
| 271 | 271 |
| 272 TEST_P(SharedMemoryDataConsumerHandleTest, ReadAfterHandleIsGone) { | 272 TEST_P(SharedMemoryDataConsumerHandleTest, ReadAfterHandleIsGone) { |
| 273 writer_->AddData(NewFixedData("hello")); | 273 writer_->AddData(NewFixedData("hello")); |
| 274 | 274 |
| 275 char buffer[8] = {}; | 275 char buffer[8] = {}; |
| 276 size_t read = 88; | 276 size_t read = 88; |
| 277 auto reader = handle_->ObtainReader(nullptr); | 277 auto reader = handle_->obtainReader(nullptr); |
| 278 | 278 |
| 279 handle_.reset(); | 279 handle_.reset(); |
| 280 | 280 |
| 281 Result result = reader->read(buffer, sizeof(buffer), kNone, &read); | 281 Result result = reader->read(buffer, sizeof(buffer), kNone, &read); |
| 282 | 282 |
| 283 EXPECT_EQ(kOk, result); | 283 EXPECT_EQ(kOk, result); |
| 284 EXPECT_EQ(5u, read); | 284 EXPECT_EQ(5u, read); |
| 285 EXPECT_STREQ("hello", buffer); | 285 EXPECT_STREQ("hello", buffer); |
| 286 | 286 |
| 287 result = reader->read(buffer, 3, kNone, &read); | 287 result = reader->read(buffer, 3, kNone, &read); |
| 288 EXPECT_EQ(kShouldWait, result); | 288 EXPECT_EQ(kShouldWait, result); |
| 289 EXPECT_EQ(0u, read); | 289 EXPECT_EQ(0u, read); |
| 290 | 290 |
| 291 writer_->Close(); | 291 writer_->Close(); |
| 292 | 292 |
| 293 result = reader->read(buffer, 3, kNone, &read); | 293 result = reader->read(buffer, 3, kNone, &read); |
| 294 EXPECT_EQ(kDone, result); | 294 EXPECT_EQ(kDone, result); |
| 295 EXPECT_EQ(0u, read); | 295 EXPECT_EQ(0u, read); |
| 296 } | 296 } |
| 297 | 297 |
| 298 TEST_P(SharedMemoryDataConsumerHandleTest, ReObtainReader) { | 298 TEST_P(SharedMemoryDataConsumerHandleTest, ReObtainReader) { |
| 299 writer_->AddData(NewFixedData("hello")); | 299 writer_->AddData(NewFixedData("hello")); |
| 300 | 300 |
| 301 char buffer[4] = {}; | 301 char buffer[4] = {}; |
| 302 size_t read = 88; | 302 size_t read = 88; |
| 303 auto reader = handle_->ObtainReader(nullptr); | 303 auto reader = handle_->obtainReader(nullptr); |
| 304 Result result = reader->read(buffer, 3, kNone, &read); | 304 Result result = reader->read(buffer, 3, kNone, &read); |
| 305 | 305 |
| 306 EXPECT_EQ(kOk, result); | 306 EXPECT_EQ(kOk, result); |
| 307 EXPECT_EQ(3u, read); | 307 EXPECT_EQ(3u, read); |
| 308 EXPECT_STREQ("hel", buffer); | 308 EXPECT_STREQ("hel", buffer); |
| 309 | 309 |
| 310 reader.reset(); | 310 reader.reset(); |
| 311 reader = handle_->ObtainReader(nullptr); | 311 reader = handle_->obtainReader(nullptr); |
| 312 | 312 |
| 313 result = reader->read(buffer, 3, kNone, &read); | 313 result = reader->read(buffer, 3, kNone, &read); |
| 314 EXPECT_EQ(kOk, result); | 314 EXPECT_EQ(kOk, result); |
| 315 EXPECT_EQ(2u, read); | 315 EXPECT_EQ(2u, read); |
| 316 EXPECT_STREQ("lol", buffer); | 316 EXPECT_STREQ("lol", buffer); |
| 317 | 317 |
| 318 result = reader->read(buffer, 3, kNone, &read); | 318 result = reader->read(buffer, 3, kNone, &read); |
| 319 EXPECT_EQ(kShouldWait, result); | 319 EXPECT_EQ(kShouldWait, result); |
| 320 EXPECT_EQ(0u, read); | 320 EXPECT_EQ(0u, read); |
| 321 | 321 |
| 322 writer_->Close(); | 322 writer_->Close(); |
| 323 | 323 |
| 324 result = reader->read(buffer, 3, kNone, &read); | 324 result = reader->read(buffer, 3, kNone, &read); |
| 325 EXPECT_EQ(kDone, result); | 325 EXPECT_EQ(kDone, result); |
| 326 EXPECT_EQ(0u, read); | 326 EXPECT_EQ(0u, read); |
| 327 } | 327 } |
| 328 | 328 |
| 329 TEST_P(SharedMemoryDataConsumerHandleTest, CloseBeforeReading) { | 329 TEST_P(SharedMemoryDataConsumerHandleTest, CloseBeforeReading) { |
| 330 writer_->AddData(NewFixedData("hello")); | 330 writer_->AddData(NewFixedData("hello")); |
| 331 writer_->Close(); | 331 writer_->Close(); |
| 332 | 332 |
| 333 char buffer[20] = {}; | 333 char buffer[20] = {}; |
| 334 size_t read = 88; | 334 size_t read = 88; |
| 335 auto reader = handle_->ObtainReader(nullptr); | 335 auto reader = handle_->obtainReader(nullptr); |
| 336 Result result = reader->read(buffer, sizeof(buffer), kNone, &read); | 336 Result result = reader->read(buffer, sizeof(buffer), kNone, &read); |
| 337 | 337 |
| 338 EXPECT_EQ(kOk, result); | 338 EXPECT_EQ(kOk, result); |
| 339 EXPECT_EQ(5u, read); | 339 EXPECT_EQ(5u, read); |
| 340 EXPECT_STREQ("hello", buffer); | 340 EXPECT_STREQ("hello", buffer); |
| 341 | 341 |
| 342 result = reader->read(buffer, sizeof(buffer), kNone, &read); | 342 result = reader->read(buffer, sizeof(buffer), kNone, &read); |
| 343 EXPECT_EQ(kDone, result); | 343 EXPECT_EQ(kDone, result); |
| 344 EXPECT_EQ(0u, read); | 344 EXPECT_EQ(0u, read); |
| 345 } | 345 } |
| 346 | 346 |
| 347 TEST_P(SharedMemoryDataConsumerHandleTest, CloseWithDataBeforeZeroRead) { | 347 TEST_P(SharedMemoryDataConsumerHandleTest, CloseWithDataBeforeZeroRead) { |
| 348 writer_->AddData(NewFixedData("hello")); | 348 writer_->AddData(NewFixedData("hello")); |
| 349 writer_->Close(); | 349 writer_->Close(); |
| 350 | 350 |
| 351 size_t read = 88; | 351 size_t read = 88; |
| 352 auto reader = handle_->ObtainReader(nullptr); | 352 auto reader = handle_->obtainReader(nullptr); |
| 353 Result result = reader->read(nullptr, 0, kNone, &read); | 353 Result result = reader->read(nullptr, 0, kNone, &read); |
| 354 | 354 |
| 355 EXPECT_EQ(kOk, result); | 355 EXPECT_EQ(kOk, result); |
| 356 EXPECT_EQ(0u, read); | 356 EXPECT_EQ(0u, read); |
| 357 } | 357 } |
| 358 | 358 |
| 359 TEST_P(SharedMemoryDataConsumerHandleTest, CloseWithoutDataBeforeZeroRead) { | 359 TEST_P(SharedMemoryDataConsumerHandleTest, CloseWithoutDataBeforeZeroRead) { |
| 360 writer_->Close(); | 360 writer_->Close(); |
| 361 | 361 |
| 362 size_t read = 88; | 362 size_t read = 88; |
| 363 auto reader = handle_->ObtainReader(nullptr); | 363 auto reader = handle_->obtainReader(nullptr); |
| 364 Result result = reader->read(nullptr, 0, kNone, &read); | 364 Result result = reader->read(nullptr, 0, kNone, &read); |
| 365 | 365 |
| 366 EXPECT_EQ(kDone, result); | 366 EXPECT_EQ(kDone, result); |
| 367 } | 367 } |
| 368 | 368 |
| 369 TEST_P(SharedMemoryDataConsumerHandleTest, AddMultipleData) { | 369 TEST_P(SharedMemoryDataConsumerHandleTest, AddMultipleData) { |
| 370 writer_->AddData(NewFixedData("Once ")); | 370 writer_->AddData(NewFixedData("Once ")); |
| 371 writer_->AddData(NewFixedData("upon ")); | 371 writer_->AddData(NewFixedData("upon ")); |
| 372 writer_->AddData(NewFixedData("a ")); | 372 writer_->AddData(NewFixedData("a ")); |
| 373 writer_->AddData(NewFixedData("time ")); | 373 writer_->AddData(NewFixedData("time ")); |
| 374 writer_->AddData(NewFixedData("there ")); | 374 writer_->AddData(NewFixedData("there ")); |
| 375 writer_->AddData(NewFixedData("was ")); | 375 writer_->AddData(NewFixedData("was ")); |
| 376 writer_->AddData(NewFixedData("a ")); | 376 writer_->AddData(NewFixedData("a ")); |
| 377 writer_->Close(); | 377 writer_->Close(); |
| 378 | 378 |
| 379 char buffer[20]; | 379 char buffer[20]; |
| 380 size_t read; | 380 size_t read; |
| 381 Result result; | 381 Result result; |
| 382 | 382 |
| 383 auto reader = handle_->ObtainReader(nullptr); | 383 auto reader = handle_->obtainReader(nullptr); |
| 384 std::fill(&buffer[0], &buffer[arraysize(buffer)], 0); | 384 std::fill(&buffer[0], &buffer[arraysize(buffer)], 0); |
| 385 result = reader->read(buffer, 6, kNone, &read); | 385 result = reader->read(buffer, 6, kNone, &read); |
| 386 EXPECT_EQ(kOk, result); | 386 EXPECT_EQ(kOk, result); |
| 387 EXPECT_EQ(6u, read); | 387 EXPECT_EQ(6u, read); |
| 388 EXPECT_STREQ("Once u", buffer); | 388 EXPECT_STREQ("Once u", buffer); |
| 389 | 389 |
| 390 std::fill(&buffer[0], &buffer[arraysize(buffer)], 0); | 390 std::fill(&buffer[0], &buffer[arraysize(buffer)], 0); |
| 391 result = reader->read(buffer, 2, kNone, &read); | 391 result = reader->read(buffer, 2, kNone, &read); |
| 392 EXPECT_EQ(kOk, result); | 392 EXPECT_EQ(kOk, result); |
| 393 EXPECT_EQ(2u, read); | 393 EXPECT_EQ(2u, read); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 417 } | 417 } |
| 418 | 418 |
| 419 TEST_P(SharedMemoryDataConsumerHandleTest, AddMultipleDataInteractively) { | 419 TEST_P(SharedMemoryDataConsumerHandleTest, AddMultipleDataInteractively) { |
| 420 writer_->AddData(NewFixedData("Once ")); | 420 writer_->AddData(NewFixedData("Once ")); |
| 421 writer_->AddData(NewFixedData("upon ")); | 421 writer_->AddData(NewFixedData("upon ")); |
| 422 | 422 |
| 423 char buffer[20]; | 423 char buffer[20]; |
| 424 size_t read; | 424 size_t read; |
| 425 Result result; | 425 Result result; |
| 426 | 426 |
| 427 auto reader = handle_->ObtainReader(nullptr); | 427 auto reader = handle_->obtainReader(nullptr); |
| 428 std::fill(&buffer[0], &buffer[arraysize(buffer)], 0); | 428 std::fill(&buffer[0], &buffer[arraysize(buffer)], 0); |
| 429 result = reader->read(buffer, 6, kNone, &read); | 429 result = reader->read(buffer, 6, kNone, &read); |
| 430 EXPECT_EQ(kOk, result); | 430 EXPECT_EQ(kOk, result); |
| 431 EXPECT_EQ(6u, read); | 431 EXPECT_EQ(6u, read); |
| 432 EXPECT_STREQ("Once u", buffer); | 432 EXPECT_STREQ("Once u", buffer); |
| 433 | 433 |
| 434 std::fill(&buffer[0], &buffer[arraysize(buffer)], 0); | 434 std::fill(&buffer[0], &buffer[arraysize(buffer)], 0); |
| 435 result = reader->read(buffer, 2, kNone, &read); | 435 result = reader->read(buffer, 2, kNone, &read); |
| 436 EXPECT_EQ(kOk, result); | 436 EXPECT_EQ(kOk, result); |
| 437 EXPECT_EQ(2u, read); | 437 EXPECT_EQ(2u, read); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 479 | 479 |
| 480 InSequence s; | 480 InSequence s; |
| 481 EXPECT_CALL(checkpoint, Call(0)); | 481 EXPECT_CALL(checkpoint, Call(0)); |
| 482 EXPECT_CALL(checkpoint, Call(1)); | 482 EXPECT_CALL(checkpoint, Call(1)); |
| 483 EXPECT_CALL(checkpoint, Call(2)); | 483 EXPECT_CALL(checkpoint, Call(2)); |
| 484 EXPECT_CALL(checkpoint, Call(3)); | 484 EXPECT_CALL(checkpoint, Call(3)); |
| 485 EXPECT_CALL(client_, didGetReadable()); | 485 EXPECT_CALL(client_, didGetReadable()); |
| 486 EXPECT_CALL(checkpoint, Call(4)); | 486 EXPECT_CALL(checkpoint, Call(4)); |
| 487 | 487 |
| 488 checkpoint.Call(0); | 488 checkpoint.Call(0); |
| 489 auto reader = handle_->ObtainReader(&client_); | 489 auto reader = handle_->obtainReader(&client_); |
| 490 checkpoint.Call(1); | 490 checkpoint.Call(1); |
| 491 RunPostedTasks(); | 491 RunPostedTasks(); |
| 492 checkpoint.Call(2); | 492 checkpoint.Call(2); |
| 493 writer_->Close(); | 493 writer_->Close(); |
| 494 checkpoint.Call(3); | 494 checkpoint.Call(3); |
| 495 RunPostedTasks(); | 495 RunPostedTasks(); |
| 496 checkpoint.Call(4); | 496 checkpoint.Call(4); |
| 497 } | 497 } |
| 498 | 498 |
| 499 TEST_P(SharedMemoryDataConsumerHandleTest, RegisterClientWhenDataExists) { | 499 TEST_P(SharedMemoryDataConsumerHandleTest, RegisterClientWhenDataExists) { |
| 500 Checkpoint checkpoint; | 500 Checkpoint checkpoint; |
| 501 | 501 |
| 502 InSequence s; | 502 InSequence s; |
| 503 EXPECT_CALL(checkpoint, Call(0)); | 503 EXPECT_CALL(checkpoint, Call(0)); |
| 504 EXPECT_CALL(checkpoint, Call(1)); | 504 EXPECT_CALL(checkpoint, Call(1)); |
| 505 EXPECT_CALL(checkpoint, Call(2)); | 505 EXPECT_CALL(checkpoint, Call(2)); |
| 506 EXPECT_CALL(client_, didGetReadable()); | 506 EXPECT_CALL(client_, didGetReadable()); |
| 507 EXPECT_CALL(checkpoint, Call(3)); | 507 EXPECT_CALL(checkpoint, Call(3)); |
| 508 | 508 |
| 509 checkpoint.Call(0); | 509 checkpoint.Call(0); |
| 510 writer_->AddData(NewFixedData("Once ")); | 510 writer_->AddData(NewFixedData("Once ")); |
| 511 checkpoint.Call(1); | 511 checkpoint.Call(1); |
| 512 auto reader = handle_->ObtainReader(&client_); | 512 auto reader = handle_->obtainReader(&client_); |
| 513 checkpoint.Call(2); | 513 checkpoint.Call(2); |
| 514 RunPostedTasks(); | 514 RunPostedTasks(); |
| 515 checkpoint.Call(3); | 515 checkpoint.Call(3); |
| 516 } | 516 } |
| 517 | 517 |
| 518 TEST_P(SharedMemoryDataConsumerHandleTest, AddDataWhenClientIsRegistered) { | 518 TEST_P(SharedMemoryDataConsumerHandleTest, AddDataWhenClientIsRegistered) { |
| 519 Checkpoint checkpoint; | 519 Checkpoint checkpoint; |
| 520 char buffer[20]; | 520 char buffer[20]; |
| 521 Result result; | 521 Result result; |
| 522 size_t size; | 522 size_t size; |
| 523 | 523 |
| 524 InSequence s; | 524 InSequence s; |
| 525 EXPECT_CALL(checkpoint, Call(0)); | 525 EXPECT_CALL(checkpoint, Call(0)); |
| 526 EXPECT_CALL(checkpoint, Call(1)); | 526 EXPECT_CALL(checkpoint, Call(1)); |
| 527 EXPECT_CALL(client_, didGetReadable()); | 527 EXPECT_CALL(client_, didGetReadable()); |
| 528 EXPECT_CALL(checkpoint, Call(2)); | 528 EXPECT_CALL(checkpoint, Call(2)); |
| 529 EXPECT_CALL(checkpoint, Call(3)); | 529 EXPECT_CALL(checkpoint, Call(3)); |
| 530 EXPECT_CALL(checkpoint, Call(4)); | 530 EXPECT_CALL(checkpoint, Call(4)); |
| 531 EXPECT_CALL(client_, didGetReadable()); | 531 EXPECT_CALL(client_, didGetReadable()); |
| 532 EXPECT_CALL(checkpoint, Call(5)); | 532 EXPECT_CALL(checkpoint, Call(5)); |
| 533 | 533 |
| 534 checkpoint.Call(0); | 534 checkpoint.Call(0); |
| 535 auto reader = handle_->ObtainReader(&client_); | 535 auto reader = handle_->obtainReader(&client_); |
| 536 checkpoint.Call(1); | 536 checkpoint.Call(1); |
| 537 writer_->AddData(NewFixedData("Once ")); | 537 writer_->AddData(NewFixedData("Once ")); |
| 538 checkpoint.Call(2); | 538 checkpoint.Call(2); |
| 539 writer_->AddData(NewFixedData("upon ")); | 539 writer_->AddData(NewFixedData("upon ")); |
| 540 checkpoint.Call(3); | 540 checkpoint.Call(3); |
| 541 result = reader->read(buffer, sizeof(buffer), kNone, &size); | 541 result = reader->read(buffer, sizeof(buffer), kNone, &size); |
| 542 EXPECT_EQ(kOk, result); | 542 EXPECT_EQ(kOk, result); |
| 543 EXPECT_EQ(10u, size); | 543 EXPECT_EQ(10u, size); |
| 544 checkpoint.Call(4); | 544 checkpoint.Call(4); |
| 545 writer_->AddData(NewFixedData("a ")); | 545 writer_->AddData(NewFixedData("a ")); |
| 546 checkpoint.Call(5); | 546 checkpoint.Call(5); |
| 547 } | 547 } |
| 548 | 548 |
| 549 TEST_P(SharedMemoryDataConsumerHandleTest, CloseWithClientAndData) { | 549 TEST_P(SharedMemoryDataConsumerHandleTest, CloseWithClientAndData) { |
| 550 Checkpoint checkpoint; | 550 Checkpoint checkpoint; |
| 551 | 551 |
| 552 InSequence s; | 552 InSequence s; |
| 553 EXPECT_CALL(checkpoint, Call(0)); | 553 EXPECT_CALL(checkpoint, Call(0)); |
| 554 EXPECT_CALL(checkpoint, Call(1)); | 554 EXPECT_CALL(checkpoint, Call(1)); |
| 555 EXPECT_CALL(client_, didGetReadable()); | 555 EXPECT_CALL(client_, didGetReadable()); |
| 556 EXPECT_CALL(checkpoint, Call(2)); | 556 EXPECT_CALL(checkpoint, Call(2)); |
| 557 EXPECT_CALL(checkpoint, Call(3)); | 557 EXPECT_CALL(checkpoint, Call(3)); |
| 558 | 558 |
| 559 checkpoint.Call(0); | 559 checkpoint.Call(0); |
| 560 auto reader = handle_->ObtainReader(&client_); | 560 auto reader = handle_->obtainReader(&client_); |
| 561 checkpoint.Call(1); | 561 checkpoint.Call(1); |
| 562 writer_->AddData(NewFixedData("Once ")); | 562 writer_->AddData(NewFixedData("Once ")); |
| 563 checkpoint.Call(2); | 563 checkpoint.Call(2); |
| 564 writer_->Close(); | 564 writer_->Close(); |
| 565 checkpoint.Call(3); | 565 checkpoint.Call(3); |
| 566 } | 566 } |
| 567 | 567 |
| 568 TEST_P(SharedMemoryDataConsumerHandleTest, ReleaseReader) { | 568 TEST_P(SharedMemoryDataConsumerHandleTest, ReleaseReader) { |
| 569 Checkpoint checkpoint; | 569 Checkpoint checkpoint; |
| 570 | 570 |
| 571 InSequence s; | 571 InSequence s; |
| 572 EXPECT_CALL(checkpoint, Call(0)); | 572 EXPECT_CALL(checkpoint, Call(0)); |
| 573 EXPECT_CALL(checkpoint, Call(1)); | 573 EXPECT_CALL(checkpoint, Call(1)); |
| 574 EXPECT_CALL(checkpoint, Call(2)); | 574 EXPECT_CALL(checkpoint, Call(2)); |
| 575 | 575 |
| 576 checkpoint.Call(0); | 576 checkpoint.Call(0); |
| 577 auto reader = handle_->ObtainReader(&client_); | 577 auto reader = handle_->obtainReader(&client_); |
| 578 checkpoint.Call(1); | 578 checkpoint.Call(1); |
| 579 reader.reset(); | 579 reader.reset(); |
| 580 writer_->AddData(NewFixedData("Once ")); | 580 writer_->AddData(NewFixedData("Once ")); |
| 581 checkpoint.Call(2); | 581 checkpoint.Call(2); |
| 582 } | 582 } |
| 583 | 583 |
| 584 TEST_P(SharedMemoryDataConsumerHandleTest, TwoPhaseReadShouldWait) { | 584 TEST_P(SharedMemoryDataConsumerHandleTest, TwoPhaseReadShouldWait) { |
| 585 Result result; | 585 Result result; |
| 586 const void* buffer = &result; | 586 const void* buffer = &result; |
| 587 size_t size = 99; | 587 size_t size = 99; |
| 588 | 588 |
| 589 auto reader = handle_->ObtainReader(nullptr); | 589 auto reader = handle_->obtainReader(nullptr); |
| 590 result = reader->beginRead(&buffer, kNone, &size); | 590 result = reader->beginRead(&buffer, kNone, &size); |
| 591 EXPECT_EQ(kShouldWait, result); | 591 EXPECT_EQ(kShouldWait, result); |
| 592 EXPECT_EQ(nullptr, buffer); | 592 EXPECT_EQ(nullptr, buffer); |
| 593 EXPECT_EQ(0u, size); | 593 EXPECT_EQ(0u, size); |
| 594 } | 594 } |
| 595 | 595 |
| 596 TEST_P(SharedMemoryDataConsumerHandleTest, TwoPhaseReadSimple) { | 596 TEST_P(SharedMemoryDataConsumerHandleTest, TwoPhaseReadSimple) { |
| 597 writer_->AddData(NewFixedData("Once ")); | 597 writer_->AddData(NewFixedData("Once ")); |
| 598 | 598 |
| 599 Result result; | 599 Result result; |
| 600 const void* buffer = &result; | 600 const void* buffer = &result; |
| 601 size_t size = 99; | 601 size_t size = 99; |
| 602 | 602 |
| 603 auto reader = handle_->ObtainReader(nullptr); | 603 auto reader = handle_->obtainReader(nullptr); |
| 604 result = reader->beginRead(&buffer, kNone, &size); | 604 result = reader->beginRead(&buffer, kNone, &size); |
| 605 EXPECT_EQ(kOk, result); | 605 EXPECT_EQ(kOk, result); |
| 606 EXPECT_EQ(5u, size); | 606 EXPECT_EQ(5u, size); |
| 607 EXPECT_EQ("Once ", ToString(buffer, 5)); | 607 EXPECT_EQ("Once ", ToString(buffer, 5)); |
| 608 | 608 |
| 609 reader->endRead(1); | 609 reader->endRead(1); |
| 610 | 610 |
| 611 result = reader->beginRead(&buffer, kNone, &size); | 611 result = reader->beginRead(&buffer, kNone, &size); |
| 612 EXPECT_EQ(kOk, result); | 612 EXPECT_EQ(kOk, result); |
| 613 EXPECT_EQ(4u, size); | 613 EXPECT_EQ(4u, size); |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 664 EXPECT_CALL(checkpoint, Call(2)); | 664 EXPECT_CALL(checkpoint, Call(2)); |
| 665 EXPECT_CALL(checkpoint, Call(3)); | 665 EXPECT_CALL(checkpoint, Call(3)); |
| 666 EXPECT_CALL(*on_clear, Call()); | 666 EXPECT_CALL(*on_clear, Call()); |
| 667 EXPECT_CALL(*on_clear, Destruct()); | 667 EXPECT_CALL(*on_clear, Destruct()); |
| 668 EXPECT_CALL(checkpoint, Call(4)); | 668 EXPECT_CALL(checkpoint, Call(4)); |
| 669 | 669 |
| 670 checkpoint.Call(0); | 670 checkpoint.Call(0); |
| 671 handle_.reset(new SharedMemoryDataConsumerHandle( | 671 handle_.reset(new SharedMemoryDataConsumerHandle( |
| 672 kApplyBackpressure, | 672 kApplyBackpressure, |
| 673 base::Bind(&DestructionTrackingFunction::Call, on_clear), &writer_)); | 673 base::Bind(&DestructionTrackingFunction::Call, on_clear), &writer_)); |
| 674 auto reader = handle_->ObtainReader(nullptr); | 674 auto reader = handle_->obtainReader(nullptr); |
| 675 handle_.reset(); | 675 handle_.reset(); |
| 676 on_clear = nullptr; | 676 on_clear = nullptr; |
| 677 checkpoint.Call(1); | 677 checkpoint.Call(1); |
| 678 RunPostedTasks(); | 678 RunPostedTasks(); |
| 679 checkpoint.Call(2); | 679 checkpoint.Call(2); |
| 680 reader.reset(); | 680 reader.reset(); |
| 681 checkpoint.Call(3); | 681 checkpoint.Call(3); |
| 682 RunPostedTasks(); | 682 RunPostedTasks(); |
| 683 checkpoint.Call(4); | 683 checkpoint.Call(4); |
| 684 } | 684 } |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 738 } | 738 } |
| 739 | 739 |
| 740 TEST_P(SharedMemoryDataConsumerHandleTest, TwoPhaseReadWithMultipleData) { | 740 TEST_P(SharedMemoryDataConsumerHandleTest, TwoPhaseReadWithMultipleData) { |
| 741 writer_->AddData(NewFixedData("Once ")); | 741 writer_->AddData(NewFixedData("Once ")); |
| 742 writer_->AddData(NewFixedData("upon ")); | 742 writer_->AddData(NewFixedData("upon ")); |
| 743 | 743 |
| 744 Result result; | 744 Result result; |
| 745 const void* buffer = &result; | 745 const void* buffer = &result; |
| 746 size_t size = 99; | 746 size_t size = 99; |
| 747 | 747 |
| 748 auto reader = handle_->ObtainReader(nullptr); | 748 auto reader = handle_->obtainReader(nullptr); |
| 749 result = reader->beginRead(&buffer, kNone, &size); | 749 result = reader->beginRead(&buffer, kNone, &size); |
| 750 EXPECT_EQ(kOk, result); | 750 EXPECT_EQ(kOk, result); |
| 751 EXPECT_EQ(5u, size); | 751 EXPECT_EQ(5u, size); |
| 752 EXPECT_EQ("Once ", ToString(buffer, 5)); | 752 EXPECT_EQ("Once ", ToString(buffer, 5)); |
| 753 | 753 |
| 754 reader->endRead(1); | 754 reader->endRead(1); |
| 755 | 755 |
| 756 result = reader->beginRead(&buffer, kNone, &size); | 756 result = reader->beginRead(&buffer, kNone, &size); |
| 757 EXPECT_EQ(kOk, result); | 757 EXPECT_EQ(kOk, result); |
| 758 EXPECT_EQ(4u, size); | 758 EXPECT_EQ(4u, size); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 778 EXPECT_EQ(kDone, result); | 778 EXPECT_EQ(kDone, result); |
| 779 EXPECT_EQ(0u, size); | 779 EXPECT_EQ(0u, size); |
| 780 EXPECT_EQ(nullptr, buffer); | 780 EXPECT_EQ(nullptr, buffer); |
| 781 } | 781 } |
| 782 | 782 |
| 783 TEST_P(SharedMemoryDataConsumerHandleTest, ErrorRead) { | 783 TEST_P(SharedMemoryDataConsumerHandleTest, ErrorRead) { |
| 784 Checkpoint checkpoint; | 784 Checkpoint checkpoint; |
| 785 Result result; | 785 Result result; |
| 786 char buffer[20] = {}; | 786 char buffer[20] = {}; |
| 787 size_t read = 99; | 787 size_t read = 99; |
| 788 auto reader = handle_->ObtainReader(nullptr); | 788 auto reader = handle_->obtainReader(nullptr); |
| 789 | 789 |
| 790 writer_->Fail(); | 790 writer_->Fail(); |
| 791 result = reader->read(buffer, sizeof(buffer), kNone, &read); | 791 result = reader->read(buffer, sizeof(buffer), kNone, &read); |
| 792 | 792 |
| 793 EXPECT_EQ(kUnexpectedError, result); | 793 EXPECT_EQ(kUnexpectedError, result); |
| 794 EXPECT_EQ(0u, read); | 794 EXPECT_EQ(0u, read); |
| 795 } | 795 } |
| 796 | 796 |
| 797 TEST_P(SharedMemoryDataConsumerHandleTest, ErrorTwoPhaseRead) { | 797 TEST_P(SharedMemoryDataConsumerHandleTest, ErrorTwoPhaseRead) { |
| 798 Result result; | 798 Result result; |
| 799 const void* pointer = &result; | 799 const void* pointer = &result; |
| 800 size_t size = 99; | 800 size_t size = 99; |
| 801 auto reader = handle_->ObtainReader(nullptr); | 801 auto reader = handle_->obtainReader(nullptr); |
| 802 | 802 |
| 803 writer_->Fail(); | 803 writer_->Fail(); |
| 804 result = reader->beginRead(&pointer, kNone, &size); | 804 result = reader->beginRead(&pointer, kNone, &size); |
| 805 | 805 |
| 806 EXPECT_EQ(kUnexpectedError, result); | 806 EXPECT_EQ(kUnexpectedError, result); |
| 807 EXPECT_EQ(nullptr, pointer); | 807 EXPECT_EQ(nullptr, pointer); |
| 808 EXPECT_EQ(0u, size); | 808 EXPECT_EQ(0u, size); |
| 809 } | 809 } |
| 810 | 810 |
| 811 TEST_P(SharedMemoryDataConsumerHandleTest, FailWhileTwoPhaseReadIsInProgress) { | 811 TEST_P(SharedMemoryDataConsumerHandleTest, FailWhileTwoPhaseReadIsInProgress) { |
| 812 Result result; | 812 Result result; |
| 813 const void* pointer = nullptr; | 813 const void* pointer = nullptr; |
| 814 size_t size = 0; | 814 size_t size = 0; |
| 815 auto reader = handle_->ObtainReader(nullptr); | 815 auto reader = handle_->obtainReader(nullptr); |
| 816 | 816 |
| 817 writer_->AddData(NewFixedData("Once ")); | 817 writer_->AddData(NewFixedData("Once ")); |
| 818 result = reader->beginRead(&pointer, kNone, &size); | 818 result = reader->beginRead(&pointer, kNone, &size); |
| 819 auto* buffer = static_cast<const char*>(pointer); | 819 auto* buffer = static_cast<const char*>(pointer); |
| 820 | 820 |
| 821 ASSERT_EQ(kOk, result); | 821 ASSERT_EQ(kOk, result); |
| 822 ASSERT_NE(nullptr, pointer); | 822 ASSERT_NE(nullptr, pointer); |
| 823 ASSERT_EQ(size, 5u); | 823 ASSERT_EQ(size, 5u); |
| 824 | 824 |
| 825 writer_->Fail(); | 825 writer_->Fail(); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 841 Checkpoint checkpoint; | 841 Checkpoint checkpoint; |
| 842 | 842 |
| 843 InSequence s; | 843 InSequence s; |
| 844 EXPECT_CALL(checkpoint, Call(0)); | 844 EXPECT_CALL(checkpoint, Call(0)); |
| 845 EXPECT_CALL(checkpoint, Call(1)); | 845 EXPECT_CALL(checkpoint, Call(1)); |
| 846 EXPECT_CALL(checkpoint, Call(2)); | 846 EXPECT_CALL(checkpoint, Call(2)); |
| 847 EXPECT_CALL(client_, didGetReadable()); | 847 EXPECT_CALL(client_, didGetReadable()); |
| 848 EXPECT_CALL(checkpoint, Call(3)); | 848 EXPECT_CALL(checkpoint, Call(3)); |
| 849 | 849 |
| 850 checkpoint.Call(0); | 850 checkpoint.Call(0); |
| 851 auto reader = handle_->ObtainReader(&client_); | 851 auto reader = handle_->obtainReader(&client_); |
| 852 checkpoint.Call(1); | 852 checkpoint.Call(1); |
| 853 writer_->Fail(); | 853 writer_->Fail(); |
| 854 checkpoint.Call(2); | 854 checkpoint.Call(2); |
| 855 RunPostedTasks(); | 855 RunPostedTasks(); |
| 856 checkpoint.Call(3); | 856 checkpoint.Call(3); |
| 857 } | 857 } |
| 858 | 858 |
| 859 TEST_P(SharedMemoryDataConsumerHandleTest, FailWithClientAndData) { | 859 TEST_P(SharedMemoryDataConsumerHandleTest, FailWithClientAndData) { |
| 860 Checkpoint checkpoint; | 860 Checkpoint checkpoint; |
| 861 | 861 |
| 862 InSequence s; | 862 InSequence s; |
| 863 EXPECT_CALL(checkpoint, Call(0)); | 863 EXPECT_CALL(checkpoint, Call(0)); |
| 864 EXPECT_CALL(checkpoint, Call(1)); | 864 EXPECT_CALL(checkpoint, Call(1)); |
| 865 EXPECT_CALL(client_, didGetReadable()); | 865 EXPECT_CALL(client_, didGetReadable()); |
| 866 EXPECT_CALL(checkpoint, Call(2)); | 866 EXPECT_CALL(checkpoint, Call(2)); |
| 867 EXPECT_CALL(checkpoint, Call(3)); | 867 EXPECT_CALL(checkpoint, Call(3)); |
| 868 EXPECT_CALL(client_, didGetReadable()); | 868 EXPECT_CALL(client_, didGetReadable()); |
| 869 EXPECT_CALL(checkpoint, Call(4)); | 869 EXPECT_CALL(checkpoint, Call(4)); |
| 870 | 870 |
| 871 checkpoint.Call(0); | 871 checkpoint.Call(0); |
| 872 auto reader = handle_->ObtainReader(&client_); | 872 auto reader = handle_->obtainReader(&client_); |
| 873 checkpoint.Call(1); | 873 checkpoint.Call(1); |
| 874 writer_->AddData(NewFixedData("Once ")); | 874 writer_->AddData(NewFixedData("Once ")); |
| 875 checkpoint.Call(2); | 875 checkpoint.Call(2); |
| 876 writer_->Fail(); | 876 writer_->Fail(); |
| 877 checkpoint.Call(3); | 877 checkpoint.Call(3); |
| 878 RunPostedTasks(); | 878 RunPostedTasks(); |
| 879 checkpoint.Call(4); | 879 checkpoint.Call(4); |
| 880 } | 880 } |
| 881 | 881 |
| 882 TEST_P(SharedMemoryDataConsumerHandleTest, RecursiveErrorNotification) { | 882 TEST_P(SharedMemoryDataConsumerHandleTest, RecursiveErrorNotification) { |
| 883 Checkpoint checkpoint; | 883 Checkpoint checkpoint; |
| 884 | 884 |
| 885 InSequence s; | 885 InSequence s; |
| 886 EXPECT_CALL(checkpoint, Call(0)); | 886 EXPECT_CALL(checkpoint, Call(0)); |
| 887 EXPECT_CALL(checkpoint, Call(1)); | 887 EXPECT_CALL(checkpoint, Call(1)); |
| 888 EXPECT_CALL(client_, didGetReadable()) | 888 EXPECT_CALL(client_, didGetReadable()) |
| 889 .WillOnce(Invoke(writer_.get(), &Writer::Fail)); | 889 .WillOnce(Invoke(writer_.get(), &Writer::Fail)); |
| 890 EXPECT_CALL(checkpoint, Call(2)); | 890 EXPECT_CALL(checkpoint, Call(2)); |
| 891 EXPECT_CALL(client_, didGetReadable()); | 891 EXPECT_CALL(client_, didGetReadable()); |
| 892 EXPECT_CALL(checkpoint, Call(3)); | 892 EXPECT_CALL(checkpoint, Call(3)); |
| 893 | 893 |
| 894 checkpoint.Call(0); | 894 checkpoint.Call(0); |
| 895 auto reader = handle_->ObtainReader(&client_); | 895 auto reader = handle_->obtainReader(&client_); |
| 896 checkpoint.Call(1); | 896 checkpoint.Call(1); |
| 897 writer_->AddData(NewFixedData("Once ")); | 897 writer_->AddData(NewFixedData("Once ")); |
| 898 checkpoint.Call(2); | 898 checkpoint.Call(2); |
| 899 RunPostedTasks(); | 899 RunPostedTasks(); |
| 900 checkpoint.Call(3); | 900 checkpoint.Call(3); |
| 901 } | 901 } |
| 902 | 902 |
| 903 TEST(SharedMemoryDataConsumerHandleBackpressureTest, Read) { | 903 TEST(SharedMemoryDataConsumerHandleBackpressureTest, Read) { |
| 904 base::MessageLoop loop; | 904 base::MessageLoop loop; |
| 905 char buffer[20]; | 905 char buffer[20]; |
| 906 Result result; | 906 Result result; |
| 907 size_t size; | 907 size_t size; |
| 908 | 908 |
| 909 std::unique_ptr<Writer> writer; | 909 std::unique_ptr<Writer> writer; |
| 910 auto handle = base::WrapUnique( | 910 auto handle = base::WrapUnique( |
| 911 new SharedMemoryDataConsumerHandle(kApplyBackpressure, &writer)); | 911 new SharedMemoryDataConsumerHandle(kApplyBackpressure, &writer)); |
| 912 scoped_refptr<Logger> logger(new Logger); | 912 scoped_refptr<Logger> logger(new Logger); |
| 913 writer->AddData( | 913 writer->AddData( |
| 914 base::WrapUnique(new LoggingFixedReceivedData("data1", "Once ", logger))); | 914 base::WrapUnique(new LoggingFixedReceivedData("data1", "Once ", logger))); |
| 915 writer->AddData( | 915 writer->AddData( |
| 916 base::WrapUnique(new LoggingFixedReceivedData("data2", "upon ", logger))); | 916 base::WrapUnique(new LoggingFixedReceivedData("data2", "upon ", logger))); |
| 917 writer->AddData( | 917 writer->AddData( |
| 918 base::WrapUnique(new LoggingFixedReceivedData("data3", "a ", logger))); | 918 base::WrapUnique(new LoggingFixedReceivedData("data3", "a ", logger))); |
| 919 writer->AddData( | 919 writer->AddData( |
| 920 base::WrapUnique(new LoggingFixedReceivedData("data4", "time ", logger))); | 920 base::WrapUnique(new LoggingFixedReceivedData("data4", "time ", logger))); |
| 921 | 921 |
| 922 auto reader = handle->ObtainReader(nullptr); | 922 auto reader = handle->obtainReader(nullptr); |
| 923 logger->Add("1"); | 923 logger->Add("1"); |
| 924 result = reader->read(buffer, 2, kNone, &size); | 924 result = reader->read(buffer, 2, kNone, &size); |
| 925 EXPECT_EQ(kOk, result); | 925 EXPECT_EQ(kOk, result); |
| 926 EXPECT_EQ(2u, size); | 926 EXPECT_EQ(2u, size); |
| 927 logger->Add("2"); | 927 logger->Add("2"); |
| 928 result = reader->read(buffer, 5, kNone, &size); | 928 result = reader->read(buffer, 5, kNone, &size); |
| 929 EXPECT_EQ(kOk, result); | 929 EXPECT_EQ(kOk, result); |
| 930 EXPECT_EQ(5u, size); | 930 EXPECT_EQ(5u, size); |
| 931 logger->Add("3"); | 931 logger->Add("3"); |
| 932 result = reader->read(buffer, 6, kNone, &size); | 932 result = reader->read(buffer, 6, kNone, &size); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 955 auto handle = base::WrapUnique( | 955 auto handle = base::WrapUnique( |
| 956 new SharedMemoryDataConsumerHandle(kApplyBackpressure, &writer)); | 956 new SharedMemoryDataConsumerHandle(kApplyBackpressure, &writer)); |
| 957 scoped_refptr<Logger> logger(new Logger); | 957 scoped_refptr<Logger> logger(new Logger); |
| 958 writer->AddData( | 958 writer->AddData( |
| 959 base::WrapUnique(new LoggingFixedReceivedData("data1", "Once ", logger))); | 959 base::WrapUnique(new LoggingFixedReceivedData("data1", "Once ", logger))); |
| 960 writer->AddData( | 960 writer->AddData( |
| 961 base::WrapUnique(new LoggingFixedReceivedData("data2", "upon ", logger))); | 961 base::WrapUnique(new LoggingFixedReceivedData("data2", "upon ", logger))); |
| 962 writer->AddData( | 962 writer->AddData( |
| 963 base::WrapUnique(new LoggingFixedReceivedData("data3", "a ", logger))); | 963 base::WrapUnique(new LoggingFixedReceivedData("data3", "a ", logger))); |
| 964 | 964 |
| 965 auto reader = handle->ObtainReader(nullptr); | 965 auto reader = handle->obtainReader(nullptr); |
| 966 logger->Add("1"); | 966 logger->Add("1"); |
| 967 result = reader->read(buffer, 2, kNone, &size); | 967 result = reader->read(buffer, 2, kNone, &size); |
| 968 EXPECT_EQ(kOk, result); | 968 EXPECT_EQ(kOk, result); |
| 969 EXPECT_EQ(2u, size); | 969 EXPECT_EQ(2u, size); |
| 970 logger->Add("2"); | 970 logger->Add("2"); |
| 971 writer->Close(); | 971 writer->Close(); |
| 972 logger->Add("3"); | 972 logger->Add("3"); |
| 973 handle.reset(); | 973 handle.reset(); |
| 974 reader.reset(); | 974 reader.reset(); |
| 975 logger->Add("4"); | 975 logger->Add("4"); |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1051 logger->log()); | 1051 logger->log()); |
| 1052 } | 1052 } |
| 1053 | 1053 |
| 1054 INSTANTIATE_TEST_CASE_P(SharedMemoryDataConsumerHandleTest, | 1054 INSTANTIATE_TEST_CASE_P(SharedMemoryDataConsumerHandleTest, |
| 1055 SharedMemoryDataConsumerHandleTest, | 1055 SharedMemoryDataConsumerHandleTest, |
| 1056 ::testing::Values(kApplyBackpressure, | 1056 ::testing::Values(kApplyBackpressure, |
| 1057 kDoNotApplyBackpressure)); | 1057 kDoNotApplyBackpressure)); |
| 1058 } // namespace | 1058 } // namespace |
| 1059 | 1059 |
| 1060 } // namespace content | 1060 } // namespace content |
| OLD | NEW |