From 3ab4a8c1c040480b81860a07f58aeb3a02a1c33b Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Wed, 20 Nov 2013 14:15:49 +0100 Subject: Added unittest (based on CppUnit) of asc2bin functions. --- test/test_asc2bin.cc | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 test/test_asc2bin.cc (limited to 'test/test_asc2bin.cc') diff --git a/test/test_asc2bin.cc b/test/test_asc2bin.cc new file mode 100644 index 0000000..38010bf --- /dev/null +++ b/test/test_asc2bin.cc @@ -0,0 +1,65 @@ +#include + +#include "../src/asc2bin.h" +#include "../src/asc2bin.cc" + +static int g_i = -1; + +class test_asc2bin : public CppUnit::TestFixture +{ + CPPUNIT_TEST_SUITE(test_asc2bin); + CPPUNIT_TEST(test_asc2nibble); + CPPUNIT_TEST(test_asc2bin_); + CPPUNIT_TEST_SUITE_END(); + +public: + void setUp() {} + void tearDown() {} + + void test_asc2nibble() { + CPPUNIT_ASSERT_EQUAL(asc2nibble('0'), 0x0); + CPPUNIT_ASSERT_EQUAL(asc2nibble('1'), 0x1); + CPPUNIT_ASSERT_EQUAL(asc2nibble('2'), 0x2); + CPPUNIT_ASSERT_EQUAL(asc2nibble('3'), 0x3); + CPPUNIT_ASSERT_EQUAL(asc2nibble('4'), 0x4); + CPPUNIT_ASSERT_EQUAL(asc2nibble('5'), 0x5); + CPPUNIT_ASSERT_EQUAL(asc2nibble('6'), 0x6); + CPPUNIT_ASSERT_EQUAL(asc2nibble('7'), 0x7); + CPPUNIT_ASSERT_EQUAL(asc2nibble('8'), 0x8); + CPPUNIT_ASSERT_EQUAL(asc2nibble('9'), 0x9); + CPPUNIT_ASSERT_EQUAL(asc2nibble('a'), 0xa); + CPPUNIT_ASSERT_EQUAL(asc2nibble('b'), 0xb); + CPPUNIT_ASSERT_EQUAL(asc2nibble('c'), 0xc); + CPPUNIT_ASSERT_EQUAL(asc2nibble('d'), 0xd); + CPPUNIT_ASSERT_EQUAL(asc2nibble('e'), 0xe); + CPPUNIT_ASSERT_EQUAL(asc2nibble('f'), 0xf); + + CPPUNIT_ASSERT_EQUAL(asc2nibble('A'), 0xa); + CPPUNIT_ASSERT_EQUAL(asc2nibble('B'), 0xb); + CPPUNIT_ASSERT_EQUAL(asc2nibble('C'), 0xc); + CPPUNIT_ASSERT_EQUAL(asc2nibble('D'), 0xd); + CPPUNIT_ASSERT_EQUAL(asc2nibble('E'), 0xe); + CPPUNIT_ASSERT_EQUAL(asc2nibble('F'), 0xf); + } + + void test_asc2bin_() { + char val[32] = {}; + const char h[] = "0123456789abcdefABCDEF0000000000"; + char ref[] = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, + 0xab, 0xcd, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00 }; + std::string sref; + sref.append(ref, sizeof(ref)); + + ssize_t sz = asc2bin(val, sizeof(val), h, strlen(h)); + + CPPUNIT_ASSERT_EQUAL((unsigned int)sz, sizeof(ref)); + + std::string sval; + sval.append(val, sz); + + CPPUNIT_ASSERT_EQUAL(sval, sref); + } +}; + +// Registers the fixture into the 'registry' +CPPUNIT_TEST_SUITE_REGISTRATION(test_asc2bin); -- cgit v1.2.3