Add unit tests for CRC32.

This commit is contained in:
2021-10-05 02:41:28 +01:00
parent 26769548f5
commit 8e2f7e2b55
3 changed files with 76 additions and 13 deletions

View File

@@ -52,3 +52,58 @@ TEST_F(crc32Fixture, crc32_auto)
EXPECT_EQ(crc, EXPECTED_CRC32);
}
TEST_F(crc32Fixture, crc32_slicing)
{
uint32_t crc = CRC32_ISO_SEED;
crc32_slicing(&crc, buffer, 1048576);
crc ^= CRC32_ISO_SEED;
EXPECT_EQ(crc, EXPECTED_CRC32);
}
#if defined(__x86_64__) || defined(__amd64) || defined(_M_AMD64) || defined(_M_X64) || defined(__I386__) || \
defined(__i386__) || defined(__THW_INTEL) || defined(_M_IX86)
TEST_F(crc32Fixture, crc32_clmul)
{
if(!have_clmul()) return;
uint32_t crc = CRC32_ISO_SEED;
crc = ~crc32_clmul(buffer, 1048576, ~crc);
crc ^= CRC32_ISO_SEED;
EXPECT_EQ(crc, EXPECTED_CRC32);
}
#endif
#if defined(__aarch64__) || defined(_M_ARM64) || defined(__arm__) || defined(_M_ARM)
TEST_F(crc32Fixture, crc32_arm_crc32)
{
if(!have_arm_crc32()) return;
uint32_t crc = CRC32_ISO_SEED;
crc = armv8_crc32_little(crc, buffer, 1048576);
crc ^= CRC32_ISO_SEED;
EXPECT_EQ(crc, EXPECTED_CRC32);
}
TEST_F(crc32Fixture, crc32_vmull)
{
if(!have_neon()) return;
uint32_t crc = CRC32_ISO_SEED;
crc = ~crc32_vmull(buffer, 1048576, ~crc);
crc ^= CRC32_ISO_SEED;
EXPECT_EQ(crc, EXPECTED_CRC32);
}
#endif