src.dualinventive.com/fw/dncm/libdi/tests/crc.cpp

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);
}