81 lines
2.1 KiB
C++
81 lines
2.1 KiB
C++
/*
|
|
* drv_checksum.cpp
|
|
*
|
|
* Created on: Apr 6, 2017
|
|
* Author: svlies
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
#include <stdint.h>
|
|
#include <string.h>
|
|
|
|
#include <gtest/gtest.h>
|
|
#include <di/drv/xbee.h>
|
|
#include <di/array.h>
|
|
|
|
static struct di_drv_xbee_ctx ctx;
|
|
static uint8_t buf[] = {0x7e,0x00,0x04,0x08,0x52,0x4e,0x48};
|
|
static uint8_t long_buf[] = {0x7e,0x00,0x16,0x10,0x01,0x00,0x13,0xa2,0x00,0x40,0x0A,0x01,0x27,0xFF,0xFE,0x00,0x00,0x54,0x78,0x44,0x61,0x74,0x61,0x30,0x41};
|
|
|
|
void test_xbee_reset(void)
|
|
{
|
|
di_drv_xbee_init(&ctx);
|
|
}
|
|
|
|
TEST(drv_xbee_checksum_verify, verify_correct) {
|
|
test_xbee_reset();
|
|
di_buffer_flush(&ctx.buf);
|
|
|
|
di_buffer_write_u8(&ctx.buf,0x7e);
|
|
di_buffer_write_u8(&ctx.buf,0x00);
|
|
di_buffer_write_u8(&ctx.buf,0x04);
|
|
di_buffer_write_u8(&ctx.buf,0x08);
|
|
di_buffer_write_u8(&ctx.buf,0x52);
|
|
di_buffer_write_u8(&ctx.buf,0x4e);
|
|
di_buffer_write_u8(&ctx.buf,0x48);
|
|
di_buffer_write_u8(&ctx.buf,0x0f);
|
|
|
|
EXPECT_EQ(DNOK, di_drv_xbee_checksum_verify(&ctx.buf));
|
|
}
|
|
|
|
TEST(drv_xbee_checksum_verify, verify_incorrect) {
|
|
test_xbee_reset();
|
|
di_buffer_reset(&ctx.buf);
|
|
|
|
di_buffer_write_u8(&ctx.buf,0x7e);
|
|
di_buffer_write_u8(&ctx.buf,0x00);
|
|
di_buffer_write_u8(&ctx.buf,0x04);
|
|
di_buffer_write_u8(&ctx.buf,0x08);
|
|
di_buffer_write_u8(&ctx.buf,0x52);
|
|
di_buffer_write_u8(&ctx.buf,0x4e);
|
|
di_buffer_write_u8(&ctx.buf,0x48);
|
|
di_buffer_write_u8(&ctx.buf,0x0b);
|
|
|
|
EXPECT_EQ(DNE_CHECKSUM, di_drv_xbee_checksum_verify(&ctx.buf));
|
|
|
|
di_buffer_reset(&ctx.buf);
|
|
|
|
di_buffer_write_u8(&ctx.buf,0x7e);
|
|
di_buffer_write_u8(&ctx.buf,0x00);
|
|
di_buffer_write_u8(&ctx.buf,0x04);
|
|
di_buffer_write_u8(&ctx.buf,0x07);
|
|
di_buffer_write_u8(&ctx.buf,0x52);
|
|
di_buffer_write_u8(&ctx.buf,0x4e);
|
|
di_buffer_write_u8(&ctx.buf,0x48);
|
|
di_buffer_write_u8(&ctx.buf,0x0f);
|
|
|
|
EXPECT_EQ(DNE_CHECKSUM, di_drv_xbee_checksum_verify(&ctx.buf));
|
|
}
|
|
|
|
TEST(drv_xbee_checksum_generation, generate_test_1) {
|
|
test_xbee_reset();
|
|
|
|
EXPECT_EQ(0x0f, di_drv_xbee_checksum_calc(buf, DI_ARRAY_SIZE(buf)));
|
|
}
|
|
|
|
TEST(drv_xbee_checksum_generation, generate_test_2) {
|
|
test_xbee_reset();
|
|
|
|
EXPECT_EQ(0x13, di_drv_xbee_checksum_calc(long_buf, DI_ARRAY_SIZE(long_buf)));
|
|
}
|