]> git.ipfire.org Git - thirdparty/pdns.git/blob - pdns/test-bindparser_cc.cc
whitespace conflict. Merge branch 'master' into deforeach
[thirdparty/pdns.git] / pdns / test-bindparser_cc.cc
1 #define BOOST_TEST_DYN_LINK
2 #define BOOST_TEST_NO_MAIN
3
4 #ifdef HAVE_CONFIG_H
5 #include "config.h"
6 #endif
7 #include <boost/test/unit_test.hpp>
8 #include "misc.hh"
9 #include "pdnsexception.hh"
10 #include <utility>
11
12 #include <sstream>
13 #include <cstdlib>
14 #include "dnsname.hh"
15 #include "bindparserclasses.hh"
16
17 using std::string;
18
19 BOOST_AUTO_TEST_SUITE(bindparser_cc)
20
21 BOOST_AUTO_TEST_CASE(test_parser) {
22 const char *srcdir;
23 std::ostringstream pathbuf;
24 BindParser BP;
25 BOOST_CHECK_THROW( BP.parse("../regression-tests/named.confx"), PDNSException);
26 BP.setVerbose(true);
27 srcdir = std::getenv("SRCDIR");
28 if(!srcdir)
29 srcdir="."; // assume no shenanigans
30
31 pathbuf << srcdir << "/../pdns/named.conf.parsertest";
32 BP.parse(pathbuf.str());
33
34 vector<BindDomainInfo> domains=BP.getDomains();
35 BOOST_CHECK_EQUAL(domains.size(), 11);
36
37 #define checkzone(i, dname, fname, ztype, nmasters) { \
38 BOOST_CHECK(domains[i].name == DNSName(#dname)); \
39 BOOST_CHECK_EQUAL(domains[i].filename, fname); \
40 BOOST_CHECK_EQUAL(domains[i].type, #ztype); \
41 BOOST_CHECK_EQUAL(domains[i].masters.size(), nmasters); \
42 }
43
44 checkzone(0, example.com, "./zones//example.com", master, 0);
45 checkzone(1, test.com, "./zones//test.com", slave, 1);
46 BOOST_CHECK_EQUAL(domains[1].masters[0], "1.2.3.4:5678");
47 checkzone(2, test.dyndns, "./zones//test.dyndns", garblewarble, 0);
48 checkzone(3, wtest.com, "./zones//wtest.com", master, 0);
49 checkzone(4, nztest.com, "./zones//nztest.com", master, 0);
50 checkzone(5, dnssec-parent.com, "./zones//dnssec-parent.com", master, 0);
51 checkzone(6, delegated.dnssec-parent.com, "./zones//delegated.dnssec-parent.com", master, 0);
52 checkzone(7, secure-delegated.dnssec-parent.com, "./zones//secure-delegated.dnssec-parent.com", master, 0);
53 checkzone(8, minimal.com, "./zones//minimal.com", master, 0);
54 checkzone(9, tsig.com, "./zones//tsig.com", master, 0);
55 checkzone(10, stest.com, "./zones//stest.com", master, 0);
56 }
57
58 BOOST_AUTO_TEST_SUITE_END()
59