summaryrefslogtreecommitdiff
path: root/core/fpdfapi/parser/fpdf_parser_decode_embeddertest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/fpdfapi/parser/fpdf_parser_decode_embeddertest.cpp')
-rw-r--r--core/fpdfapi/parser/fpdf_parser_decode_embeddertest.cpp30
1 files changed, 17 insertions, 13 deletions
diff --git a/core/fpdfapi/parser/fpdf_parser_decode_embeddertest.cpp b/core/fpdfapi/parser/fpdf_parser_decode_embeddertest.cpp
index bf2fd6d10f..e95a4cc595 100644
--- a/core/fpdfapi/parser/fpdf_parser_decode_embeddertest.cpp
+++ b/core/fpdfapi/parser/fpdf_parser_decode_embeddertest.cpp
@@ -11,13 +11,13 @@
#include "testing/gtest/include/gtest/gtest.h"
#include "testing/test_support.h"
-class FPDFParserDecodeEmbeddertest : public EmbedderTest {};
+using FPDFParserDecodeEmbeddertest = EmbedderTest;
// NOTE: python's zlib.compress() and zlib.decompress() may be useful for
// external validation of the FlateEncode/FlateDecode test cases.
TEST_F(FPDFParserDecodeEmbeddertest, FlateEncode) {
- pdfium::StrFuncTestData flate_encode_cases[] = {
+ static const pdfium::StrFuncTestData flate_encode_cases[] = {
STR_IN_OUT_CASE("", "\x78\x9c\x03\x00\x00\x00\x00\x01"),
STR_IN_OUT_CASE(" ", "\x78\x9c\x53\x00\x00\x00\x21\x00\x21"),
STR_IN_OUT_CASE("123", "\x78\x9c\x33\x34\x32\x06\x00\01\x2d\x00\x97"),
@@ -37,18 +37,20 @@ TEST_F(FPDFParserDecodeEmbeddertest, FlateEncode) {
for (size_t i = 0; i < FX_ArraySize(flate_encode_cases); ++i) {
const pdfium::StrFuncTestData& data = flate_encode_cases[i];
unsigned char* buf = nullptr;
- unsigned int buf_size;
+ uint32_t buf_size;
EXPECT_TRUE(FlateEncode(data.input, data.input_size, &buf, &buf_size));
ASSERT_TRUE(buf);
- EXPECT_EQ(std::string((const char*)data.expected, data.expected_size),
- std::string((const char*)buf, buf_size))
+ EXPECT_EQ(data.expected_size, buf_size) << " for case " << i;
+ if (data.expected_size != buf_size)
+ continue;
+ EXPECT_EQ(0, memcmp(data.expected, buf, data.expected_size))
<< " for case " << i;
FX_Free(buf);
}
}
TEST_F(FPDFParserDecodeEmbeddertest, FlateDecode) {
- pdfium::DecodeTestData flate_decode_cases[] = {
+ static const pdfium::DecodeTestData flate_decode_cases[] = {
STR_IN_OUT_CASE("", "", 0),
STR_IN_OUT_CASE("preposterous nonsense", "", 2),
STR_IN_OUT_CASE("\x78\x9c\x03\x00\x00\x00\x00\x01", "", 8),
@@ -71,16 +73,18 @@ TEST_F(FPDFParserDecodeEmbeddertest, FlateDecode) {
for (size_t i = 0; i < FX_ArraySize(flate_decode_cases); ++i) {
const pdfium::DecodeTestData& data = flate_decode_cases[i];
- unsigned char* result = nullptr;
- unsigned int result_size;
+ unsigned char* buf = nullptr;
+ uint32_t buf_size;
EXPECT_EQ(data.processed_size,
- FlateDecode(data.input, data.input_size, &result, &result_size))
+ FlateDecode(data.input, data.input_size, &buf, &buf_size))
<< " for case " << i;
- ASSERT_TRUE(result);
- EXPECT_EQ(std::string((const char*)data.expected, data.expected_size),
- std::string((const char*)result, result_size))
+ ASSERT_TRUE(buf);
+ EXPECT_EQ(data.expected_size, buf_size) << " for case " << i;
+ if (data.expected_size != buf_size)
+ continue;
+ EXPECT_EQ(0, memcmp(data.expected, buf, data.expected_size))
<< " for case " << i;
- FX_Free(result);
+ FX_Free(buf);
}
}