From 6f81dad1c2ce64dde6bd8c622bd2db756ce959e2 Mon Sep 17 00:00:00 2001 From: Nathan Moinvaziri Date: Mon, 12 May 2025 13:16:27 -0400 Subject: [PATCH] Add large 1mb buffer test for crc32 hashing. --- test/test_crc32.cc | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/test/test_crc32.cc b/test/test_crc32.cc index ea839383..a11d003a 100644 --- a/test/test_crc32.cc +++ b/test/test_crc32.cc @@ -213,6 +213,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) \ @@ -222,6 +245,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); \ } TEST_CRC32(braid, PREFIX(crc32_braid), 1) -- 2.47.2