From e31e98af64d05a74f68518a2c7704ee6a203e815 Mon Sep 17 00:00:00 2001 From: Sven Hesse Date: Sun, 5 Aug 2018 11:00:59 +0200 Subject: [PATCH] TESTS: Add a test for the even-divide case in INFLATE without size --- tests/common/deflate.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tests/common/deflate.cpp b/tests/common/deflate.cpp index b86968e8f6..5e3697312a 100644 --- a/tests/common/deflate.cpp +++ b/tests/common/deflate.cpp @@ -103,6 +103,22 @@ GTEST_TEST(DEFLATE, decompressBufWithoutDecompressedSize) { delete[] decompressed; } +GTEST_TEST(DEFLATE, decompressBufWithoutDecompressedSizeFrameSizeEvenDivide) { + static const size_t kSizeCompressed = sizeof(kDataCompressed); + static const size_t kSizeDecompressed = strlen(kDataUncompressed); + + size_t size = 0; + const byte *decompressed = + Common::decompressDeflateWithoutOutputSize(kDataCompressed, kSizeCompressed, size, Common::kWindowBitsMaxRaw, 89); + ASSERT_NE(decompressed, static_cast(0)); + ASSERT_EQ(size, kSizeDecompressed); + + for (size_t i = 0; i < kSizeDecompressed; i++) + EXPECT_EQ(decompressed[i], kDataUncompressed[i]) << "At index " << i; + + delete[] decompressed; +} + GTEST_TEST(DEFLATE, decompressStream) { static const size_t kSizeCompressed = sizeof(kDataCompressed); static const size_t kSizeDecompressed = strlen(kDataUncompressed);