]>
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
4 #include <boost/test/unit_test.hpp>
5 #include "bindparserclasses.hh"
7 #include "pdnsexception.hh"
9 #include <boost/foreach.hpp>
15 BOOST_AUTO_TEST_SUITE(bindparser_cc
)
17 BOOST_AUTO_TEST_CASE(test_parser
) {
19 std::ostringstream pathbuf
;
21 BOOST_CHECK_THROW( BP
.parse("../regression-tests/named.confx"), PDNSException
);
23 srcdir
= std::getenv("SRCDIR");
25 srcdir
="."; // assume no shenanigans
27 pathbuf
<< srcdir
<< "/../pdns/named.conf.parsertest";
28 BP
.parse(pathbuf
.str());
30 vector
<BindDomainInfo
> domains
=BP
.getDomains();
31 BOOST_CHECK_EQUAL(domains
.size(), 11);
33 #define checkzone(i, dname, fname, ztype, nmasters) { \
34 BOOST_CHECK_EQUAL(domains[i].name, #dname); \
35 BOOST_CHECK_EQUAL(domains[i].filename, fname); \
36 BOOST_CHECK_EQUAL(domains[i].type, #ztype); \
37 BOOST_CHECK_EQUAL(domains[i].masters.size(), nmasters); \
40 checkzone(0, example
.com
, "./zones//example.com", master
, 0);
41 checkzone(1, test
.com
, "./zones//test.com", slave
, 1);
42 BOOST_CHECK_EQUAL(domains
[1].masters
[0], "1.2.3.4:5678");
43 checkzone(2, test
.dyndns
, "./zones//test.dyndns", garblewarble
, 0);
44 checkzone(3, wtest
.com
, "./zones//wtest.com", master
, 0);
45 checkzone(4, nztest
.com
, "./zones//nztest.com", master
, 0);
46 checkzone(5, dnssec
-parent
.com
, "./zones//dnssec-parent.com", master
, 0);
47 checkzone(6, delegated
.dnssec
-parent
.com
, "./zones//delegated.dnssec-parent.com", master
, 0);
48 checkzone(7, secure
-delegated
.dnssec
-parent
.com
, "./zones//secure-delegated.dnssec-parent.com", master
, 0);
49 checkzone(8, minimal
.com
, "./zones//minimal.com", master
, 0);
50 checkzone(9, tsig
.com
, "./zones//tsig.com", master
, 0);
51 checkzone(10, stest
.com
, "./zones//stest.com", master
, 0);
54 BOOST_AUTO_TEST_SUITE_END()