]> www.infradead.org Git - users/jedix/linux-maple.git/commit
lib/crc_kunit.c: add KUnit test suite for CRC library functions
authorEric Biggers <ebiggers@google.com>
Mon, 2 Dec 2024 01:20:52 +0000 (17:20 -0800)
committerEric Biggers <ebiggers@google.com>
Mon, 2 Dec 2024 01:23:13 +0000 (17:23 -0800)
commite47d9b1a76ed78d0d50491f6a7d8ef59e379f45c
tree54f29b555e723a69dd1f375241046d47d1c6f70b
parent7439cfed1c41e5a1f3d095d3a4ffecdb13b279c4
lib/crc_kunit.c: add KUnit test suite for CRC library functions

Add a KUnit test suite for the crc16, crc_t10dif, crc32_le, crc32_be,
crc32c, and crc64_be library functions.  It avoids code duplication by
sharing most logic among all CRC variants.  The test suite includes:

- Differential fuzz test of each CRC function against a simple
  bit-at-a-time reference implementation.
- Test for CRC combination, when implemented by a CRC variant.
- Optional benchmark of each CRC function with various data lengths.

This is intended as a replacement for crc32test and crc16_kunit, as well
as a new test for CRC variants which didn't previously have a test.

Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Cc: Vinicius Peixoto <vpeixoto@lkcamp.dev>
Link: https://lore.kernel.org/r/20241202012056.209768-9-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@google.com>
lib/Kconfig.debug
lib/Makefile
lib/crc_kunit.c [new file with mode: 0644]