]> git.ipfire.org Git - thirdparty/pdns.git/blame - pdns/test-bindparser_cc.cc
dnsdist: Fix DNS over plain HTTP broken by `reloadAllCertificates()`
[thirdparty/pdns.git] / pdns / test-bindparser_cc.cc
CommitLineData
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
21using std::string;
22
c7f29d3e 23BOOST_AUTO_TEST_SUITE(test_bindparser_cc)
552ddf0c 24
8e416b30
OM
25BOOST_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
65BOOST_AUTO_TEST_SUITE_END()