int main(int argc, char *argv[]) { int i; int j; int len; uint16_t crc16a; uint16_t crc16b; printf("CRC module tests\n"); /* TODO: This doesn't check every function in the module */ /* Try a few random messages through the CRC logic. */ printf("Testing the CRC-16 routines\n"); for (i = 0; i < 100; i++) { ref_len = cook_up_msg(buf); len = crc_itu16_append(buf, ref_len); if (!crc_itu16_check(buf, len)) { printf("CRC-16 failure\n"); exit(2); } } printf("Test passed.\n\n"); printf("Testing the CRC-16 byte by byte and bit by bit routines\n"); for (i = 0; i < 100; i++) { ref_len = cook_up_msg(buf); crc16a = 0xFFFF; crc16a = crc_itu16_calc(buf, ref_len, crc16a); crc16b = 0xFFFF; for (j = 0; j < ref_len; j++) crc16b = crc_itu16_bits(buf[j], 8, crc16b); if (crc16a != crc16b) { printf("CRC-16 failure\n"); exit(2); } } printf("Test passed.\n\n"); printf("Testing the CRC-32 routines\n"); for (i = 0; i < 100; i++) { ref_len = cook_up_msg(buf); len = crc_itu32_append(buf, ref_len); if (!crc_itu32_check(buf, len)) { printf("CRC-32 failure\n"); exit(2); } } printf("Test passed.\n"); return 0; }
int main(int argc, char *argv[]) { int i; int len; printf("HDLC module tests\n"); /* TODO: This doesn't check every function in the module */ /* Try a few random messages through the CRC logic. */ printf("Testing the CRC-16 routines\n"); for (i = 0; i < 100; i++) { ref_len = cook_up_msg(buf); len = crc_itu16_append(buf, ref_len); if (!crc_itu16_check(buf, len)) { printf("CRC-16 failure\n"); exit(2); } } printf("Test passed.\n\n"); printf("Testing the CRC-32 routines\n"); for (i = 0; i < 100; i++) { ref_len = cook_up_msg(buf); len = crc_itu32_append(buf, ref_len); if (!crc_itu32_check(buf, len)) { printf("CRC-32 failure\n"); exit(2); } } printf("Test passed.\n"); return 0; }