Re: [PATCH 0/1] Add KUnit tests for lib/crc16.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi André,

On 9/24/24 6:33 PM, André Almeida wrote:
Hey!

On 9/23/24 01:26, Vinicius Peixoto wrote:
Hi all,

This patch was developed during a hackathon organized by LKCAMP [1],
with the objective of writing KUnit tests, both to introduce people to
the kernel development process and to learn about different subsystems
(with the positive side effect of improving the kernel test coverage, of
course).

We noticed there were tests for CRC32 in lib/crc32test.c and thought it
would be nice to have something similar for CRC16, since it seems to be
widely used in network drivers (as well as in some ext4 code).

Although this patch turned out quite big, most of the LOCs come from
tables containing randomly-generated test data that we use to validate
the kernel's implementation of CRC-16.
Can you share how you created the tables? Given that is impossible to review the table itself, at least people will be able to see how they got created at least.

Yes, of course, that was an oversight on my part. I'll make sure to add a more detailed explanation in the cover letter/commit message for the next revisions. Thanks for the suggestion!

This test follows lib/crc32test.c very closely; the data table is filled with 4096 random bytes, and the idea is to calculate several checksums within it by randomly choosing a i) start offset within the data buffer, ii) number of bytes after the start offset and iii) input CRC.

The checksums for the randomly-generated test cases were calculated using a reference implementation [1] and this test compares them against the values yielded by the kernel's implementation.

Thanks,
Vinicius

[1] https://github.com/lammertb/libcrc/blob/master/src/crc16.c

We would really appreciate any feedback/suggestions on how to improve
this. Thanks! :-)

Vinicius Peixoto (1):
   lib/crc16_kunit.c: add KUnit tests for crc16

  lib/Kconfig.debug |   8 +
  lib/Makefile      |   1 +
  lib/crc16_kunit.c | 715 ++++++++++++++++++++++++++++++++++++++++++++++
  3 files changed, 724 insertions(+)
  create mode 100644 lib/crc16_kunit.c







[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux