From a965a97d8e4fd9090e64bbfe190b663b16f37f20 Mon Sep 17 00:00:00 2001 From: "fbarchard@google.com" Date: Tue, 17 Feb 2015 19:16:14 +0000 Subject: [PATCH] Unittest to test ValidateJpeg when jpeg is small but buffer is large BUG=404 TESTED=libyuvTest.ValidateJpegLarge R=harryjin@google.com Review URL: https://webrtc-codereview.appspot.com/36169004 git-svn-id: http://libyuv.googlecode.com/svn/trunk@1284 16f28f9a-4ce2-e073-06de-1de4eb20be90 --- README.chromium | 2 +- include/libyuv/version.h | 2 +- unit_test/convert_test.cc | 24 ++++++++++++++++++++++++ 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/README.chromium b/README.chromium index fffe51508..51c6f1c42 100644 --- a/README.chromium +++ b/README.chromium @@ -1,6 +1,6 @@ Name: libyuv URL: http://code.google.com/p/libyuv/ -Version: 1283 +Version: 1284 License: BSD License File: LICENSE diff --git a/include/libyuv/version.h b/include/libyuv/version.h index 8cef99e99..313063603 100644 --- a/include/libyuv/version.h +++ b/include/libyuv/version.h @@ -11,6 +11,6 @@ #ifndef INCLUDE_LIBYUV_VERSION_H_ // NOLINT #define INCLUDE_LIBYUV_VERSION_H_ -#define LIBYUV_VERSION 1283 +#define LIBYUV_VERSION 1284 #endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT diff --git a/unit_test/convert_test.cc b/unit_test/convert_test.cc index 71cdb8de6..8de8dba2d 100644 --- a/unit_test/convert_test.cc +++ b/unit_test/convert_test.cc @@ -1029,6 +1029,30 @@ TEST_F(libyuvTest, ValidateJpeg) { free_aligned_buffer_page_end(orig_pixels); } +TEST_F(libyuvTest, ValidateJpegLarge) { + const int kOff = 10; + const int kMinJpeg = 64; + const int kImageSize = benchmark_width_ * benchmark_height_ >= kMinJpeg ? + benchmark_width_ * benchmark_height_ : kMinJpeg; + const int kSize = kImageSize + kOff; + const int kBufSize = kImageSize * 10 + kOff; + align_buffer_64(orig_pixels, kBufSize); + + // No SOI or EOI. Expect fail. + memset(orig_pixels, 0, kBufSize); + EXPECT_FALSE(ValidateJpeg(orig_pixels, kBufSize)); + + // EOI, SOI. Expect pass. + orig_pixels[0] = 0xff; + orig_pixels[1] = 0xd8; // SOI. + orig_pixels[kSize - kOff + 0] = 0xff; + orig_pixels[kSize - kOff + 1] = 0xd9; // EOI. + for (int times = 0; times < benchmark_iterations_; ++times) { + EXPECT_TRUE(ValidateJpeg(orig_pixels, kBufSize)); + } + free_aligned_buffer_page_end(orig_pixels); +} + TEST_F(libyuvTest, InvalidateJpeg) { const int kOff = 10; const int kMinJpeg = 64;