]> git.ipfire.org Git - thirdparty/pdns.git/blame - pdns/test-bindparser_cc.cc
auth: add bind primary, secondary and primaries keywords
[thirdparty/pdns.git] / pdns / test-bindparser_cc.cc
CommitLineData
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
18using std::string;
19
c7f29d3e 20BOOST_AUTO_TEST_SUITE(test_bindparser_cc)
552ddf0c 21
8e416b30
OM
22BOOST_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
62BOOST_AUTO_TEST_SUITE_END()