summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/Makefile7
-rw-r--r--test/test.cc22
-rw-r--r--test/test_asc2bin.cc65
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);