From 5c9b1205e7a51a51de20abf879545a82e3523602 Mon Sep 17 00:00:00 2001 From: Aki Tuomi Date: Mon, 27 May 2013 13:19:42 +0300 Subject: [PATCH] Test cases for base32 --- pdns/Makefile.am | 3 ++- pdns/test-base32_cc.cc | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 pdns/test-base32_cc.cc diff --git a/pdns/Makefile.am b/pdns/Makefile.am index 12c1b930c2..9028b8cbed 100644 --- a/pdns/Makefile.am +++ b/pdns/Makefile.am @@ -243,7 +243,8 @@ 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.cc test-misc_hh.cc test-nameserver_cc.cc test-dnsrecords_cc.cc nameserver.cc misc.cc \ +testrunner_SOURCES=testrunner.cc test-misc_hh.cc test-nameserver_cc.cc test-dnsrecords_cc.cc test-base32_cc.cc \ + nameserver.cc misc.cc \ unix_utility.cc logger.cc statbag.cc arguments.cc qtype.cc dnspacket.cc \ dnswriter.cc base64.cc base32.cc dnsrecords.cc dnslabeltext.cc dnsparser.cc \ rcpgenerator.cc ednssubnet.cc nsecrecords.cc sillyrecords.cc dnssecinfra.cc \ diff --git a/pdns/test-base32_cc.cc b/pdns/test-base32_cc.cc new file mode 100644 index 0000000000..7293a2c4f6 --- /dev/null +++ b/pdns/test-base32_cc.cc @@ -0,0 +1,35 @@ +#define BOOST_TEST_DYN_LINK +#define BOOST_TEST_NO_MAIN +#include +#include +#include +#include +#include "base32.hh" + +BOOST_AUTO_TEST_SUITE(test_base32_cc) + +BOOST_AUTO_TEST_CASE(test_record_types) { + typedef boost::tuple case_t; + typedef std::list cases_t; + + // RFC test vectors + cases_t cases = boost::assign::list_of + (case_t(std::string(""), std::string(""))) + (case_t(std::string("f"), std::string("CO======"))) + (case_t(std::string("fo"), std::string("CPNG===="))) + (case_t(std::string("foo"), std::string("CPNMU==="))) + (case_t(std::string("foob"), std::string("CPNMUOG="))) + (case_t(std::string("fooba"), std::string("CPNMUOJ1"))) + (case_t(std::string("foobar"), std::string("CPNMUOJ1E8======"))) + ; + + BOOST_FOREACH(const case_t& val, cases) { + std::string res; + res = toBase32Hex(val.get<0>()); + BOOST_CHECK_EQUAL(res, val.get<1>()); + res = fromBase32Hex(val.get<1>()); + BOOST_CHECK_EQUAL(res, val.get<0>()); + } +}; + +BOOST_AUTO_TEST_SUITE_END(); -- 2.47.2