]> git.ipfire.org Git - thirdparty/pdns.git/blame - pdns/test-ixfr_cc.cc
pkcs11signers: Use emplace_back for attributes
[thirdparty/pdns.git] / pdns / test-ixfr_cc.cc
CommitLineData
e503653f
RG
1#define BOOST_TEST_DYN_LINK
2#define BOOST_TEST_NO_MAIN
3
4#ifdef HAVE_CONFIG_H
5#include "config.h"
6#endif
7
8#include <boost/test/unit_test.hpp>
9
10#include "test-common.hh"
11#include "ixfr.hh"
12
c7f29d3e 13BOOST_AUTO_TEST_SUITE(test_ixfr_cc)
e503653f
RG
14
15BOOST_AUTO_TEST_CASE(test_ixfr_rfc1995_axfr) {
16 const ComboAddress master("[2001:DB8::1]:53");
17 const DNSName zone("JAIN.AD.JP.");
18
19 auto masterSOA = DNSRecordContent::mastermake(QType::SOA, QClass::IN, "NS.JAIN.AD.JP. mohta.jain.ad.jp. 3 600 600 3600000 604800");
20 vector<DNSRecord> records;
21 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 3 600 600 3600000 604800");
22 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::NS, "NS.JAIN.AD.JP.");
23 addRecordToList(records, DNSName("NS.JAIN.AD.JP."), QType::A, "133.69.136.1");
24 addRecordToList(records, DNSName("JAIN-BB.JAIN.AD.JP."), QType::A, "133.69.136.3");
25 addRecordToList(records, DNSName("JAIN-BB.JAIN.AD.JP."), QType::A, "192.41.197.2");
26 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 3 600 600 3600000 604800");
27
28 auto ret = processIXFRRecords(master, zone, records, std::dynamic_pointer_cast<SOARecordContent>(masterSOA));
690b86b7
OM
29 BOOST_CHECK_EQUAL(ret.size(), 1U);
30 BOOST_CHECK_EQUAL(ret.at(0).first.size(), 0U);
e503653f
RG
31 BOOST_REQUIRE_EQUAL(ret.at(0).second.size(), records.size());
32 for (size_t idx = 0; idx < records.size(); idx++) {
33 BOOST_CHECK(ret.at(0).second.at(idx) == records.at(idx));
34 }
35}
36
37BOOST_AUTO_TEST_CASE(test_ixfr_rfc1995_incremental) {
38 const ComboAddress master("[2001:DB8::1]:53");
39 const DNSName zone("JAIN.AD.JP.");
40
41 auto masterSOA = DNSRecordContent::mastermake(QType::SOA, QClass::IN, "NS.JAIN.AD.JP. mohta.jain.ad.jp. 3 600 600 3600000 604800");
42 vector<DNSRecord> records;
43 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 3 600 600 3600000 604800");
44 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 1 600 600 3600000 604800");
45 addRecordToList(records, DNSName("NEZU.JAIN.AD.JP."), QType::A, "133.69.136.5");
46 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 2 600 600 3600000 604800");
47 addRecordToList(records, DNSName("JAIN-BB.JAIN.AD.JP."), QType::A, "133.69.136.4");
48 addRecordToList(records, DNSName("JAIN-BB.JAIN.AD.JP."), QType::A, "192.41.197.2");
49 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 2 600 600 3600000 604800");
50 addRecordToList(records, DNSName("JAIN-BB.JAIN.AD.JP."), QType::A, "133.69.136.4");
51 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 3 600 600 3600000 604800");
52 addRecordToList(records, DNSName("JAIN-BB.JAIN.AD.JP."), QType::A, "133.69.136.3");
53 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 3 600 600 3600000 604800");
54
55 auto ret = processIXFRRecords(master, zone, records, std::dynamic_pointer_cast<SOARecordContent>(masterSOA));
56 // two sequences
690b86b7 57 BOOST_CHECK_EQUAL(ret.size(), 2U);
e503653f 58 // the first one has one removal, two additions (plus the corresponding SOA removal/addition)
690b86b7
OM
59 BOOST_CHECK_EQUAL(ret.at(0).first.size(), 1U + 1U);
60 BOOST_CHECK_EQUAL(ret.at(0).second.size(), 2U + 1U);
e503653f
RG
61
62 // check removals
63 BOOST_CHECK_EQUAL(ret.at(0).first.at(0).d_type, QType(QType::SOA).getCode());
64 BOOST_CHECK_EQUAL(ret.at(0).first.at(1).d_type, QType(QType::A).getCode());
65
66 // check additions
67 BOOST_CHECK_EQUAL(ret.at(0).second.at(0).d_type, QType(QType::SOA).getCode());
68 BOOST_CHECK_EQUAL(ret.at(0).second.at(1).d_type, QType(QType::A).getCode());
69 BOOST_CHECK_EQUAL(ret.at(0).second.at(2).d_type, QType(QType::A).getCode());
70
71 // the second one has one removal, one addition
690b86b7
OM
72 BOOST_CHECK_EQUAL(ret.at(1).first.size(), 1U + 1U);
73 BOOST_CHECK_EQUAL(ret.at(1).second.size(), 1U + 1U);
e503653f
RG
74
75 // check removals
76 BOOST_CHECK_EQUAL(ret.at(1).first.at(0).d_type, QType(QType::SOA).getCode());
77 BOOST_CHECK_EQUAL(ret.at(1).first.at(1).d_type, QType(QType::A).getCode());
78
79 // check additions
80 BOOST_CHECK_EQUAL(ret.at(1).second.at(0).d_type, QType(QType::SOA).getCode());
81 BOOST_CHECK_EQUAL(ret.at(1).second.at(1).d_type, QType(QType::A).getCode());
82}
83
84BOOST_AUTO_TEST_CASE(test_ixfr_rfc1995_condensed_incremental) {
85 const ComboAddress master("[2001:DB8::1]:53");
86 const DNSName zone("JAIN.AD.JP.");
87
88 auto masterSOA = DNSRecordContent::mastermake(QType::SOA, QClass::IN, "NS.JAIN.AD.JP. mohta.jain.ad.jp. 3 600 600 3600000 604800");
89 vector<DNSRecord> records;
90 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 3 600 600 3600000 604800");
91 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 1 600 600 3600000 604800");
92 addRecordToList(records, DNSName("NEZU.JAIN.AD.JP."), QType::A, "133.69.136.5");
93 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 3 600 600 3600000 604800");
94 addRecordToList(records, DNSName("JAIN-BB.JAIN.AD.JP."), QType::A, "133.69.136.3");
95 addRecordToList(records, DNSName("JAIN-BB.JAIN.AD.JP."), QType::A, "192.41.197.2");
96 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 3 600 600 3600000 604800");
97
98 auto ret = processIXFRRecords(master, zone, records, std::dynamic_pointer_cast<SOARecordContent>(masterSOA));
99 // one sequence
690b86b7 100 BOOST_CHECK_EQUAL(ret.size(), 1U);
e503653f 101 // it has one removal, two additions (plus the corresponding SOA removal/addition)
690b86b7
OM
102 BOOST_CHECK_EQUAL(ret.at(0).first.size(), 1U + 1U);
103 BOOST_CHECK_EQUAL(ret.at(0).second.size(), 2U + 1U);
e503653f
RG
104
105 // check removals
106 BOOST_CHECK_EQUAL(ret.at(0).first.at(0).d_type, QType(QType::SOA).getCode());
107 BOOST_CHECK_EQUAL(ret.at(0).first.at(1).d_type, QType(QType::A).getCode());
108
109 // check additions
110 BOOST_CHECK_EQUAL(ret.at(0).second.at(0).d_type, QType(QType::SOA).getCode());
111 BOOST_CHECK_EQUAL(ret.at(0).second.at(1).d_type, QType(QType::A).getCode());
112 BOOST_CHECK_EQUAL(ret.at(0).second.at(2).d_type, QType(QType::A).getCode());
113}
114
115BOOST_AUTO_TEST_CASE(test_ixfr_no_additions_in_first_sequence) {
116 const ComboAddress master("[2001:DB8::1]:53");
117 const DNSName zone("JAIN.AD.JP.");
118
119 auto masterSOA = DNSRecordContent::mastermake(QType::SOA, QClass::IN, "NS.JAIN.AD.JP. mohta.jain.ad.jp. 3 600 600 3600000 604800");
120 vector<DNSRecord> records;
121 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 3 600 600 3600000 604800");
122 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 1 600 600 3600000 604800");
123 addRecordToList(records, DNSName("NEZU.JAIN.AD.JP."), QType::A, "133.69.136.5");
124 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 2 600 600 3600000 604800");
125 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 2 600 600 3600000 604800");
126 addRecordToList(records, DNSName("JAIN-BB.JAIN.AD.JP."), QType::A, "133.69.136.5");
127 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 3 600 600 3600000 604800");
128 addRecordToList(records, DNSName("JAIN-BB.JAIN.AD.JP."), QType::A, "133.69.136.3");
129 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 3 600 600 3600000 604800");
130
131 auto ret = processIXFRRecords(master, zone, records, std::dynamic_pointer_cast<SOARecordContent>(masterSOA));
132 // two sequences
690b86b7 133 BOOST_CHECK_EQUAL(ret.size(), 2U);
e503653f 134 // the first one has one removal, no additions (plus the corresponding SOA removal/addition)
690b86b7
OM
135 BOOST_CHECK_EQUAL(ret.at(0).first.size(), 1U + 1U);
136 BOOST_CHECK_EQUAL(ret.at(0).second.size(), 0U + 1U);
e503653f
RG
137
138 // check removals
139 BOOST_CHECK_EQUAL(ret.at(0).first.at(0).d_type, QType(QType::SOA).getCode());
140 BOOST_CHECK_EQUAL(ret.at(0).first.at(1).d_type, QType(QType::A).getCode());
141
142 // check additions
143 BOOST_CHECK_EQUAL(ret.at(0).second.at(0).d_type, QType(QType::SOA).getCode());
144
145 // the second one has one removal, one addition
690b86b7
OM
146 BOOST_CHECK_EQUAL(ret.at(1).first.size(), 1U + 1U);
147 BOOST_CHECK_EQUAL(ret.at(1).second.size(), 1U + 1U);
e503653f
RG
148
149 // check removals
150 BOOST_CHECK_EQUAL(ret.at(1).first.at(0).d_type, QType(QType::SOA).getCode());
151 BOOST_CHECK_EQUAL(ret.at(1).first.at(1).d_type, QType(QType::A).getCode());
152
153 // check additions
154 BOOST_CHECK_EQUAL(ret.at(1).second.at(0).d_type, QType(QType::SOA).getCode());
155 BOOST_CHECK_EQUAL(ret.at(1).second.at(1).d_type, QType(QType::A).getCode());
156}
157
158BOOST_AUTO_TEST_CASE(test_ixfr_no_removals_in_first_sequence) {
159 const ComboAddress master("[2001:DB8::1]:53");
160 const DNSName zone("JAIN.AD.JP.");
161
162 auto masterSOA = DNSRecordContent::mastermake(QType::SOA, QClass::IN, "NS.JAIN.AD.JP. mohta.jain.ad.jp. 3 600 600 3600000 604800");
163 vector<DNSRecord> records;
164 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 3 600 600 3600000 604800");
165 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 1 600 600 3600000 604800");
166 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 2 600 600 3600000 604800");
167 addRecordToList(records, DNSName("JAIN-BB.JAIN.AD.JP."), QType::A, "133.69.136.4");
168 addRecordToList(records, DNSName("JAIN-BB.JAIN.AD.JP."), QType::A, "192.41.197.2");
169 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 2 600 600 3600000 604800");
170 addRecordToList(records, DNSName("JAIN-BB.JAIN.AD.JP."), QType::A, "133.69.136.4");
171 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 3 600 600 3600000 604800");
172 addRecordToList(records, DNSName("JAIN-BB.JAIN.AD.JP."), QType::A, "133.69.136.3");
173 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 3 600 600 3600000 604800");
174
175 auto ret = processIXFRRecords(master, zone, records, std::dynamic_pointer_cast<SOARecordContent>(masterSOA));
176 // two sequences
690b86b7 177 BOOST_CHECK_EQUAL(ret.size(), 2U);
e503653f 178 // the first one has no removal, two additions (plus the corresponding SOA removal/addition)
690b86b7
OM
179 BOOST_CHECK_EQUAL(ret.at(0).first.size(), 0U + 1U);
180 BOOST_CHECK_EQUAL(ret.at(0).second.size(), 2U + 1U);
e503653f
RG
181
182 // check removals
183 BOOST_CHECK_EQUAL(ret.at(0).first.at(0).d_type, QType(QType::SOA).getCode());
184
185 // check additions
186 BOOST_CHECK_EQUAL(ret.at(0).second.at(0).d_type, QType(QType::SOA).getCode());
187 BOOST_CHECK_EQUAL(ret.at(0).second.at(1).d_type, QType(QType::A).getCode());
188 BOOST_CHECK_EQUAL(ret.at(0).second.at(1).d_type, QType(QType::A).getCode());
189
190 // the second one has one removal, one addition
690b86b7
OM
191 BOOST_CHECK_EQUAL(ret.at(1).first.size(), 1U + 1U);
192 BOOST_CHECK_EQUAL(ret.at(1).second.size(), 1U + 1U);
e503653f
RG
193
194 // check removals
195 BOOST_CHECK_EQUAL(ret.at(1).first.at(0).d_type, QType(QType::SOA).getCode());
196 BOOST_CHECK_EQUAL(ret.at(1).first.at(1).d_type, QType(QType::A).getCode());
197
198 // check additions
199 BOOST_CHECK_EQUAL(ret.at(1).second.at(0).d_type, QType(QType::SOA).getCode());
200 BOOST_CHECK_EQUAL(ret.at(1).second.at(1).d_type, QType(QType::A).getCode());
201}
202
203BOOST_AUTO_TEST_CASE(test_ixfr_same_serial) {
204 const ComboAddress master("[2001:DB8::1]:53");
205 const DNSName zone("JAIN.AD.JP.");
206
207 auto masterSOA = DNSRecordContent::mastermake(QType::SOA, QClass::IN, "NS.JAIN.AD.JP. mohta.jain.ad.jp. 3 600 600 3600000 604800");
208 vector<DNSRecord> records;
209 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 3 600 600 3600000 604800");
210 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 3 600 600 3600000 604800");
211
212 auto ret = processIXFRRecords(master, zone, records, std::dynamic_pointer_cast<SOARecordContent>(masterSOA));
213
98b33176 214 // this is actually an empty AXFR
690b86b7 215 BOOST_CHECK_EQUAL(ret.size(), 1U);
98b33176 216 // nothing in the deletion part then
690b86b7 217 BOOST_CHECK_EQUAL(ret.at(0).first.size(), 0U);
98b33176 218 // and the two SOAs in the addition part
690b86b7 219 BOOST_CHECK_EQUAL(ret.at(0).second.size(), 2U);
98b33176
RG
220 BOOST_CHECK_EQUAL(ret.at(0).second.at(0).d_type, QType(QType::SOA).getCode());
221 BOOST_CHECK_EQUAL(ret.at(0).second.at(1).d_type, QType(QType::SOA).getCode());
e503653f
RG
222}
223
224BOOST_AUTO_TEST_CASE(test_ixfr_invalid_no_records) {
225 const ComboAddress master("[2001:DB8::1]:53");
226 const DNSName zone("JAIN.AD.JP.");
227
228 auto masterSOA = DNSRecordContent::mastermake(QType::SOA, QClass::IN, "NS.JAIN.AD.JP. mohta.jain.ad.jp. 3 600 600 3600000 604800");
229 vector<DNSRecord> records;
230
231 auto ret = processIXFRRecords(master, zone, records, std::dynamic_pointer_cast<SOARecordContent>(masterSOA));
690b86b7 232 BOOST_CHECK_EQUAL(ret.size(), 0U);
e503653f
RG
233}
234
235BOOST_AUTO_TEST_CASE(test_ixfr_invalid_no_master_soa) {
236 const ComboAddress master("[2001:DB8::1]:53");
237 const DNSName zone("JAIN.AD.JP.");
238;
239 vector<DNSRecord> records;
240 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 3 600 600 3600000 604800");
241
242 auto ret = processIXFRRecords(master, zone, records, nullptr);
690b86b7 243 BOOST_CHECK_EQUAL(ret.size(), 0U);
e503653f
RG
244}
245
246BOOST_AUTO_TEST_CASE(test_ixfr_invalid_no_trailing_soa) {
247 const ComboAddress master("[2001:DB8::1]:53");
248 const DNSName zone("JAIN.AD.JP.");
249
250 auto masterSOA = DNSRecordContent::mastermake(QType::SOA, QClass::IN, "NS.JAIN.AD.JP. mohta.jain.ad.jp. 3 600 600 3600000 604800");
251 vector<DNSRecord> records;
252 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 3 600 600 3600000 604800");
253 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 1 600 600 3600000 604800");
254 addRecordToList(records, DNSName("NEZU.JAIN.AD.JP."), QType::A, "133.69.136.5");
255 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 3 600 600 3600000 604800");
256 addRecordToList(records, DNSName("JAIN-BB.JAIN.AD.JP."), QType::A, "133.69.136.3");
257 addRecordToList(records, DNSName("JAIN-BB.JAIN.AD.JP."), QType::A, "192.41.197.2");
258
259 BOOST_CHECK_THROW(processIXFRRecords(master, zone, records, std::dynamic_pointer_cast<SOARecordContent>(masterSOA)), std::runtime_error);
260}
261
262BOOST_AUTO_TEST_CASE(test_ixfr_invalid_no_soa_after_removals) {
263 const ComboAddress master("[2001:DB8::1]:53");
264 const DNSName zone("JAIN.AD.JP.");
265
266 auto masterSOA = DNSRecordContent::mastermake(QType::SOA, QClass::IN, "NS.JAIN.AD.JP. mohta.jain.ad.jp. 3 600 600 3600000 604800");
267 vector<DNSRecord> records;
268 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 3 600 600 3600000 604800");
269 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 1 600 600 3600000 604800");
270 addRecordToList(records, DNSName("NEZU.JAIN.AD.JP."), QType::A, "133.69.136.5");
271
272 BOOST_CHECK_THROW(processIXFRRecords(master, zone, records, std::dynamic_pointer_cast<SOARecordContent>(masterSOA)), std::runtime_error);
273}
274
ce3b897d 275BOOST_AUTO_TEST_CASE(test_ixfr_mismatching_serial_before_and_after_additions) {
e503653f
RG
276 const ComboAddress master("[2001:DB8::1]:53");
277 const DNSName zone("JAIN.AD.JP.");
278
279 auto masterSOA = DNSRecordContent::mastermake(QType::SOA, QClass::IN, "NS.JAIN.AD.JP. mohta.jain.ad.jp. 3 600 600 3600000 604800");
280 vector<DNSRecord> records;
281 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 3 600 600 3600000 604800");
282 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 1 600 600 3600000 604800");
283 addRecordToList(records, DNSName("NEZU.JAIN.AD.JP."), QType::A, "133.69.136.5");
284 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 2 600 600 3600000 604800");
285 addRecordToList(records, DNSName("JAIN-BB.JAIN.AD.JP."), QType::A, "133.69.136.3");
286 addRecordToList(records, DNSName("JAIN-BB.JAIN.AD.JP."), QType::A, "192.41.197.2");
287 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 3 600 600 3600000 604800");
288
289 BOOST_CHECK_THROW(processIXFRRecords(master, zone, records, std::dynamic_pointer_cast<SOARecordContent>(masterSOA)), std::runtime_error);
290}
291
292BOOST_AUTO_TEST_CASE(test_ixfr_trailing_record_after_end) {
293 const ComboAddress master("[2001:DB8::1]:53");
294 const DNSName zone("JAIN.AD.JP.");
295
296 auto masterSOA = DNSRecordContent::mastermake(QType::SOA, QClass::IN, "NS.JAIN.AD.JP. mohta.jain.ad.jp. 3 600 600 3600000 604800");
297 vector<DNSRecord> records;
298 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 3 600 600 3600000 604800");
299 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 1 600 600 3600000 604800");
300 addRecordToList(records, DNSName("NEZU.JAIN.AD.JP."), QType::A, "133.69.136.5");
301 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 3 600 600 3600000 604800");
302 addRecordToList(records, DNSName("JAIN-BB.JAIN.AD.JP."), QType::A, "133.69.136.3");
303 addRecordToList(records, DNSName("JAIN-BB.JAIN.AD.JP."), QType::A, "192.41.197.2");
304 addRecordToList(records, DNSName("JAIN.AD.JP."), QType::SOA, "ns.jain.ad.jp. mohta.jain.ad.jp. 3 600 600 3600000 604800");
305 addRecordToList(records, DNSName("JAIN-BB.JAIN.AD.JP."), QType::A, "133.69.136.3");
306
307 BOOST_CHECK_THROW(processIXFRRecords(master, zone, records, std::dynamic_pointer_cast<SOARecordContent>(masterSOA)), std::runtime_error);
308}
309
310BOOST_AUTO_TEST_SUITE_END();