diff options
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); | 
