]> git.ipfire.org Git - thirdparty/pdns.git/blame - pdns/test-bindparser_cc.cc
rec: Only log qname parsing errors when 'log-common-errors' is set
[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
PD
21
22BOOST_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
59BOOST_AUTO_TEST_SUITE_END()
60