xref: /netbsd-src/external/bsd/nsd/dist/doc/TESTPLAN (revision d83a80ee7fb31190352cf1f781441e06ca6a86db)
1*d83a80eeSchristosTEST PLAN for NSD.
2*d83a80eeSchristos
3*d83a80eeSchristosBy W.C.A. Wijngaards, July 2006, NLnetLabs.
4*d83a80eeSchristos
5*d83a80eeSchristos
6*d83a80eeSchristos1. Introduction
7*d83a80eeSchristos---------------
8*d83a80eeSchristosNSD 3 contains far more features than a typical point release. These
9*d83a80eeSchristosfeatures need to be tested and checked to make sure they work well.
10*d83a80eeSchristosThis document describes a plan to test all the features that have
11*d83a80eeSchristosbeen added to NSD.
12*d83a80eeSchristos
13*d83a80eeSchristosRegression testing is also very important. The old features must
14*d83a80eeSchristosremain working. We have a set of tpkg packages to help with it.
15*d83a80eeSchristosAnd also root-trace speed tests to regression test NSD.
16*d83a80eeSchristos
17*d83a80eeSchristosThe feature tests are to be automated, using tpkg packages where
18*d83a80eeSchristospossible.
19*d83a80eeSchristos
20*d83a80eeSchristos2. Minor Features
21*d83a80eeSchristos-----------------
22*d83a80eeSchristosSome minor features for the test:
23*d83a80eeSchristos
24*d83a80eeSchristos2.1. DNAME
25*d83a80eeSchristos----------
26*d83a80eeSchristosDNAME support - there are already extensive DNAME tests.
27*d83a80eeSchristos(closed).
28*d83a80eeSchristos
29*d83a80eeSchristos2.2. NSEC3
30*d83a80eeSchristos----------
31*d83a80eeSchristosNSEC3 support
32*d83a80eeSchristos	- use the perl automated nsec3 test
33*d83a80eeSchristos		- port to tpkg perhaps.
34*d83a80eeSchristos
35*d83a80eeSchristosNote NSEC3 hash length byte to be implemented, test against others.
36*d83a80eeSchristosTest interoperability of that. A simple zone transfer with Bind.
37*d83a80eeSchristos(experimental, no need to test any more).
38*d83a80eeSchristos
39*d83a80eeSchristos2.3. NSID
40*d83a80eeSchristos---------
41*d83a80eeSchristosWould make a nice nsid.tpkg package.
42*d83a80eeSchristos
43*d83a80eeSchristosNSID support - run NSD with different NSIDs and queries.
44*d83a80eeSchristos	a- test NSID with zero length, query with NSID.
45*d83a80eeSchristos	b- very long length, query with NSID
46*d83a80eeSchristos	c- 012345678 and query for different things.
47*d83a80eeSchristos		1- query OK things.
48*d83a80eeSchristos		- query error
49*d83a80eeSchristos			2- nxdomain,
50*d83a80eeSchristos			3- loop,
51*d83a80eeSchristos			4- nodata.
52*d83a80eeSchristos		5- query error (bad queries, wrong zone)
53*d83a80eeSchristos			- is NSID present.
54*d83a80eeSchristos	d- NSID and TSIG.
55*d83a80eeSchristos		1- query has OK TSIG
56*d83a80eeSchristos		2- query has BAD TSIG
57*d83a80eeSchristos		3- query for nxdomain
58*d83a80eeSchristos		4- bad query, wrong zone
59*d83a80eeSchristos	e- configure NSID from config file?
60*d83a80eeSchristos		- is this possible
61*d83a80eeSchristos
62*d83a80eeSchristos	f- test if NSID in NOTIFY responses. (should there?)
63*d83a80eeSchristos		ldns-notify and parse result packet for nsid.
64*d83a80eeSchristos	g- test if NSID in AXFR responses. (should there?)
65*d83a80eeSchristos		drill axfr <zone> and see if nsid in result packets.
66*d83a80eeSchristos(experimental, so low priority).
67*d83a80eeSchristos(need a way to send NSID enabled queries - no test).
68*d83a80eeSchristos
69*d83a80eeSchristos3. Transfers
70*d83a80eeSchristos------------
71*d83a80eeSchristosFor the transfers the test are to be done using
72*d83a80eeSchristos- NSD as a master(AXFR) in 3.1, or a ldns-ixfr miniserver(IXFR)
73*d83a80eeSchristos  as a master in 3.2 that serves pre-made ixfr answers.
74*d83a80eeSchristos
75*d83a80eeSchristosThe zone transfer tests can be put in one tpkg by using servers
76*d83a80eeSchristosat different ports. The allow- lines are then for localhost, all
77*d83a80eeSchristosports (since the sending process uses ephemeral ports, all must
78*d83a80eeSchristosbe allowed). The request- lines contain the correct port numbers
79*d83a80eeSchristosto send to.
80*d83a80eeSchristos
81*d83a80eeSchristos3.1. AXFR
82*d83a80eeSchristos---------
83*d83a80eeSchristos3.1.1. AXFR features
84*d83a80eeSchristos--------------------
85*d83a80eeSchristosSetup is a secondary zone which requests to a master.
86*d83a80eeSchristosthe master zone is updated. Then, the secondary should be
87*d83a80eeSchristosinformed with the notify: statements.
88*d83a80eeSchristosAnd test if secondary got the same zone as master.
89*d83a80eeSchristosBy doing axfr from both servers and check if the same, and serial nr.
90*d83a80eeSchristos
91*d83a80eeSchristosTests 3.1.1 can be one tpkg.
92*d83a80eeSchristos
93*d83a80eeSchristos(with serial numbers for SOA, to perform serial rollover).
94*d83a80eeSchristos- secondary starts with a zone without content (soa=1)
95*d83a80eeSchristos  so the zone is only mentioned in the config, the zonefile is empty/nonexist
96*d83a80eeSchristos  on the slave. Master has a soa and three text records.
97*d83a80eeSchristos- axfr an empty zone - only the SOA 	(soa=2)
98*d83a80eeSchristos- axfr a zone with only little data. 	(soa=3)
99*d83a80eeSchristos  some NS, MX, A, AAAA records.
100*d83a80eeSchristos[NOTE: apparently, due to the linked list mgt in domains (of rrset*)
101*d83a80eeSchristos the ordering of rrtypes for a domain is reversed after a zone transfer
102*d83a80eeSchristos for NSD, i.e. for query type=any. Ordering within an rrset is preserved.
103*d83a80eeSchristos Created fix to ordering, but is slow for many rr types... ]
104*d83a80eeSchristos- old zone unsigned, new zone signed. 	(soa=4)
105*d83a80eeSchristos  sign with two KSKs and one ZSK. And a prepublished ZSK in the zone.
106*d83a80eeSchristos	ZSK1: Kexample.com.+005+44537
107*d83a80eeSchristos	ZSK2: Kexample.com.+005+03824 (prepublish)
108*d83a80eeSchristos	KSK1: Kexample.com.+005+53988
109*d83a80eeSchristos	KSK2: Kexample.com.+005+25320 (presign)
110*d83a80eeSchristos- old zone signed, new zone unsigned. 	(soa=5)
111*d83a80eeSchristos  different zone contents, some names are still there,
112*d83a80eeSchristos  unchanged, some names are there RRs changed, some names
113*d83a80eeSchristos  there different RRtypes, and some names removed, some names added.
114*d83a80eeSchristos	www: unchanged (including nsec,rrsig).
115*d83a80eeSchristos	webmail: mail prio changed.
116*d83a80eeSchristos	printer: name removed.
117*d83a80eeSchristos	terms: different RR types, now A type.
118*d83a80eeSchristos	mail: type TXT added.
119*d83a80eeSchristos	apex: type DNSKEY, nsec, rrsig removed.
120*d83a80eeSchristos	newservice, ooo: new names
121*d83a80eeSchristos- new zone with nsec3.			(soa=6)
122*d83a80eeSchristos	iter=33 salt=AA44FF11
123*d83a80eeSchristos  	slave detects NSEC3 settings.
124*d83a80eeSchristos- new parameters for nsec3.		(soa=7)
125*d83a80eeSchristos	iter=1078 salt=00998877665544332211AADDCCFF
126*d83a80eeSchristos  	slave detects NSEC3 settings.
127*d83a80eeSchristos- new zone no longer uses nsec3.	(soa=8)
128*d83a80eeSchristos	uses nsec.
129*d83a80eeSchristos- axfr an empty zone (only the SOA)	(soa=9 + a lot for serial wraparound)
130*d83a80eeSchristos	2**31 = 2147483648
131*d83a80eeSchristos	9 + 2**31 : 2147483657
132*d83a80eeSchristos  also tested
133*d83a80eeSchristos	9 + 2**31-3	-- works. notify and transfer, zone updated.
134*d83a80eeSchristos	9 + 2**31-2	-- works. notify and transfer, zone updated.
135*d83a80eeSchristos	9 + 2**31-1	-- notify works, but at transfer time 'serial old'.
136*d83a80eeSchristos				fixed: works, zone updated.
137*d83a80eeSchristos	9 + 2**31 	-- notify is ignored, 'serial old'.
138*d83a80eeSchristos	9 + 2**31+1	-- notify is ignored, 'serial old'.
139*d83a80eeSchristos- axfr wraparound zone, couple txts.	(soa=2)
140*d83a80eeSchristos	serial=2 works after serial=9 + 2**31-2 before.
141*d83a80eeSchristosThese can be done in order.
142*d83a80eeSchristos
143*d83a80eeSchristosTest done for AXFR. RRset-type ordering preserve fixed. Serial rollover fixed.
144*d83a80eeSchristosSerial printed as unsigned.
145*d83a80eeSchristos
146*d83a80eeSchristos3.1.2. Huge xfr - see test tpkg for this.
147*d83a80eeSchristosIt works already.
148*d83a80eeSchristos
149*d83a80eeSchristos3.1.3. AXFR and TSIG
150*d83a80eeSchristosLike 3.1.1. but enable tsig.
151*d83a80eeSchristosTested, it works.
152*d83a80eeSchristos
153*d83a80eeSchristos3.2. IXFR
154*d83a80eeSchristos---------
155*d83a80eeSchristos3.2.1. IXFR Features
156*d83a80eeSchristos--------------------
157*d83a80eeSchristosSetup is a secondary with ldns-mini-ixfr server as a master.
158*d83a80eeSchristos(ldns/examples/nsd-test/ldns-testns.c).
159*d83a80eeSchristosThe mini ixfr server responds with canned replies to a IXFR query.
160*d83a80eeSchristos
161*d83a80eeSchristos- secondary loaded with only the soa = 1. notified with 10.
162*d83a80eeSchristos  ixfr server responds with soa=1. (i.e. no update available).
163*d83a80eeSchristos- same, ixfr server responds with soa=2, and TC (udp).
164*d83a80eeSchristos  on tcp connection, it responds with a simple difference package.
165*d83a80eeSchristos  SOA2 SOA1 SOA2 newTXTA newTXTB SOA2
166*d83a80eeSchristos  adds a couple records.
167*d83a80eeSchristos- to soa is 3, and this one removes the TXT records,
168*d83a80eeSchristos  makes a new TXTB record and a TXTC record.  test that TXTA domain does not exist NXDOMAIN.
169*d83a80eeSchristos  test that TXTB is updated.
170*d83a80eeSchristos  test that TXTC exists.
171*d83a80eeSchristos- from 3 to 5, with 4 in between.
172*d83a80eeSchristos  make a ixfr packet that is  3 .. 4 and 4 .. 5 concatenated without
173*d83a80eeSchristos  compression, so it means more work for processing.
174*d83a80eeSchristos  So, in the ixfr packet TXTB is removed from 3, added in 4, removed from 4,
175*d83a80eeSchristos  added in 5.
176*d83a80eeSchristos  Also in vs4 a txt5 record is added, which stays around.
177*d83a80eeSchristos- from 5 to 7, but this time the redundant work is removed from ixfr packet.
178*d83a80eeSchristos- 7 to 8, have one domain name where two RR types exist, A and DNAME.
179*d83a80eeSchristos  remove one RR type in IXFR then make sure the other type still exists.
180*d83a80eeSchristos- 8 to 9, have a name with many different A records. Remove one A record
181*d83a80eeSchristos  from it. Add another A record to it. Test if the rest is there.
182*d83a80eeSchristos[Note: when you delete on RR from an RRset, the ordering of the RRset
183*d83a80eeSchristoschanges, the contents of the rrset get shuffled (last put in empty slot).]
184*d83a80eeSchristos
185*d83a80eeSchristos3.2.2. a huge ixfr.
186*d83a80eeSchristos-------------------
187*d83a80eeSchristoscreate test for it. Should be several MBs worth or data removed, MBs of
188*d83a80eeSchristosdata that stays the same, and MBs that are added.
189*d83a80eeSchristosTo make sure that the code can handle multiple packet IXFRs, and the
190*d83a80eeSchristosstate memory between IXFR packets.
191*d83a80eeSchristos- created testns version for multiple packet reply. Small, multiple packets.
192*d83a80eeSchristosTest from 3.1. but using multiple packets: one RR per packet.
193*d83a80eeSchristosThis test also falls over from udp to tcp for ixfr.
194*d83a80eeSchristos- This works. The Mbs in size is tested in huge axfr test already.
195*d83a80eeSchristos
196*d83a80eeSchristos3.2.3. Test remove domain
197*d83a80eeSchristos-------------------------
198*d83a80eeSchristos- is_existing = 0 used to remove a domain. Check and test carefully.
199*d83a80eeSchristos        - test delete middle name
200*d83a80eeSchristos		i.e. you have a zone with:
201*d83a80eeSchristos			c.example.com TXT "x"
202*d83a80eeSchristos			b.c.example.com TXT "x"
203*d83a80eeSchristos			a.b.c.example.com TXT "x"
204*d83a80eeSchristos		and you delete the b.c. record. The b.c becomes empty
205*d83a80eeSchristos		nonterminal. If you then delete a.b.c. TXT, the b.c becomes
206*d83a80eeSchristos		NXdomain.
207*d83a80eeSchristos		[- fixed delete with IXFR for empty nonterminals.]
208*d83a80eeSchristos	- test delete/add a domain and NXdomain/exist replies.
209*d83a80eeSchristos		- tested in 3.2.1 already, works.
210*d83a80eeSchristos	- test delet domain and wildcard replies.
211*d83a80eeSchristos- Tested, it works, fix for IXFR that makes empty nonterminals.
212*d83a80eeSchristos
213*d83a80eeSchristos3.3. Timeouts
214*d83a80eeSchristos-------------
215*d83a80eeSchristosGet zone to expire. Check it does not answer.
216*d83a80eeSchristos	Start only a secondary server, no master. Set expire timeout short.
217*d83a80eeSchristos	Timers set as refresh=1 retry=1 expire=10 minimum=10
218*d83a80eeSchristosProvide an update. Check it does answer again.
219*d83a80eeSchristos	Startup the master server after a while. Transfer should happen
220*d83a80eeSchristos	within the retry interval.
221*d83a80eeSchristosWait for zone to expire again. Check that.
222*d83a80eeSchristosProvide old zone on the master, after expire the slave must transfer it.
223*d83a80eeSchristosThe above works, old zone is transferred and served.
224*d83a80eeSchristos
225*d83a80eeSchristosTest that the master says that serial number is OK, in 3.2.1 tests.
226*d83a80eeSchristosThis test also includes IXFR reply from the master that contains AXFR contents.
227*d83a80eeSchristos
228*d83a80eeSchristos3.4. TSIG zone transfers
229*d83a80eeSchristos------------------------
230*d83a80eeSchristosAlready TSIG tpkg tests, with transfers TSIG protected, so that is ok.
231*d83a80eeSchristosTSIG notifies - test it, create test for it.
232*d83a80eeSchristos	- notify accepted, nsd->nsd notify
233*d83a80eeSchristos	  by starting master and slave server with tsig keys
234*d83a80eeSchristos	  for a zone, update zone at master.
235*d83a80eeSchristos	  Done in 3.1.3.
236*d83a80eeSchristos	- notify refused. nsd->nsd notify
237*d83a80eeSchristos	  same but use different secret at one server.
238*d83a80eeSchristos	  Test done.
239*d83a80eeSchristos
240*d83a80eeSchristos4. IPC
241*d83a80eeSchristos--------
242*d83a80eeSchristos
243*d83a80eeSchristos4.1. deadlocks
244*d83a80eeSchristos--------------
245*d83a80eeSchristosHave 100.000 zones, all with short SOA timeouts, expire=1 sec. refresh=10.
246*d83a80eeSchristosExpire very quickly. This gives many messages from xfrd to server.
247*d83a80eeSchristosSend notifies to the server in a loop from a shell script. Lots of
248*d83a80eeSchristosmessages the other way around.
249*d83a80eeSchristosProvide a master server that will serve all the zones (and say they are ok).
250*d83a80eeSchristos
251*d83a80eeSchristosthen proceed to send queries for the zones to the server and see if you
252*d83a80eeSchristosget answers. Wait for an hour and try again.
253*d83a80eeSchristos
254*d83a80eeSchristosResult, the IPC works okay, but xfrd uses much memory, 16Kb for TSIG regions,
255*d83a80eeSchristosper zone. With the 2.5 kb in xfrd almost 20 Kb per zone. For 2G for 100.000.
256*d83a80eeSchristosA bit much memory, for the largely unused tsig regions.
257*d83a80eeSchristosFixed, tsig for xfrd uses no preallocated worst case memory use, but only
258*d83a80eeSchristosa small footprint. During use this may grow; about 1 K per zone perhaps.
259*d83a80eeSchristos
260*d83a80eeSchristosAbout 2.5Kb per secondary zone in xfrd, below 1 Kb for a master zone,
261*d83a80eeSchristosthat works out for 100.000 secondary zones as 250 Mb for xfrd.
262*d83a80eeSchristos
263*d83a80eeSchristosPerhaps do also with 100 child servers for the NSD. see if it can keep
264*d83a80eeSchristosup and the result if it cannot keep up sending to child servers.
265*d83a80eeSchristosSince it has to send for each zone to each child a message, this will
266*d83a80eeSchristostake more resources.
267*d83a80eeSchristosTested, it cannot keep up. Child servers operate using old zone status
268*d83a80eeSchristosof expired/ok, also the machine load is 100%.
269*d83a80eeSchristosAlso fixed tsig.other_size to be checked when reading TSIG from network.
270*d83a80eeSchristos
271*d83a80eeSchristosDue to the length and size, more an incidental test, but can be tpkg-ed.
272*d83a80eeSchristos
273*d83a80eeSchristos4.2. IPC FORKS
274*d83a80eeSchristos--------------
275*d83a80eeSchristosInfinite loop of reloads on a server. Has 10 child servers. wait.
276*d83a80eeSchristosSee if it runs out of sockets, file descriptors, etc.
277*d83a80eeSchristosincidental test.
278*d83a80eeSchristosTested, with adjusted source that repeats reloads. This puts strain on the
279*d83a80eeSchristosreload ipc handshake code. And ipc socket code. It works fine.
280*d83a80eeSchristos
281*d83a80eeSchristos5. Random mess test
282*d83a80eeSchristos-------------------
283*d83a80eeSchristosSetup 7 servers. In  master->intermed->slave,
284*d83a80eeSchristoswith multiple master(2), intermed(3) and slave(2) servers.
285*d83a80eeSchristosTSIGs (different) for everyone.
286*d83a80eeSchristosPerhaps also include never respond entries (fake address) in acls.
287*d83a80eeSchristos
288*d83a80eeSchristos- Load random SOA + random data in servers.
289*d83a80eeSchristos  Backup the setup so it is repeatable.
290*d83a80eeSchristos  Let them work out what version to run.
291*d83a80eeSchristos- Provide updated zone for a master.
292*d83a80eeSchristos  See what happens.
293*d83a80eeSchristos- Send notifies to the slave servers.
294*d83a80eeSchristos- Send notifies to the intermed servers.
295*d83a80eeSchristos- Send notifies to the master servers.
296*d83a80eeSchristos- Kill some server. Start it again.
297*d83a80eeSchristos- Kill some server & delete some file (ixfr.db or xfrd.status).
298*d83a80eeSchristos	- delete ixfr.db
299*d83a80eeSchristos	- delete xfrd.status
300*d83a80eeSchristos	- delete ixfr and xfrd files.
301*d83a80eeSchristos- run nsdc patch on a server.
302*d83a80eeSchristos- pretend an intermediary was offline for a long time
303*d83a80eeSchristos  with old zone files and old ixfr.db and xfrd.state(!!) files.
304*d83a80eeSchristos  and see what happens :-)
305*d83a80eeSchristos  It should refresh/expire and so based on timers in xfrd.state.
306*d83a80eeSchristos
307*d83a80eeSchristosTested:
308*d83a80eeSchristos- nsd returns formerr on IXFR queries because of data in NS section.
309*d83a80eeSchristos  But this is correct, fixed NSD, so it is no longer formerr, but
310*d83a80eeSchristos  refused / not authorised instead. (or whatever we put in axfr.c).
311*d83a80eeSchristos- depending on which server they are asking, servers will use one of
312*d83a80eeSchristos  the master zones (after expiry time exceeded). If master updated,
313*d83a80eeSchristos  intermediaries, then slaves update themselves too.
314*d83a80eeSchristos- NSD would not start with a corrupt diff file. Now logs error and
315*d83a80eeSchristos  ignores, fixes, the diff file.
316*d83a80eeSchristos
317*d83a80eeSchristos6. Portability test
318*d83a80eeSchristos-------------------
319*d83a80eeSchristosPort NSD to as many platforms as possible
320*d83a80eeSchristos- local: sparc5(ok), alpha(ok), amd64/OpenBsd(jelte thuis),
321*d83a80eeSchristos	open=FreeBSD(ok), linuxes(ok), MacOsX(ok), Sunos4(ok).
322*d83a80eeSchristos- sf compilefarm for more.
323*d83a80eeSchristos	- x86-linux2 has ip6 disabled. tests dont work with that.
324*d83a80eeSchristos- minix3 if we can get it working (the minix3 setup fails somehow).
325*d83a80eeSchristos
326*d83a80eeSchristos- would be good to have a test set of tpkg (and tools required) to
327*d83a80eeSchristos  run after a port-test. A very portable set of tpkgs.
328*d83a80eeSchristos	OSTYPE: (g)make. autoreconf. (g)indent.
329*d83a80eeSchristos		-> defaults for * systems.
330*d83a80eeSchristos	dig 8.3 too old (format of output). Need 9+.
331*d83a80eeSchristos		however dig/bind is not portable enough.
332*d83a80eeSchristos	ldns: pcat, pcat-diff, pcat-print.  xfr1,2:nsd-ldnsd. pcat-grep.pl
333*d83a80eeSchristos	manual: md5sum/md5. hping(sudo).
334*d83a80eeSchristos	long: ldns-testns.
335*d83a80eeSchristosMade tests more portable, ran tests on linux, freebsd, Solaris.
336*d83a80eeSchristosFull testset run on SPARC/SunOS2.5, and fixed two unaligned memory accesses,
337*d83a80eeSchristosall tests succeed now. Full testset runs on Powerpc/MacOSX.
338*d83a80eeSchristos
339*d83a80eeSchristos7. CODE REVIEW
340*d83a80eeSchristos--------------
341*d83a80eeSchristosCode has already had 1x review by Wouter, some review by Miek.
342*d83a80eeSchristosMore review (again), Jelte, Wouter.
343*d83a80eeSchristos- Do some spots of interest.
344*d83a80eeSchristos- perhaps a full review as well.
345*d83a80eeSchristos
346*d83a80eeSchristos8. todo-tests ideas
347*d83a80eeSchristos-------------------
348*d83a80eeSchristosThese would be nice as tpkgs, but perhaps manual tests are needed.
349*d83a80eeSchristos
350*d83a80eeSchristos8.1. test combinations of configure options and shells
351*d83a80eeSchristos------------------------------------------------------
352*d83a80eeSchristos"
353*d83a80eeSchristosrun tests with different shells, aka ==-bug
354*d83a80eeSchristos	bash 1.1. is too old for [[ in tpkg and tests.
355*d83a80eeSchristos	Some hosts have awk that puts a space before .pre files in tpkg.
356*d83a80eeSchristos	Some hosts have bash in /usr/local/bin so tpkg fails on that.
357*d83a80eeSchristosrun tests with different configure options and combinations
358*d83a80eeSchristos    of them.
359*d83a80eeSchristos    	Many tests fail with disable-ipv6.
360*d83a80eeSchristosimplement this in a xen-like environment so that different OSs can
361*d83a80eeSchristosbe checked.
362*d83a80eeSchristosrun this daily or only when subversion changes
363*d83a80eeSchristosfor each test, run our "test-suite"
364*d83a80eeSchristos"
365*d83a80eeSchristos
366*d83a80eeSchristos8.2. patch file remove
367*d83a80eeSchristos----------------------
368*d83a80eeSchristosrm patch file, check xfrd's behavior. Refetches zones
369*d83a80eeSchristosChecked in section transfer_axfr.
370*d83a80eeSchristos
371*d83a80eeSchristos8.3. 64 bit
372*d83a80eeSchristos-----------
373*d83a80eeSchristosGB 64 bit file size transfers. On alpha so nastiest
374*d83a80eeSchristosalignment on 64bit machine. Do transfer of > 4 Gb zone.
375*d83a80eeSchristosNeeds lots of memory(swap space) and disk space.
376*d83a80eeSchristosNot done; no host for test.
377*d83a80eeSchristos
378*d83a80eeSchristos8.4. Valgrind
379*d83a80eeSchristos-------------
380*d83a80eeSchristosrun with valgrind - on two nsds.
381*d83a80eeSchristosthen do the nsd-nsd, and notify the master to get axfr
382*d83a80eeSchristosto happen test, with tsig as well enabled.
383*d83a80eeSchristosDone, found one uninit variable.
384*d83a80eeSchristos
385*d83a80eeSchristos8.5. Chroot
386*d83a80eeSchristos-----------
387*d83a80eeSchristostest chroot and the new files/directories.
388*d83a80eeSchristos(And the file/dir not in chroot problem, and if all is OK that it works).
389*d83a80eeSchristosDone, default locations for ixfr.db and xfrd.state have full pathnames.
390*d83a80eeSchristos
391*d83a80eeSchristos8.6. nsdc
392*d83a80eeSchristos---------
393*d83a80eeSchristosIn temporary test setup above, test nsdc tool.
394*d83a80eeSchristosworks.
395*d83a80eeSchristos
396*d83a80eeSchristosMake sure that if nsdc patch breaks a zone transfer in progress it is
397*d83a80eeSchristosreattempted later on.
398*d83a80eeSchristoshard to test.
399*d83a80eeSchristos
400*d83a80eeSchristos8.7. nsd-patch
401*d83a80eeSchristos--------------
402*d83a80eeSchristosnsd-patch - run nsd patch and compare zone files, like AXFR/IXFR tests.
403*d83a80eeSchristosDone test axfr run, or test-mess.
404*d83a80eeSchristos
405*d83a80eeSchristos8.8. gcov
406*d83a80eeSchristos---------
407*d83a80eeSchristosgcov to look at code coverage of the tests. Tests added to improve coverage.
408