From: Nathan Moinvaziri Date: Mon, 12 May 2025 17:16:27 +0000 (-0400) Subject: Add large 1mb buffer test for crc32 hashing. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4b7037cd080439c1a803cf1ae717040e3d7c6cad;p=thirdparty%2Fzlib-ng.git Add large 1mb buffer test for crc32 hashing. --- diff --git a/test/test_crc32.cc b/test/test_crc32.cc index 2f768d0c..3e3bc8ea 100644 --- a/test/test_crc32.cc +++ b/test/test_crc32.cc @@ -228,6 +228,29 @@ public: } }; +/* Test large 1MB buffer with known CRC32 */ +class crc32_large_buf : public ::testing::Test { +protected: + static uint8_t *buffer; + static const size_t buffer_size = 1024 * 1024; + + static void SetUpTestSuite() { + buffer = (uint8_t*)zng_alloc(buffer_size); + memset(buffer, 0x55, buffer_size); + } + + static void TearDownTestSuite() { + zng_free(buffer); + } + +public: + void hash(crc32_func crc32) { + EXPECT_EQ(crc32(0, buffer, buffer_size), 0x0026D5FB); + } +}; + +uint8_t *crc32_large_buf::buffer = nullptr; + INSTANTIATE_TEST_SUITE_P(crc32, crc32_variant, testing::ValuesIn(tests)); #define TEST_CRC32(name, func, support_flag) \ @@ -237,6 +260,13 @@ INSTANTIATE_TEST_SUITE_P(crc32, crc32_variant, testing::ValuesIn(tests)); return; \ } \ hash(GetParam(), func); \ + } \ + TEST_F(crc32_large_buf, name) { \ + if (!(support_flag)) { \ + GTEST_SKIP(); \ + return; \ + } \ + hash(func); \ } #ifndef WITHOUT_CHORBA