]>
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 | 21 | |
8e416b30 OM |
22 | BOOST_AUTO_TEST_CASE(test_parser) |
23 | { | |
24 | const char* srcdir; | |
25 | std::ostringstream pathbuf; | |
26 | BindParser BP; | |
27 | BOOST_CHECK_THROW(BP.parse("../regression-tests/named.confx"), PDNSException); | |
28 | BP.setVerbose(true); | |
29 | srcdir = std::getenv("SRCDIR"); | |
30 | if (!srcdir) | |
31 | srcdir = "."; // assume no shenanigans | |
32 | ||
33 | pathbuf << srcdir << "/../pdns/named.conf.parsertest"; | |
34 | BP.parse(pathbuf.str()); | |
35 | ||
36 | vector<BindDomainInfo> domains = BP.getDomains(); | |
37 | BOOST_CHECK_EQUAL(domains.size(), 11U); | |
38 | ||
39 | #define checkzone(i, dname, fname, ztype, nmasters) \ | |
40 | { \ | |
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); \ | |
45 | } | |
46 | ||
3e0a03d0 JS |
47 | checkzone(0, "example.com", "./zones/example.com", master, 0U); |
48 | checkzone(1, "test.com", "./zones/test.com", slave, 1U); | |
8e416b30 | 49 | BOOST_CHECK_EQUAL(domains[1].masters[0].toString(), ComboAddress("1.2.3.4", 5678).toString()); |
3e0a03d0 | 50 | checkzone(2, "test.dyndns", "./zones/test.dyndns", garblewarble, 0U); |
e63e16c1 KM |
51 | checkzone(3, "wtest.com", "./zones/wtest.com", primary, 0U); |
52 | checkzone(4, "nztest.com", "./zones/nztest.com", secondary, 1U); | |
53 | BOOST_CHECK_EQUAL(domains[1].masters[0].toString(), ComboAddress("1.2.3.4", 5678).toString()); | |
54 | checkzone(5, "dnssec-parent.com", "./zones/dnssec-parent.com", primary, 0U); | |
55 | checkzone(6, "delegated.dnssec-parent.com", "./zones/delegated.dnssec-parent.com", primary, 0U); | |
56 | checkzone(7, "secure-delegated.dnssec-parent.com", "./zones/secure-delegated.dnssec-parent.com", primary, 0U); | |
57 | checkzone(8, "minimal.com", "./zones/minimal.com", primary, 0U); | |
58 | checkzone(9, "tsig.com", "./zones/tsig.com", primary, 0U); | |
59 | checkzone(10, "stest.com", "./zones/stest.com", primary, 0U); | |
552ddf0c PD |
60 | } |
61 | ||
62 | BOOST_AUTO_TEST_SUITE_END() |