BIND 10 #1213: Implement IXFR system tests

BIND 10 Development do-not-reply at isc.org
Tue Oct 11 12:12:17 UTC 2011


#1213: Implement IXFR system tests
-------------------------------------+-------------------------------------
                   Reporter:         |                 Owner:  stephen
  stephen                            |                Status:  reviewing
                       Type:  task   |             Milestone:
                   Priority:         |  Sprint-20111011
  critical                           |            Resolution:
                  Component:  xfrin  |             Sensitive:  0
                   Keywords:         |           Sub-Project:  DNS
            Defect Severity:  N/A    |  Estimated Difficulty:  7
Feature Depending on Ticket:         |           Total Hours:  0
        Add Hours to Ticket:  0      |
                  Internal?:  0      |
-------------------------------------+-------------------------------------
Changes (by vorner):

 * owner:  vorner => stephen


Comment:

 Hello

 Replying to [comment:11 stephen]:
 > > There are bunch of really long zones. Could they maybe get generated
 (at last the long middle part) somehow instead of storing (and
 distributing) the boring part four times?
 > b10-loadzone currently doesn't support the $GENERATE directive.
 However, I have updated the files so that the "boring part" :-) is
 included via a $INCLUDE directive.

 Hmm, I didn't really know there was a $GENERATE directive, I meant a shell
 script that would generate it before the test. But this way is OK too I
 think, it both removes the duplicates and shows the differences between
 the zone versions well.

 > >This code looks long:
 > >for i in 1 2 3 4 5 6 7 8 9 10 11 12
 > >Why aren't you using seq?
 > ... because I'm rusty at shell programming.  Changed.

 Hmm, I didn't know about the nonportability. Stupid old platforms :-(.
 Should we revert it then, according to Jeremy? I wanted to propose `grep
 -q`, but it seems it's not portable as well. And I guess this is bashism?:
 {{{
 if ! grep ... | grep ; then
   :
 fi
 }}}

 > > You check only the SOA of zones transfered. Should the other data be
 also checked?
 > I was assuming that if the SOA was updated the zone had been
 transferred.  On reflection though, there is no other system test that
 checks the transfer, so I've updated the tests to perform that check.

 Nice trick, I was wondering how complicated that might be and it turns out
 quite simple :-).

 > > A lot of the named.conf and similar files are the same for multiple
 tests. Is there a chance to share them instead of keeping multiple copies?
 Git handles symlinks…
 > Good point. (I never knew that git could handle symlinks...)

 That's not so common knowledge, not many projects use it.

 > '''Other Things'''[[BR]]
 > As the current implementation of IXFR:
 > * Does not support IXFR over UDP

 Really? Hmm, surprise.

 > * IXFR-in tests requiring special programs to be written to handle the
 sending of packets to test the add/deletion order of RRs and to test the
 handling of interrupted IXFR sessions (see #1210 for details).

 I guess requiring socat is too much, right? Then we wouldn't need the
 special programs.

 Anyway, such programs would be quite simple anyway I guess.

 > In other words, close the ticket with what we have now and open tickets
 for the remaining work (in the knowledge that some of those tickets will
 be deferred until the features they test are scheduled to be implemented).

 I'm not against postponing the rest of tests until we implement the
 features, that makes sense (and splitting the task as well, it's getting
 big).

 But, few points:
  * I noticed this line:
 {{{
 return 1t
 }}}
    Is it a typo or some shell trick I don't know?
  * First line of `tests/system/ixfr/in-2/setup.sh.in` is empty. Couldn't
 it make trouble if the `#!/bin/sh` isn't at the very top?
  * The README files are indeed a way to make sure git keeps the
 directories. But AFAIK having an empty `.keep` file in the directory is
 more common way to do this. Do you think it is better to have README with
 explanation, or should we use the common way?
  * Would you merge master into this, so we can check if the test actually
 passes?

 Thank you

-- 
Ticket URL: <http://bind10.isc.org/ticket/1213#comment:12>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list