mirror of
https://github.com/aaru-dps/Aaru.Checksums.Native.git
synced 2025-12-16 19:24:29 +00:00
Add unit tests for CRC32.
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user