From: Aki Tuomi Date: Sun, 12 May 2013 07:47:25 +0000 (+0300) Subject: Test stubs for all records, some complete tests X-Git-Tag: auth-3.3-rc1~58^2~18 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b8871949b72e806c2437e577dd9fa78757620442;p=thirdparty%2Fpdns.git Test stubs for all records, some complete tests --- diff --git a/pdns/test-dnsrecords_cc.cc b/pdns/test-dnsrecords_cc.cc index fa79b181e8..eff1165e1a 100644 --- a/pdns/test-dnsrecords_cc.cc +++ b/pdns/test-dnsrecords_cc.cc @@ -9,6 +9,8 @@ using namespace boost; using namespace std; +#define LF(x) x, sizeof(x)-1 + BOOST_AUTO_TEST_SUITE(dnsrecords_cc) BOOST_AUTO_TEST_CASE(test_record_types) { @@ -17,10 +19,53 @@ BOOST_AUTO_TEST_CASE(test_record_types) { reportAllTypes(); cases_t cases = boost::assign::list_of - (case_t(QType::A, "127.0.0.1", "\x7F\x00\x00\x01",4)) - (case_t(QType::AAAA, "fe80::250:56ff:fe9b:114","\xFE\x80\x00\x00\x00\x00\x00\x00\x02\x50\x56\xFF\xFE\x9B\x01\x14",16)) - (case_t(QType::EUI48, "00-11-22-33-44-55","\x00\x11\x22\x33\x44\x55",6)) - (case_t(QType::EUI64, "00-11-22-33-44-55-66-77","\x00\x11\x22\x33\x44\x55\x66\x77",8)); + (case_t(QType::A, "127.0.0.1", LF("\x7F\x00\x00\x01"))) +// local nameserver + (case_t(QType::NS, "ns.rec.test.", LF("\x02ns\xc0\x11"))) +// non-local nameserver + (case_t(QType::NS, "ns.example.com.", LF("\x02ns\x07""example\x03""com\x00"))) +// local alias + (case_t(QType::CNAME, "name.rec.test.", LF("\x04name\xc0\x11"))) +// non-local alias + (case_t(QType::CNAME, "name.example.com.", LF("\x04name\x07""example\x03""com\x00"))) +// (case_t(QType::SOA, "zone format", LF("line format"))) +// (case_t(QType::MR, "zone format", LF("line format"))) +// (case_t(QType::PTR, "zone format", LF("line format"))) +// (case_t(QType::HINFO, "zone format", LF("line format"))) +// (case_t(QType::MX, "zone format", LF("line format"))) +// (case_t(QType::TXT, "zone format", LF("line format"))) +// (case_t(QType::RP, "zone format", LF("line format"))) +// (case_t(QType::AFSDB, "zone format", LF("line format"))) +// (case_t(QType::KEY, "zone format", LF("line format"))) +// (case_t(QType::LOC, "zone format", LF("line format"))) + (case_t(QType::AAAA, "fe80::250:56ff:fe9b:114", LF("\xFE\x80\x00\x00\x00\x00\x00\x00\x02\x50\x56\xFF\xFE\x9B\x01\x14"))) +// (case_t(QType::SRV, "zone format", LF("line format"))) +// (case_t(QType::NAPTR, "zone format", LF("line format"))) +// (case_t(QType::KX, "zone format", LF("line format"))) +// (case_t(QType::CERT, "zone format", LF("line format"))) +// (case_t(QType::OPT, "zone format", LF("line format"))) +// (case_t(QType::DS, "zone format", LF("line format"))) +// (case_t(QType::SSHFP, "zone format", LF("line format"))) +// (case_t(QType::IPSECKEY, "zone format", LF("line format"))) +// (case_t(QType::RRSIG, "zone format", LF("line format"))) +// (case_t(QType::NSEC, "zone format", LF("line format"))) +// (case_t(QType::DNSKEY, "zone format", LF("line format"))) +// (case_t(QType::DHCID, "zone format", LF("line format"))) +// (case_t(QType::NSEC3, "zone format", LF("line format"))) +// (case_t(QType::NSEC3PARAM, "zone format", LF("line format"))) +// (case_t(QType::TLSA, "zone format", LF("line format"))) +// (case_t(QType::SPF, "zone format", LF("line format"))) + (case_t(QType::EUI48, "00-11-22-33-44-55", LF("\x00\x11\x22\x33\x44\x55"))) + (case_t(QType::EUI64, "00-11-22-33-44-55-66-77", LF("\x00\x11\x22\x33\x44\x55\x66\x77"))); +// (case_t(QType::TSIG, "zone format", LF("line format"))) +// (case_t(QType::AXFR, "zone format", LF("line format"))) +// (case_t(QType::IXFR, "zone format", LF("line format"))) +// (case_t(QType::ANY, "zone format", LF("line format"))) +// (case_t(QType::URL, "zone format", LF("line format"))) +// (case_t(QType::MBOXFW, "zone format", LF("line format"))) +// (case_t(QType::CURL, "zone format", LF("line format"))) +// (case_t(QType::ADDR, "zone format", LF("line format"))) +// (case_t(QType::DLV, "zone format", LF("line format"))) BOOST_FOREACH(const cases_t::value_type& val, cases) { QType q(val.get<0>()); @@ -31,8 +76,10 @@ BOOST_AUTO_TEST_CASE(test_record_types) { std::string recData = rec->serialize("rec.test"); shared_ptr rec2 = DNSRecordContent::unserialize("rec.test",q.getCode(),recData); BOOST_CHECK_EQUAL(rec2->getZoneRepresentation(), val.get<1>()); - // and last, check the wire format - BOOST_CHECK_EQUAL(recData, std::string(val.get<2>(), val.get<2>() + val.get<3>())); + // and last, check the wire format (use hex format for error readability) + string cmpData = makeHexDump(std::string(val.get<2>(), val.get<2>() + val.get<3>())); + recData = makeHexDump(recData); + BOOST_CHECK_EQUAL(recData, cmpData); } }