]>
git.ipfire.org Git - thirdparty/pdns.git/blob - pdns/test-bindparser_cc.cc
1 #define BOOST_TEST_DYN_LINK
2 #define BOOST_TEST_NO_MAIN
7 #include <boost/test/unit_test.hpp>
9 #include "pdnsexception.hh"
15 #include "bindparserclasses.hh"
20 BOOST_AUTO_TEST_SUITE(test_bindparser_cc
)
22 BOOST_AUTO_TEST_CASE(test_parser
)
25 std::ostringstream pathbuf
;
27 BOOST_CHECK_THROW(BP
.parse("../regression-tests/named.confx"), PDNSException
);
29 srcdir
= std::getenv("SRCDIR");
31 srcdir
= "."; // assume no shenanigans
33 pathbuf
<< srcdir
<< "/../pdns/named.conf.parsertest";
34 BP
.parse(pathbuf
.str());
36 vector
<BindDomainInfo
> domains
= BP
.getDomains();
37 BOOST_CHECK_EQUAL(domains
.size(), 11U);
39 #define checkzone(i, dname, fname, ztype, nmasters) \
41 BOOST_CHECK(domains[i].name == DNSName(dname)); \
42 BOOST_CHECK_EQUAL(domains[i].filename, fname); \
43 BOOST_CHECK_EQUAL(domains[i].type, #ztype); \
44 BOOST_CHECK_EQUAL(domains[i].masters.size(), nmasters); \
47 checkzone(0, "example.com", "./zones//example.com", master
, 0U);
48 checkzone(1, "test.com", "./zones//test.com", slave
, 1U);
49 BOOST_CHECK_EQUAL(domains
[1].masters
[0].toString(), ComboAddress("1.2.3.4", 5678).toString());
50 checkzone(2, "test.dyndns", "./zones//test.dyndns", garblewarble
, 0U);
51 checkzone(3, "wtest.com", "./zones//wtest.com", master
, 0U);
52 checkzone(4, "nztest.com", "./zones//nztest.com", master
, 0U);
53 checkzone(5, "dnssec-parent.com", "./zones//dnssec-parent.com", master
, 0U);
54 checkzone(6, "delegated.dnssec-parent.com", "./zones//delegated.dnssec-parent.com", master
, 0U);
55 checkzone(7, "secure-delegated.dnssec-parent.com", "./zones//secure-delegated.dnssec-parent.com", master
, 0U);
56 checkzone(8, "minimal.com", "./zones//minimal.com", master
, 0U);
57 checkzone(9, "tsig.com", "./zones//tsig.com", master
, 0U);
58 checkzone(10, "stest.com", "./zones//stest.com", master
, 0U);
61 BOOST_AUTO_TEST_SUITE_END()