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