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