34 lines
737 B
C++
34 lines
737 B
C++
#include <stdio.h>
|
|
#include <stdint.h>
|
|
#include <string.h>
|
|
|
|
#include <gtest/gtest.h>
|
|
|
|
#include <di/crc.h>
|
|
|
|
TEST(crc, crc16_ccitt) {
|
|
uint8_t buf[257];
|
|
uint16_t crc;
|
|
|
|
memset(buf, 0, sizeof(buf));
|
|
|
|
crc = di_crc16_ccitt(&buf, 0);
|
|
EXPECT_EQ(0xFFFFU, crc);
|
|
printf("crc: 0x%04x\n", crc);
|
|
|
|
buf[0] = 'A';
|
|
crc = di_crc16_ccitt(&buf, 1);
|
|
EXPECT_EQ(0xB915, crc);
|
|
printf("crc: 0x%04x\n", crc);
|
|
|
|
snprintf(reinterpret_cast<char *>(buf), sizeof(buf), "123456789");
|
|
crc = di_crc16_ccitt(&buf, strlen(reinterpret_cast<char *>(buf)));
|
|
EXPECT_EQ(0x29B1U, crc);
|
|
printf("crc: 0x%04x\n", crc);
|
|
|
|
memset(buf, 'A', 256);
|
|
crc = di_crc16_ccitt(&buf, strlen(reinterpret_cast<char *>(buf)));
|
|
EXPECT_EQ(0xEA0B, crc);
|
|
printf("crc: 0x%04x\n", crc);
|
|
}
|