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