diff options
author | Bent Bisballe Nyeng <deva@aasimon.org> | 2013-11-20 14:15:49 +0100 |
---|---|---|
committer | Bent Bisballe Nyeng <deva@aasimon.org> | 2013-11-20 14:15:49 +0100 |
commit | 3ab4a8c1c040480b81860a07f58aeb3a02a1c33b (patch) | |
tree | 3b878d4e494ed709cbf48bc7b5d8424e1367e53b /test | |
parent | ad2349f32e4e8cbeea170fbbeb4d3dc453475872 (diff) |
Added unittest (based on CppUnit) of asc2bin functions.
Diffstat (limited to 'test')
-rw-r--r-- | test/Makefile | 7 | ||||
-rw-r--r-- | test/test.cc | 22 | ||||
-rw-r--r-- | test/test_asc2bin.cc | 65 |
3 files changed, 94 insertions, 0 deletions
diff --git a/test/Makefile b/test/Makefile index 49bcf0d..82fc79f 100644 --- a/test/Makefile +++ b/test/Makefile @@ -1,3 +1,6 @@ +CFLAGS=`cppunit-config --cflags` +LIBS=`cppunit-config --libs` + all: connectivity amrwb init rtp srtp opus raw connectivity: @@ -27,3 +30,7 @@ rtp: srtp: g++ -g -DUSE_CRYPTO test_$@.cc ../src/rtp.cc ../src/srtp.cc ../src/asc2bin.cc -lsrtp -o test_$@ ./test_$@ + +asc2bin: + g++ ${CFLAGS} ${LIBS} -g test.cc test_$@.cc -o test_$@ + ./test_$@ diff --git a/test/test.cc b/test/test.cc new file mode 100644 index 0000000..171a578 --- /dev/null +++ b/test/test.cc @@ -0,0 +1,22 @@ +#include <cppunit/CompilerOutputter.h> +#include <cppunit/extensions/TestFactoryRegistry.h> +#include <cppunit/ui/text/TestRunner.h> + +int main(int argc, char* argv[]) +{ + // Get the top level suite from the registry + CppUnit::Test *suite = CppUnit::TestFactoryRegistry::getRegistry().makeTest(); + + // Adds the test to the list of test to run + CppUnit::TextUi::TestRunner runner; + runner.addTest( suite ); + + // Change the default outputter to a compiler error format outputter + runner.setOutputter( new CppUnit::CompilerOutputter( &runner.result(), + std::cerr ) ); + // Run the tests. + bool wasSucessful = runner.run(); + + // Return error code 1 if the one of test failed. + return wasSucessful ? 0 : 1; +} 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 <cppunit/extensions/HelperMacros.h> + +#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); |