]> git.ipfire.org Git - thirdparty/pdns.git/blame - pdns/test-zonemd_cc.cc
rec: allow exception to proxy protocal usage for specific listen addresses
[thirdparty/pdns.git] / pdns / test-zonemd_cc.cc
CommitLineData
1c2d079d 1#ifndef BOOST_TEST_DYN_LINK
eafa87e6 2#define BOOST_TEST_DYN_LINK
1c2d079d
FM
3#endif
4
eafa87e6 5#define BOOST_TEST_NO_MAIN
1c2d079d 6
eafa87e6
O
7#include <boost/test/unit_test.hpp>
8
9#include "zonemd.hh"
eafa87e6
O
10#include "zoneparser-tng.hh"
11
12BOOST_AUTO_TEST_SUITE(test_zonemd_cc)
13
2eaaa7c1
O
14static void testZoneMD(const std::string& zone, const std::string& file, bool ex, bool done, bool ok)
15{
eafa87e6
O
16 const char* p = std::getenv("SRCDIR");
17 if (!p) {
18 p = ".";
19 }
20 DNSName z(zone);
21 std::ostringstream pathbuf;
22 pathbuf << p << "/../regression-tests/zones/" + file;
23 ZoneParserTNG zpt(pathbuf.str(), z);
24
6376c2ee 25 bool validationDone = false, validationOK = false;
eafa87e6
O
26
27 try {
efe79e15
OM
28 auto zonemd = pdns::ZoneMD(z);
29 zonemd.readRecords(zpt);
30 zonemd.verify(validationDone, validationOK);
eafa87e6
O
31 }
32 catch (const PDNSException& e) {
eafa87e6
O
33 BOOST_CHECK(ex);
34 }
35 catch (const std::exception& e) {
eafa87e6
O
36 BOOST_CHECK(ex);
37 }
38
39 BOOST_CHECK(validationDone == done);
40 BOOST_CHECK(validationOK == ok);
41}
42
2eaaa7c1
O
43BOOST_AUTO_TEST_CASE(test_zonemd1)
44{
eafa87e6
O
45 testZoneMD("example", "zonemd1.zone", false, true, true);
46}
47
2eaaa7c1
O
48BOOST_AUTO_TEST_CASE(test_zonemd2)
49{
eafa87e6
O
50 testZoneMD("example", "zonemd2.zone", false, true, true);
51}
52
2eaaa7c1
O
53BOOST_AUTO_TEST_CASE(test_zonemd3)
54{
eafa87e6
O
55 testZoneMD("example", "zonemd3.zone", false, true, true);
56}
57
2eaaa7c1
O
58BOOST_AUTO_TEST_CASE(test_zonemd4)
59{
eafa87e6
O
60 testZoneMD("uri.arpa", "zonemd4.zone", false, true, true);
61}
62
2eaaa7c1
O
63BOOST_AUTO_TEST_CASE(test_zonemd5)
64{
eafa87e6
O
65 testZoneMD("root-servers.net", "zonemd5.zone", false, true, true);
66}
67
2eaaa7c1
O
68BOOST_AUTO_TEST_CASE(test_zonemd6)
69{
eafa87e6
O
70 testZoneMD("example", "zonemd-invalid.zone", false, true, false);
71}
72
2eaaa7c1
O
73BOOST_AUTO_TEST_CASE(test_zonemd7)
74{
eafa87e6
O
75 testZoneMD("example", "zonemd-nozonemd.zone", false, false, false);
76}
77
2eaaa7c1
O
78BOOST_AUTO_TEST_CASE(test_zonemd8)
79{
eafa87e6
O
80 testZoneMD("example", "zonemd-allunsup.zone", false, false, false);
81}
82
2eaaa7c1
O
83BOOST_AUTO_TEST_CASE(test_zonemd9)
84{
eafa87e6
O
85 testZoneMD("example", "zonemd-sha512.zone", false, true, true);
86}
87
2eaaa7c1
O
88BOOST_AUTO_TEST_CASE(test_zonemd10)
89{
eafa87e6
O
90 testZoneMD("example", "zonemd-serialmismatch.zone", false, false, false);
91}
92
2eaaa7c1
O
93BOOST_AUTO_TEST_CASE(test_zonemd11)
94{
eafa87e6
O
95 testZoneMD("example", "zonemd-duplicate.zone", false, false, false);
96}
97
2eaaa7c1
O
98BOOST_AUTO_TEST_CASE(test_zonemd12)
99{
eafa87e6
O
100 testZoneMD("root-servers.net", "zonemd-syntax.zone", true, false, false);
101}
102
2eaaa7c1
O
103BOOST_AUTO_TEST_CASE(test_zonemd13)
104{
eafa87e6
O
105 testZoneMD("xxx", "zonemd1.zone", false, false, false);
106}
107
108BOOST_AUTO_TEST_SUITE_END()