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 // This has to be included first. | 5 // This has to be included first. |
6 // See http://code.google.com/p/googletest/issues/detail?id=371 | 6 // See http://code.google.com/p/googletest/issues/detail?id=371 |
7 #include "testing/gtest/include/gtest/gtest.h" | 7 #include "testing/gtest/include/gtest/gtest.h" |
8 | 8 |
9 #include <stddef.h> | 9 #include <stddef.h> |
10 #include <stdint.h> | 10 #include <stdint.h> |
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
306 } | 306 } |
307 void SetUp() override; | 307 void SetUp() override; |
308 void TearDown() override; | 308 void TearDown() override; |
309 | 309 |
310 // Create all black test image with |width| and |height| size. | 310 // Create all black test image with |width| and |height| size. |
311 bool CreateTestJpegImage(int width, int height, base::FilePath* filename); | 311 bool CreateTestJpegImage(int width, int height, base::FilePath* filename); |
312 | 312 |
313 // Read image from |filename| to |image_data|. | 313 // Read image from |filename| to |image_data|. |
314 void ReadTestJpegImage(base::FilePath& filename, TestImageFile* image_data); | 314 void ReadTestJpegImage(base::FilePath& filename, TestImageFile* image_data); |
315 | 315 |
| 316 // Returns a file path for a file in what name specified or media/test/data |
| 317 // directory. If the original file path is existed, returns it first. |
| 318 base::FilePath GetOriginalOrTestDataFilePath(const std::string& name); |
| 319 |
316 // Parsed data of |test_1280x720_jpeg_file_|. | 320 // Parsed data of |test_1280x720_jpeg_file_|. |
317 std::unique_ptr<TestImageFile> image_data_1280x720_black_; | 321 std::unique_ptr<TestImageFile> image_data_1280x720_black_; |
318 // Parsed data of |test_640x368_jpeg_file_|. | 322 // Parsed data of |test_640x368_jpeg_file_|. |
319 std::unique_ptr<TestImageFile> image_data_640x368_black_; | 323 std::unique_ptr<TestImageFile> image_data_640x368_black_; |
320 // Parsed data of |test_640x360_jpeg_file_|. | 324 // Parsed data of |test_640x360_jpeg_file_|. |
321 std::unique_ptr<TestImageFile> image_data_640x360_black_; | 325 std::unique_ptr<TestImageFile> image_data_640x360_black_; |
322 // Parsed data of "peach_pi-1280x720.jpg". | 326 // Parsed data of "peach_pi-1280x720.jpg". |
323 std::unique_ptr<TestImageFile> image_data_1280x720_default_; | 327 std::unique_ptr<TestImageFile> image_data_1280x720_default_; |
324 // Parsed data of failure image. | 328 // Parsed data of failure image. |
325 std::unique_ptr<TestImageFile> image_data_invalid_; | 329 std::unique_ptr<TestImageFile> image_data_invalid_; |
(...skipping 26 matching lines...) Expand all Loading... |
352 image_data_640x368_black_.reset( | 356 image_data_640x368_black_.reset( |
353 new TestImageFile(test_640x368_jpeg_file_.value())); | 357 new TestImageFile(test_640x368_jpeg_file_.value())); |
354 ASSERT_NO_FATAL_FAILURE(ReadTestJpegImage(test_640x368_jpeg_file_, | 358 ASSERT_NO_FATAL_FAILURE(ReadTestJpegImage(test_640x368_jpeg_file_, |
355 image_data_640x368_black_.get())); | 359 image_data_640x368_black_.get())); |
356 | 360 |
357 image_data_640x360_black_.reset( | 361 image_data_640x360_black_.reset( |
358 new TestImageFile(test_640x360_jpeg_file_.value())); | 362 new TestImageFile(test_640x360_jpeg_file_.value())); |
359 ASSERT_NO_FATAL_FAILURE(ReadTestJpegImage(test_640x360_jpeg_file_, | 363 ASSERT_NO_FATAL_FAILURE(ReadTestJpegImage(test_640x360_jpeg_file_, |
360 image_data_640x360_black_.get())); | 364 image_data_640x360_black_.get())); |
361 | 365 |
362 base::FilePath default_jpeg_file = GetTestDataFilePath(kDefaultJpegFilename); | 366 base::FilePath default_jpeg_file = |
| 367 GetOriginalOrTestDataFilePath(kDefaultJpegFilename); |
363 image_data_1280x720_default_.reset(new TestImageFile(kDefaultJpegFilename)); | 368 image_data_1280x720_default_.reset(new TestImageFile(kDefaultJpegFilename)); |
364 ASSERT_NO_FATAL_FAILURE( | 369 ASSERT_NO_FATAL_FAILURE( |
365 ReadTestJpegImage(default_jpeg_file, image_data_1280x720_default_.get())); | 370 ReadTestJpegImage(default_jpeg_file, image_data_1280x720_default_.get())); |
366 | 371 |
367 image_data_invalid_.reset(new TestImageFile("failure.jpg")); | 372 image_data_invalid_.reset(new TestImageFile("failure.jpg")); |
368 image_data_invalid_->data_str.resize(100, 0); | 373 image_data_invalid_->data_str.resize(100, 0); |
369 image_data_invalid_->visible_size.SetSize(1280, 720); | 374 image_data_invalid_->visible_size.SetSize(1280, 720); |
370 image_data_invalid_->output_size = VideoFrame::AllocationSize( | 375 image_data_invalid_->output_size = VideoFrame::AllocationSize( |
371 PIXEL_FORMAT_I420, image_data_invalid_->visible_size); | 376 PIXEL_FORMAT_I420, image_data_invalid_->visible_size); |
372 | 377 |
373 // |user_jpeg_filenames_| may include many files and use ';' as delimiter. | 378 // |user_jpeg_filenames_| may include many files and use ';' as delimiter. |
374 std::vector<base::FilePath::StringType> filenames = base::SplitString( | 379 std::vector<base::FilePath::StringType> filenames = base::SplitString( |
375 user_jpeg_filenames_, base::FilePath::StringType(1, ';'), | 380 user_jpeg_filenames_, base::FilePath::StringType(1, ';'), |
376 base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); | 381 base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); |
377 for (const auto& filename : filenames) { | 382 for (const auto& filename : filenames) { |
378 base::FilePath input_file = GetTestDataFilePath(filename); | 383 base::FilePath input_file = GetOriginalOrTestDataFilePath(filename); |
379 auto image_data = base::MakeUnique<TestImageFile>(filename); | 384 auto image_data = base::MakeUnique<TestImageFile>(filename); |
380 ASSERT_NO_FATAL_FAILURE(ReadTestJpegImage(input_file, image_data.get())); | 385 ASSERT_NO_FATAL_FAILURE(ReadTestJpegImage(input_file, image_data.get())); |
381 image_data_user_.push_back(std::move(image_data)); | 386 image_data_user_.push_back(std::move(image_data)); |
382 } | 387 } |
383 } | 388 } |
384 | 389 |
385 void JpegDecodeAcceleratorTestEnvironment::TearDown() { | 390 void JpegDecodeAcceleratorTestEnvironment::TearDown() { |
386 base::DeleteFile(test_1280x720_jpeg_file_, false); | 391 base::DeleteFile(test_1280x720_jpeg_file_, false); |
387 base::DeleteFile(test_640x368_jpeg_file_, false); | 392 base::DeleteFile(test_640x368_jpeg_file_, false); |
388 base::DeleteFile(test_640x360_jpeg_file_, false); | 393 base::DeleteFile(test_640x360_jpeg_file_, false); |
(...skipping 27 matching lines...) Expand all Loading... |
416 ASSERT_TRUE(ParseJpegPicture( | 421 ASSERT_TRUE(ParseJpegPicture( |
417 reinterpret_cast<const uint8_t*>(image_data->data_str.data()), | 422 reinterpret_cast<const uint8_t*>(image_data->data_str.data()), |
418 image_data->data_str.size(), &image_data->parse_result)); | 423 image_data->data_str.size(), &image_data->parse_result)); |
419 image_data->visible_size.SetSize( | 424 image_data->visible_size.SetSize( |
420 image_data->parse_result.frame_header.visible_width, | 425 image_data->parse_result.frame_header.visible_width, |
421 image_data->parse_result.frame_header.visible_height); | 426 image_data->parse_result.frame_header.visible_height); |
422 image_data->output_size = | 427 image_data->output_size = |
423 VideoFrame::AllocationSize(PIXEL_FORMAT_I420, image_data->visible_size); | 428 VideoFrame::AllocationSize(PIXEL_FORMAT_I420, image_data->visible_size); |
424 } | 429 } |
425 | 430 |
| 431 base::FilePath |
| 432 JpegDecodeAcceleratorTestEnvironment::GetOriginalOrTestDataFilePath( |
| 433 const std::string& name) { |
| 434 base::FilePath original_file_path = base::FilePath(name); |
| 435 base::FilePath return_file_path = GetTestDataFilePath(name); |
| 436 |
| 437 if (PathExists(original_file_path)) |
| 438 return_file_path = original_file_path; |
| 439 |
| 440 VLOG(3) << "Use file path " << return_file_path.value(); |
| 441 return return_file_path; |
| 442 } |
| 443 |
426 class JpegDecodeAcceleratorTest : public ::testing::Test { | 444 class JpegDecodeAcceleratorTest : public ::testing::Test { |
427 protected: | 445 protected: |
428 JpegDecodeAcceleratorTest() {} | 446 JpegDecodeAcceleratorTest() {} |
429 | 447 |
430 void TestDecode(size_t num_concurrent_decoders); | 448 void TestDecode(size_t num_concurrent_decoders); |
431 | 449 |
432 // The elements of |test_image_files_| are owned by | 450 // The elements of |test_image_files_| are owned by |
433 // JpegDecodeAcceleratorTestEnvironment. | 451 // JpegDecodeAcceleratorTestEnvironment. |
434 std::vector<TestImageFile*> test_image_files_; | 452 std::vector<TestImageFile*> test_image_files_; |
435 std::vector<ClientState> expected_status_; | 453 std::vector<ClientState> expected_status_; |
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
583 #if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY) | 601 #if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY) |
584 media::VaapiWrapper::PreSandboxInitialization(); | 602 media::VaapiWrapper::PreSandboxInitialization(); |
585 #endif | 603 #endif |
586 | 604 |
587 media::g_env = reinterpret_cast<media::JpegDecodeAcceleratorTestEnvironment*>( | 605 media::g_env = reinterpret_cast<media::JpegDecodeAcceleratorTestEnvironment*>( |
588 testing::AddGlobalTestEnvironment( | 606 testing::AddGlobalTestEnvironment( |
589 new media::JpegDecodeAcceleratorTestEnvironment(jpeg_filenames))); | 607 new media::JpegDecodeAcceleratorTestEnvironment(jpeg_filenames))); |
590 | 608 |
591 return RUN_ALL_TESTS(); | 609 return RUN_ALL_TESTS(); |
592 } | 610 } |
OLD | NEW |