summaryrefslogtreecommitdiff
path: root/testing/embedder_test.cpp
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2017-06-13 15:21:14 -0400
committerChromium commit bot <commit-bot@chromium.org>2017-06-13 19:33:05 +0000
commit957480c17682008ae2a14723868fcdcab89b6577 (patch)
treecf5f1cb09c4385b7a107d8c8efcc99ea046849f8 /testing/embedder_test.cpp
parent6500c6faf82f636d55c9ca5682711022890bef1d (diff)
downloadpdfium-957480c17682008ae2a14723868fcdcab89b6577.tar.xz
Allow zero length streams when parsing.chromium/3130
It's possible to create a stream of length 0 in a PDF document. Currently the code will early exit and return a nullptr. This causes issues when you want to print the given PDF as the FPDF_ImportPages code ends up only generating up to the zero length object. This CL allows creating streams with length 0 and updates the PDF saving code to output a blank stream. Bug: chromium:732380 Change-Id: I44182ba4aaac7c51284b002ba01bbc34b6bcf9e0 Reviewed-on: https://pdfium-review.googlesource.com/6490 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'testing/embedder_test.cpp')
-rw-r--r--testing/embedder_test.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/testing/embedder_test.cpp b/testing/embedder_test.cpp
index bf00c11607..6cea598400 100644
--- a/testing/embedder_test.cpp
+++ b/testing/embedder_test.cpp
@@ -326,6 +326,15 @@ FPDF_PAGE EmbedderTest::GetPageTrampoline(FPDF_FORMFILLINFO* info,
page_index);
}
+std::string EmbedderTest::HashBitmap(FPDF_BITMAP bitmap,
+ int expected_width,
+ int expected_height) {
+ uint8_t digest[16];
+ CRYPT_MD5Generate(static_cast<uint8_t*>(FPDFBitmap_GetBuffer(bitmap)),
+ expected_width * 4 * expected_height, digest);
+ return CryptToBase16(digest);
+}
+
// static
void EmbedderTest::CompareBitmap(FPDF_BITMAP bitmap,
int expected_width,
@@ -339,10 +348,8 @@ void EmbedderTest::CompareBitmap(FPDF_BITMAP bitmap,
if (!expected_md5sum)
return;
- uint8_t digest[16];
- CRYPT_MD5Generate(static_cast<uint8_t*>(FPDFBitmap_GetBuffer(bitmap)),
- expected_stride * expected_height, digest);
- EXPECT_EQ(expected_md5sum, CryptToBase16(digest));
+ EXPECT_EQ(expected_md5sum,
+ HashBitmap(bitmap, expected_width, expected_height));
}
// Can't use gtest-provided main since we need to stash the path to the