From 9bacbe09371e0298d7e37fb3420f9c4ba1d7804a Mon Sep 17 00:00:00 2001 From: Peter van Dijk Date: Fri, 15 Mar 2013 11:52:47 +0000 Subject: [PATCH] add Boost Test based unit test suite git-svn-id: svn://svn.powerdns.com/pdns/trunk/pdns@3119 d19b8d6e-7fed-0310-83ef-9ca221ded41b --- configure.ac | 1 + pdns/Makefile.am | 5 +++++ pdns/test-misc_hh.cc | 46 ++++++++++++++++++++++++++++++++++++++++++++ pdns/testrunner.cc | 5 +++++ 4 files changed, 57 insertions(+) create mode 100644 pdns/test-misc_hh.cc create mode 100644 pdns/testrunner.cc diff --git a/configure.ac b/configure.ac index 1beab8224..05da963c9 100644 --- a/configure.ac +++ b/configure.ac @@ -22,6 +22,7 @@ BOOST_FOREACH #BOOST_FILESYSTEM([mt]) BOOST_PROGRAM_OPTIONS([mt]) BOOST_SERIALIZATION([mt]) +BOOST_TEST([mt]) #BOOST_SYSTEM([mt]) # detect pkg-config explicitly diff --git a/pdns/Makefile.am b/pdns/Makefile.am index 8e7a2eb1c..82955c154 100644 --- a/pdns/Makefile.am +++ b/pdns/Makefile.am @@ -40,6 +40,7 @@ bin_PROGRAMS = pdns_control pdnssec dnsreplay endif EXTRA_PROGRAMS=pdns_recursor sdig tsig-tests speedtest pdns_control dnsscope dnsgram \ +testrunner \ toysdig dnsdemog dnswasher dnsscan nproxy notify pdnssec dnsbulktest nsec3dig # dnslabel # tcptorture pdns_server_SOURCES=dnspacket.cc nameserver.cc tcpreceiver.hh \ @@ -232,6 +233,10 @@ dnsdemog_SOURCES=dnsdemog.cc misc.cc unix_utility.cc qtype.cc \ rec_control_SOURCES=rec_channel.cc rec_channel.hh rec_control.cc arguments.cc arguments.hh misc.cc qtype.cc \ unix_utility.cc logger.cc statbag.cc +testrunner_SOURCES=testrunner.c test-misc_hh.cc +testrunner_LDFLAGS= @DYNLINKFLAGS@ @THREADFLAGS@ $(BOOST_UNIT_TEST_FRAMEWORK_LDFLAGS) +testrunner_LDADD= $(BOOST_UNIT_TEST_FRAMEWORK_LIBS) + pdns_recursor_SOURCES=syncres.cc resolver.hh misc.cc unix_utility.cc qtype.cc \ logger.cc statbag.cc arguments.cc lwres.cc pdns_recursor.cc reczones.cc lwres.hh \ mtasker.hh syncres.hh recursor_cache.cc recursor_cache.hh dnsparser.cc \ diff --git a/pdns/test-misc_hh.cc b/pdns/test-misc_hh.cc new file mode 100644 index 000000000..f8f0f2971 --- /dev/null +++ b/pdns/test-misc_hh.cc @@ -0,0 +1,46 @@ +#define BOOST_TEST_DYN_LINK +#define BOOST_TEST_NO_MAIN + +#include +#include "misc.hh" +#include + +using std::string; + +BOOST_AUTO_TEST_SUITE(misc_hh) +typedef pair typedns_t; + +BOOST_AUTO_TEST_CASE(test_CIStringCompare) { + set nsset; + nsset.insert("abc"); + nsset.insert("ns.example.com"); + nsset.insert(""); + nsset.insert("ns.example.com"); + BOOST_CHECK_EQUAL(nsset.size(), 3); + + ostringstream s; + for(set::const_iterator i=nsset.begin();i!=nsset.end();++i) { + s<<"["<<*i<<"]"; + } + BOOST_CHECK_EQUAL(s.str(), "[][abc][ns.example.com]"); +} + +BOOST_AUTO_TEST_CASE(test_CIStringPairCompare) { + set nsset2; + nsset2.insert(make_pair("ns.example.com", 1)); + nsset2.insert(make_pair("abc", 1)); + nsset2.insert(make_pair("", 1)); + nsset2.insert(make_pair("abc", 2)); + nsset2.insert(make_pair("abc", 1)); + nsset2.insert(make_pair("ns.example.com", 0)); + BOOST_CHECK_EQUAL(nsset2.size(), 5); + + ostringstream s; + for(set::const_iterator i=nsset2.begin();i!=nsset2.end();++i) { + s<<"["<first<<"|"<second<<"]"; + } + BOOST_CHECK_EQUAL(s.str(), "[|1][abc|1][abc|2][ns.example.com|0][ns.example.com|1]"); +} + +BOOST_AUTO_TEST_SUITE_END() + diff --git a/pdns/testrunner.cc b/pdns/testrunner.cc new file mode 100644 index 000000000..320386679 --- /dev/null +++ b/pdns/testrunner.cc @@ -0,0 +1,5 @@ +#define BOOST_TEST_DYN_LINK +#define BOOST_TEST_MAIN +#define BOOST_TEST_MODULE unit + +#include -- 2.40.0