libuav original

Dependents:   UAVCAN UAVCAN_Subscriber

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers crc.cpp Source File

crc.cpp

00001 /*
00002  * Copyright (C) 2014 Pavel Kirienko <pavel.kirienko@gmail.com>
00003  */
00004 
00005 #include <gtest/gtest.h>
00006 #include <uavcan/transport/crc.hpp>
00007 
00008 /*
00009    import crcmod
00010    crc = crcmod.predefined.Crc('crc-ccitt-false')
00011    crc.update('123')
00012    crc.hexdigest()
00013    '5BCE'
00014    crc.update('456789')
00015    crc.hexdigest()
00016    '29B1'
00017  */
00018 
00019 TEST(TransferCRC, Correctness)
00020 {
00021     uavcan::TransferCRC crc;
00022 
00023     ASSERT_EQ(0xFFFF, crc.get());
00024 
00025     crc.add('1');
00026     crc.add('2');
00027     crc.add('3');
00028     ASSERT_EQ(0x5BCE, crc.get());
00029 
00030     crc.add(reinterpret_cast<const uint8_t*>("456789"), 6);
00031     ASSERT_EQ(0x29B1, crc.get());
00032 }