]> granicus.if.org Git - pdns/commitdiff
reorganize regression tests
authorKees Monshouwer <mind04@monshouwer.org>
Tue, 14 Jan 2014 22:38:55 +0000 (23:38 +0100)
committermind04 <mind04@monshouwer.org>
Fri, 17 Jan 2014 09:50:52 +0000 (10:50 +0100)
742 files changed:
.travis.yml
modules/tinydnsbackend/generate-data.sh
regression-tests.nobackend/edns-packet-cache/named.conf
regression-tests.nobackend/tinydns-data-check/command
regression-tests.nobackend/tinydns-data-check/expected_result
regression-tests/.gitignore
regression-tests/backends/bind-master [new file with mode: 0644]
regression-tests/backends/bind-slave [new file with mode: 0644]
regression-tests/backends/common [new file with mode: 0644]
regression-tests/backends/gmysql-master [new file with mode: 0644]
regression-tests/backends/gmysql-slave [new file with mode: 0644]
regression-tests/backends/goracle-master [new file with mode: 0644]
regression-tests/backends/goracle-slave [new file with mode: 0644]
regression-tests/backends/gpgsql-master [new file with mode: 0644]
regression-tests/backends/gsqlite3-master [new file with mode: 0644]
regression-tests/backends/gsqlite3-slave [new file with mode: 0644]
regression-tests/backends/mydns-master [new file with mode: 0644]
regression-tests/backends/opendbx-master [new file with mode: 0644]
regression-tests/backends/oracle-master [new file with mode: 0644]
regression-tests/backends/remote-master [new file with mode: 0644]
regression-tests/backends/tinydns-master [new file with mode: 0644]
regression-tests/ext/bind-master [new file with mode: 0644]
regression-tests/ext/bind-slave [new file with mode: 0644]
regression-tests/ext/nsd-master [new file with mode: 0644]
regression-tests/ext/nsd-slave [new file with mode: 0644]
regression-tests/named.conf
regression-tests/start-test-stop
regression-tests/tests/.gitignore [new file with mode: 0644]
regression-tests/tests/00dnssec-grabkeys/command [moved from regression-tests/00dnssec-grabkeys/command with 92% similarity]
regression-tests/tests/00dnssec-grabkeys/description [moved from regression-tests/00dnssec-grabkeys/description with 100% similarity]
regression-tests/tests/00dnssec-grabkeys/expected_result [moved from regression-tests/00dnssec-grabkeys/expected_result with 100% similarity]
regression-tests/tests/0dyndns-prereq-all/command [moved from regression-tests/0dyndns-prereq-all/command with 100% similarity]
regression-tests/tests/0dyndns-prereq-all/description [moved from regression-tests/0dyndns-prereq-all/description with 100% similarity]
regression-tests/tests/0dyndns-prereq-all/expected_result [moved from regression-tests/0dyndns-prereq-all/expected_result with 100% similarity]
regression-tests/tests/0dyndns-prereq-all/skip.nodyndns [moved from regression-tests/0dyndns-prereq-all/skip.nodyndns with 100% similarity]
regression-tests/tests/0dyndns-prereq-nxrrset-full/command [moved from regression-tests/0dyndns-prereq-nxrrset-full/command with 100% similarity]
regression-tests/tests/0dyndns-prereq-nxrrset-full/description [moved from regression-tests/0dyndns-prereq-nxrrset-full/description with 100% similarity]
regression-tests/tests/0dyndns-prereq-nxrrset-full/expected_result [moved from regression-tests/0dyndns-prereq-nxrrset-full/expected_result with 100% similarity]
regression-tests/tests/0dyndns-prereq-nxrrset-full/skip.nodyndns [moved from regression-tests/0dyndns-prereq-nxrrset-full/skip.nodyndns with 100% similarity]
regression-tests/tests/1dyndns-big-package/command [moved from regression-tests/1dyndns-big-package/command with 100% similarity]
regression-tests/tests/1dyndns-big-package/description [moved from regression-tests/1dyndns-big-package/description with 100% similarity]
regression-tests/tests/1dyndns-big-package/expected_result [moved from regression-tests/1dyndns-big-package/expected_result with 100% similarity]
regression-tests/tests/1dyndns-big-package/expected_result.dnssec [moved from regression-tests/1dyndns-big-package/expected_result.dnssec with 100% similarity]
regression-tests/tests/1dyndns-big-package/expected_result.narrow [moved from regression-tests/1dyndns-big-package/expected_result.narrow with 100% similarity]
regression-tests/tests/1dyndns-big-package/expected_result.nsec3 [moved from regression-tests/1dyndns-big-package/expected_result.nsec3 with 100% similarity]
regression-tests/tests/1dyndns-big-package/skip.nodyndns [moved from regression-tests/1dyndns-big-package/skip.nodyndns with 100% similarity]
regression-tests/tests/1dyndns-check-soa-update/command [moved from regression-tests/1dyndns-check-soa-update/command with 100% similarity]
regression-tests/tests/1dyndns-check-soa-update/description [moved from regression-tests/1dyndns-check-soa-update/description with 100% similarity]
regression-tests/tests/1dyndns-check-soa-update/expected_result [moved from regression-tests/1dyndns-check-soa-update/expected_result with 100% similarity]
regression-tests/tests/1dyndns-check-soa-update/skip.nodyndns [moved from regression-tests/1dyndns-check-soa-update/skip.nodyndns with 100% similarity]
regression-tests/tests/1dyndns-update-add-delete-casesensative/command [moved from regression-tests/1dyndns-update-add-delete-casesensative/command with 100% similarity]
regression-tests/tests/1dyndns-update-add-delete-casesensative/description [moved from regression-tests/1dyndns-update-add-delete-casesensative/description with 100% similarity]
regression-tests/tests/1dyndns-update-add-delete-casesensative/expected_result [moved from regression-tests/1dyndns-update-add-delete-casesensative/expected_result with 100% similarity]
regression-tests/tests/1dyndns-update-add-delete-casesensative/skip.nodyndns [moved from regression-tests/1dyndns-update-add-delete-casesensative/skip.nodyndns with 100% similarity]
regression-tests/tests/1dyndns-update-add-delete-cname/command [moved from regression-tests/1dyndns-update-add-delete-cname/command with 100% similarity]
regression-tests/tests/1dyndns-update-add-delete-cname/description [moved from regression-tests/1dyndns-update-add-delete-cname/description with 100% similarity]
regression-tests/tests/1dyndns-update-add-delete-cname/expected_result [moved from regression-tests/1dyndns-update-add-delete-cname/expected_result with 100% similarity]
regression-tests/tests/1dyndns-update-add-delete-cname/skip.nodyndns [moved from regression-tests/1dyndns-update-add-delete-cname/skip.nodyndns with 100% similarity]
regression-tests/tests/1dyndns-update-add-delete-ds/command [moved from regression-tests/1dyndns-update-add-delete-ds/command with 100% similarity]
regression-tests/tests/1dyndns-update-add-delete-ds/description [moved from regression-tests/1dyndns-update-add-delete-ds/description with 100% similarity]
regression-tests/tests/1dyndns-update-add-delete-ds/expected_result [moved from regression-tests/1dyndns-update-add-delete-ds/expected_result with 100% similarity]
regression-tests/tests/1dyndns-update-add-delete-ds/expected_result.dnssec [moved from regression-tests/1dyndns-update-add-delete-ds/expected_result.dnssec with 100% similarity]
regression-tests/tests/1dyndns-update-add-delete-ds/expected_result.narrow [moved from regression-tests/1dyndns-update-add-delete-ds/expected_result.narrow with 100% similarity]
regression-tests/tests/1dyndns-update-add-delete-ds/expected_result.nsec3 [moved from regression-tests/1dyndns-update-add-delete-ds/expected_result.nsec3 with 100% similarity]
regression-tests/tests/1dyndns-update-add-delete-ds/expected_result.nsec3-optout [moved from regression-tests/1dyndns-update-add-delete-ds/expected_result.nsec3-optout with 100% similarity]
regression-tests/tests/1dyndns-update-add-delete-ds/skip.nodyndns [moved from regression-tests/1dyndns-update-add-delete-ds/skip.nodyndns with 100% similarity]
regression-tests/tests/1dyndns-update-add-delete-mx/command [moved from regression-tests/1dyndns-update-add-delete-mx/command with 100% similarity]
regression-tests/tests/1dyndns-update-add-delete-mx/description [moved from regression-tests/1dyndns-update-add-delete-mx/description with 100% similarity]
regression-tests/tests/1dyndns-update-add-delete-mx/expected_result [moved from regression-tests/1dyndns-update-add-delete-mx/expected_result with 100% similarity]
regression-tests/tests/1dyndns-update-add-delete-mx/skip.nodyndns [moved from regression-tests/1dyndns-update-add-delete-mx/skip.nodyndns with 100% similarity]
regression-tests/tests/1dyndns-update-add-delete-wildcard/command [moved from regression-tests/1dyndns-update-add-delete-wildcard/command with 100% similarity]
regression-tests/tests/1dyndns-update-add-delete-wildcard/description [moved from regression-tests/1dyndns-update-add-delete-wildcard/description with 100% similarity]
regression-tests/tests/1dyndns-update-add-delete-wildcard/expected_result [moved from regression-tests/1dyndns-update-add-delete-wildcard/expected_result with 100% similarity]
regression-tests/tests/1dyndns-update-add-delete-wildcard/skip.nodyndns [moved from regression-tests/1dyndns-update-add-delete-wildcard/skip.nodyndns with 100% similarity]
regression-tests/tests/1dyndns-update-add-delete/command [moved from regression-tests/1dyndns-update-add-delete/command with 100% similarity]
regression-tests/tests/1dyndns-update-add-delete/description [moved from regression-tests/1dyndns-update-add-delete/description with 100% similarity]
regression-tests/tests/1dyndns-update-add-delete/expected_result [moved from regression-tests/1dyndns-update-add-delete/expected_result with 100% similarity]
regression-tests/tests/1dyndns-update-add-delete/expected_result.dnssec [moved from regression-tests/1dyndns-update-add-delete/expected_result.dnssec with 100% similarity]
regression-tests/tests/1dyndns-update-add-delete/expected_result.narrow [moved from regression-tests/1dyndns-update-add-delete/expected_result.narrow with 100% similarity]
regression-tests/tests/1dyndns-update-add-delete/expected_result.nsec3 [moved from regression-tests/1dyndns-update-add-delete/expected_result.nsec3 with 100% similarity]
regression-tests/tests/1dyndns-update-add-delete/skip.nodyndns [moved from regression-tests/1dyndns-update-add-delete/skip.nodyndns with 100% similarity]
regression-tests/tests/1dyndns-update-add-invalid-record/command [moved from regression-tests/1dyndns-update-add-invalid-record/command with 70% similarity]
regression-tests/tests/1dyndns-update-add-invalid-record/description [moved from regression-tests/1dyndns-update-add-invalid-record/description with 100% similarity]
regression-tests/tests/1dyndns-update-add-invalid-record/expected_result [moved from regression-tests/1dyndns-update-add-invalid-record/expected_result with 100% similarity]
regression-tests/tests/1dyndns-update-add-invalid-record/sendupdate.pl [moved from regression-tests/1dyndns-update-add-invalid-record/sendupdate.pl with 100% similarity]
regression-tests/tests/1dyndns-update-add-invalid-record/skip.nodyndns [moved from regression-tests/1dyndns-update-add-invalid-record/skip.nodyndns with 100% similarity]
regression-tests/tests/1dyndns-update-add-soa/command [moved from regression-tests/1dyndns-update-add-soa/command with 100% similarity]
regression-tests/tests/1dyndns-update-add-soa/description [moved from regression-tests/1dyndns-update-add-soa/description with 100% similarity]
regression-tests/tests/1dyndns-update-add-soa/expected_result [moved from regression-tests/1dyndns-update-add-soa/expected_result with 100% similarity]
regression-tests/tests/1dyndns-update-add-soa/skip.nodyndns [moved from regression-tests/1dyndns-update-add-soa/skip.nodyndns with 100% similarity]
regression-tests/tests/1dyndns-update-deep-add-delete/command [moved from regression-tests/1dyndns-update-deep-add-delete/command with 100% similarity]
regression-tests/tests/1dyndns-update-deep-add-delete/description [moved from regression-tests/1dyndns-update-deep-add-delete/description with 100% similarity]
regression-tests/tests/1dyndns-update-deep-add-delete/expected_result [moved from regression-tests/1dyndns-update-deep-add-delete/expected_result with 100% similarity]
regression-tests/tests/1dyndns-update-deep-add-delete/expected_result.dnssec [moved from regression-tests/1dyndns-update-deep-add-delete/expected_result.dnssec with 100% similarity]
regression-tests/tests/1dyndns-update-deep-add-delete/expected_result.narrow [moved from regression-tests/1dyndns-update-deep-add-delete/expected_result.narrow with 100% similarity]
regression-tests/tests/1dyndns-update-deep-add-delete/expected_result.nsec3 [moved from regression-tests/1dyndns-update-deep-add-delete/expected_result.nsec3 with 100% similarity]
regression-tests/tests/1dyndns-update-deep-add-delete/skip.nodyndns [moved from regression-tests/1dyndns-update-deep-add-delete/skip.nodyndns with 100% similarity]
regression-tests/tests/1dyndns-update-deep-delegate/command [moved from regression-tests/1dyndns-update-deep-delegate/command with 100% similarity]
regression-tests/tests/1dyndns-update-deep-delegate/description [moved from regression-tests/1dyndns-update-deep-delegate/description with 100% similarity]
regression-tests/tests/1dyndns-update-deep-delegate/expected_result [moved from regression-tests/1dyndns-update-deep-delegate/expected_result with 100% similarity]
regression-tests/tests/1dyndns-update-deep-delegate/expected_result.dnssec [moved from regression-tests/1dyndns-update-deep-delegate/expected_result.dnssec with 100% similarity]
regression-tests/tests/1dyndns-update-deep-delegate/expected_result.narrow [moved from regression-tests/1dyndns-update-deep-delegate/expected_result.narrow with 100% similarity]
regression-tests/tests/1dyndns-update-deep-delegate/expected_result.nsec3 [moved from regression-tests/1dyndns-update-deep-delegate/expected_result.nsec3 with 100% similarity]
regression-tests/tests/1dyndns-update-deep-delegate/expected_result.nsec3-optout [moved from regression-tests/1dyndns-update-deep-delegate/expected_result.nsec3-optout with 100% similarity]
regression-tests/tests/1dyndns-update-deep-delegate/skip-unboundhost [moved from regression-tests/1dyndns-update-deep-delegate/skip-unboundhost with 100% similarity]
regression-tests/tests/1dyndns-update-deep-delegate/skip.nodyndns [moved from regression-tests/1dyndns-update-deep-delegate/skip.nodyndns with 100% similarity]
regression-tests/tests/1dyndns-update-delegate-in-between/command [moved from regression-tests/1dyndns-update-delegate-in-between/command with 100% similarity]
regression-tests/tests/1dyndns-update-delegate-in-between/description [moved from regression-tests/1dyndns-update-delegate-in-between/description with 100% similarity]
regression-tests/tests/1dyndns-update-delegate-in-between/expected_result [moved from regression-tests/1dyndns-update-delegate-in-between/expected_result with 100% similarity]
regression-tests/tests/1dyndns-update-delegate-in-between/expected_result.dnssec [moved from regression-tests/1dyndns-update-delegate-in-between/expected_result.dnssec with 100% similarity]
regression-tests/tests/1dyndns-update-delegate-in-between/expected_result.narrow [moved from regression-tests/1dyndns-update-delegate-in-between/expected_result.narrow with 100% similarity]
regression-tests/tests/1dyndns-update-delegate-in-between/expected_result.nsec3 [moved from regression-tests/1dyndns-update-delegate-in-between/expected_result.nsec3 with 100% similarity]
regression-tests/tests/1dyndns-update-delegate-in-between/expected_result.nsec3-optout [moved from regression-tests/1dyndns-update-delegate-in-between/expected_result.nsec3-optout with 100% similarity]
regression-tests/tests/1dyndns-update-delegate-in-between/skip.nodyndns [moved from regression-tests/1dyndns-update-delegate-in-between/skip.nodyndns with 100% similarity]
regression-tests/tests/1dyndns-update-delegate/command [moved from regression-tests/1dyndns-update-delegate/command with 100% similarity]
regression-tests/tests/1dyndns-update-delegate/description [moved from regression-tests/1dyndns-update-delegate/description with 100% similarity]
regression-tests/tests/1dyndns-update-delegate/expected_result [moved from regression-tests/1dyndns-update-delegate/expected_result with 100% similarity]
regression-tests/tests/1dyndns-update-delegate/expected_result.dnssec [moved from regression-tests/1dyndns-update-delegate/expected_result.dnssec with 100% similarity]
regression-tests/tests/1dyndns-update-delegate/expected_result.narrow [moved from regression-tests/1dyndns-update-delegate/expected_result.narrow with 100% similarity]
regression-tests/tests/1dyndns-update-delegate/expected_result.nsec3 [moved from regression-tests/1dyndns-update-delegate/expected_result.nsec3 with 100% similarity]
regression-tests/tests/1dyndns-update-delegate/expected_result.nsec3-optout [moved from regression-tests/1dyndns-update-delegate/expected_result.nsec3-optout with 100% similarity]
regression-tests/tests/1dyndns-update-delegate/skip-unboundhost [moved from regression-tests/1dyndns-update-delegate/skip-unboundhost with 100% similarity]
regression-tests/tests/1dyndns-update-delegate/skip.nodyndns [moved from regression-tests/1dyndns-update-delegate/skip.nodyndns with 100% similarity]
regression-tests/tests/1dyndns-update-delete-add-host/command [moved from regression-tests/1dyndns-update-delete-add-host/command with 100% similarity]
regression-tests/tests/1dyndns-update-delete-add-host/description [moved from regression-tests/1dyndns-update-delete-add-host/description with 100% similarity]
regression-tests/tests/1dyndns-update-delete-add-host/expected_result [moved from regression-tests/1dyndns-update-delete-add-host/expected_result with 100% similarity]
regression-tests/tests/1dyndns-update-delete-add-host/skip.nodyndns [moved from regression-tests/1dyndns-update-delete-add-host/skip.nodyndns with 100% similarity]
regression-tests/tests/1dyndns-update-delete-multi-add-host/command [moved from regression-tests/1dyndns-update-delete-multi-add-host/command with 100% similarity]
regression-tests/tests/1dyndns-update-delete-multi-add-host/description [moved from regression-tests/1dyndns-update-delete-multi-add-host/description with 100% similarity]
regression-tests/tests/1dyndns-update-delete-multi-add-host/expected_result [moved from regression-tests/1dyndns-update-delete-multi-add-host/expected_result with 100% similarity]
regression-tests/tests/1dyndns-update-delete-multi-add-host/skip.nodyndns [moved from regression-tests/1dyndns-update-delete-multi-add-host/skip.nodyndns with 100% similarity]
regression-tests/tests/1dyndns-update-delete-mx-prio/command [moved from regression-tests/1dyndns-update-delete-mx-prio/command with 100% similarity]
regression-tests/tests/1dyndns-update-delete-mx-prio/description [moved from regression-tests/1dyndns-update-delete-mx-prio/description with 100% similarity]
regression-tests/tests/1dyndns-update-delete-mx-prio/expected_result [moved from regression-tests/1dyndns-update-delete-mx-prio/expected_result with 100% similarity]
regression-tests/tests/1dyndns-update-delete-mx-prio/skip.nodyndns [moved from regression-tests/1dyndns-update-delete-mx-prio/skip.nodyndns with 100% similarity]
regression-tests/tests/1dyndns-update-delete-ns/command [moved from regression-tests/1dyndns-update-delete-ns/command with 100% similarity]
regression-tests/tests/1dyndns-update-delete-ns/description [moved from regression-tests/1dyndns-update-delete-ns/description with 100% similarity]
regression-tests/tests/1dyndns-update-delete-ns/expected_result [moved from regression-tests/1dyndns-update-delete-ns/expected_result with 100% similarity]
regression-tests/tests/1dyndns-update-delete-ns/skip.nodyndns [moved from regression-tests/1dyndns-update-delete-ns/skip.nodyndns with 100% similarity]
regression-tests/tests/1dyndns-update-delete-parent-delegate/command [moved from regression-tests/1dyndns-update-delete-parent-delegate/command with 100% similarity]
regression-tests/tests/1dyndns-update-delete-parent-delegate/description [moved from regression-tests/1dyndns-update-delete-parent-delegate/description with 100% similarity]
regression-tests/tests/1dyndns-update-delete-parent-delegate/expected_result [moved from regression-tests/1dyndns-update-delete-parent-delegate/expected_result with 100% similarity]
regression-tests/tests/1dyndns-update-delete-parent-delegate/expected_result.dnssec [moved from regression-tests/1dyndns-update-delete-parent-delegate/expected_result.dnssec with 100% similarity]
regression-tests/tests/1dyndns-update-delete-parent-delegate/expected_result.narrow [moved from regression-tests/1dyndns-update-delete-parent-delegate/expected_result.narrow with 100% similarity]
regression-tests/tests/1dyndns-update-delete-parent-delegate/expected_result.nsec3 [moved from regression-tests/1dyndns-update-delete-parent-delegate/expected_result.nsec3 with 100% similarity]
regression-tests/tests/1dyndns-update-delete-parent-delegate/expected_result.nsec3-optout [moved from regression-tests/1dyndns-update-delete-parent-delegate/expected_result.nsec3-optout with 100% similarity]
regression-tests/tests/1dyndns-update-delete-parent-delegate/skip.nodyndns [moved from regression-tests/1dyndns-update-delete-parent-delegate/skip.nodyndns with 100% similarity]
regression-tests/tests/1dyndns-update-delete-soa/command [moved from regression-tests/1dyndns-update-delete-soa/command with 100% similarity]
regression-tests/tests/1dyndns-update-delete-soa/description [moved from regression-tests/1dyndns-update-delete-soa/description with 100% similarity]
regression-tests/tests/1dyndns-update-delete-soa/expected_result [moved from regression-tests/1dyndns-update-delete-soa/expected_result with 100% similarity]
regression-tests/tests/1dyndns-update-delete-soa/skip.nodyndns [moved from regression-tests/1dyndns-update-delete-soa/skip.nodyndns with 100% similarity]
regression-tests/tests/1dyndns-update-in-between/command [moved from regression-tests/1dyndns-update-in-between/command with 100% similarity]
regression-tests/tests/1dyndns-update-in-between/description [moved from regression-tests/1dyndns-update-in-between/description with 100% similarity]
regression-tests/tests/1dyndns-update-in-between/expected_result [moved from regression-tests/1dyndns-update-in-between/expected_result with 100% similarity]
regression-tests/tests/1dyndns-update-in-between/expected_result.dnssec [moved from regression-tests/1dyndns-update-in-between/expected_result.dnssec with 100% similarity]
regression-tests/tests/1dyndns-update-in-between/expected_result.narrow [moved from regression-tests/1dyndns-update-in-between/expected_result.narrow with 100% similarity]
regression-tests/tests/1dyndns-update-in-between/expected_result.nsec3 [moved from regression-tests/1dyndns-update-in-between/expected_result.nsec3 with 100% similarity]
regression-tests/tests/1dyndns-update-in-between/skip.nodyndns [moved from regression-tests/1dyndns-update-in-between/skip.nodyndns with 100% similarity]
regression-tests/tests/1dyndns-update-nsec3params-with-others/command [moved from regression-tests/1dyndns-update-nsec3params-with-others/command with 100% similarity]
regression-tests/tests/1dyndns-update-nsec3params-with-others/description [moved from regression-tests/1dyndns-update-nsec3params-with-others/description with 100% similarity]
regression-tests/tests/1dyndns-update-nsec3params-with-others/expected_result [moved from regression-tests/1dyndns-update-nsec3params-with-others/expected_result with 100% similarity]
regression-tests/tests/1dyndns-update-nsec3params-with-others/expected_result.nsec3 [moved from regression-tests/1dyndns-update-nsec3params-with-others/expected_result.nsec3 with 100% similarity]
regression-tests/tests/1dyndns-update-nsec3params-with-others/skip.narrow [moved from regression-tests/1dyndns-update-nsec3params-with-others/skip.narrow with 100% similarity]
regression-tests/tests/1dyndns-update-nsec3params-with-others/skip.nodnssec [moved from regression-tests/1dyndns-update-nsec3params-with-others/skip.nodnssec with 100% similarity]
regression-tests/tests/1dyndns-update-nsec3params-with-others/skip.nodyndns [moved from regression-tests/1dyndns-update-nsec3params-with-others/skip.nodyndns with 100% similarity]
regression-tests/tests/1dyndns-update-nsec3params/command [moved from regression-tests/1dyndns-update-nsec3params/command with 100% similarity]
regression-tests/tests/1dyndns-update-nsec3params/description [moved from regression-tests/1dyndns-update-nsec3params/description with 100% similarity]
regression-tests/tests/1dyndns-update-nsec3params/expected_result [moved from regression-tests/1dyndns-update-nsec3params/expected_result with 100% similarity]
regression-tests/tests/1dyndns-update-nsec3params/expected_result.nsec3 [moved from regression-tests/1dyndns-update-nsec3params/expected_result.nsec3 with 100% similarity]
regression-tests/tests/1dyndns-update-nsec3params/skip.narrow [moved from regression-tests/1dyndns-update-nsec3params/skip.narrow with 100% similarity]
regression-tests/tests/1dyndns-update-nsec3params/skip.nodnssec [moved from regression-tests/1dyndns-update-nsec3params/skip.nodnssec with 100% similarity]
regression-tests/tests/1dyndns-update-nsec3params/skip.nodyndns [moved from regression-tests/1dyndns-update-nsec3params/skip.nodyndns with 100% similarity]
regression-tests/tests/1dyndns-update-replace-a-host/command [moved from regression-tests/1dyndns-update-replace-a-host/command with 100% similarity]
regression-tests/tests/1dyndns-update-replace-a-host/description [moved from regression-tests/1dyndns-update-replace-a-host/description with 100% similarity]
regression-tests/tests/1dyndns-update-replace-a-host/expected_result [moved from regression-tests/1dyndns-update-replace-a-host/expected_result with 100% similarity]
regression-tests/tests/1dyndns-update-replace-a-host/skip.nodyndns [moved from regression-tests/1dyndns-update-replace-a-host/skip.nodyndns with 100% similarity]
regression-tests/tests/1dyndns-update-replace-cname/command [moved from regression-tests/1dyndns-update-replace-cname/command with 100% similarity]
regression-tests/tests/1dyndns-update-replace-cname/description [moved from regression-tests/1dyndns-update-replace-cname/description with 100% similarity]
regression-tests/tests/1dyndns-update-replace-cname/expected_result [moved from regression-tests/1dyndns-update-replace-cname/expected_result with 100% similarity]
regression-tests/tests/1dyndns-update-replace-cname/skip.nodyndns [moved from regression-tests/1dyndns-update-replace-cname/skip.nodyndns with 100% similarity]
regression-tests/tests/1dyndns-update-replace-mx/command [moved from regression-tests/1dyndns-update-replace-mx/command with 100% similarity]
regression-tests/tests/1dyndns-update-replace-mx/description [moved from regression-tests/1dyndns-update-replace-mx/description with 100% similarity]
regression-tests/tests/1dyndns-update-replace-mx/expected_result [moved from regression-tests/1dyndns-update-replace-mx/expected_result with 100% similarity]
regression-tests/tests/1dyndns-update-replace-mx/skip.nodyndns [moved from regression-tests/1dyndns-update-replace-mx/skip.nodyndns with 100% similarity]
regression-tests/tests/1dyndns-update-srv/command [moved from regression-tests/1dyndns-update-srv/command with 100% similarity]
regression-tests/tests/1dyndns-update-srv/description [moved from regression-tests/1dyndns-update-srv/description with 100% similarity]
regression-tests/tests/1dyndns-update-srv/expected_result [moved from regression-tests/1dyndns-update-srv/expected_result with 100% similarity]
regression-tests/tests/1dyndns-update-srv/skip.nodyndns [moved from regression-tests/1dyndns-update-srv/skip.nodyndns with 100% similarity]
regression-tests/tests/1dyndns-update-update-ttl/command [moved from regression-tests/1dyndns-update-update-ttl/command with 100% similarity]
regression-tests/tests/1dyndns-update-update-ttl/description [moved from regression-tests/1dyndns-update-update-ttl/description with 100% similarity]
regression-tests/tests/1dyndns-update-update-ttl/expected_result [moved from regression-tests/1dyndns-update-update-ttl/expected_result with 100% similarity]
regression-tests/tests/1dyndns-update-update-ttl/skip.nodyndns [moved from regression-tests/1dyndns-update-update-ttl/skip.nodyndns with 100% similarity]
regression-tests/tests/2dyndns-update-replace-soa/command [moved from regression-tests/2dyndns-update-replace-soa/command with 100% similarity]
regression-tests/tests/2dyndns-update-replace-soa/description [moved from regression-tests/2dyndns-update-replace-soa/description with 100% similarity]
regression-tests/tests/2dyndns-update-replace-soa/expected_result [moved from regression-tests/2dyndns-update-replace-soa/expected_result with 100% similarity]
regression-tests/tests/2dyndns-update-replace-soa/skip.nodyndns [moved from regression-tests/2dyndns-update-replace-soa/skip.nodyndns with 100% similarity]
regression-tests/tests/5dyndns-restore-zone/command [moved from regression-tests/5dyndns-restore-zone/command with 100% similarity]
regression-tests/tests/5dyndns-restore-zone/description [moved from regression-tests/5dyndns-restore-zone/description with 100% similarity]
regression-tests/tests/5dyndns-restore-zone/expected_result [moved from regression-tests/5dyndns-restore-zone/expected_result with 100% similarity]
regression-tests/tests/5dyndns-restore-zone/skip.nodyndns [moved from regression-tests/5dyndns-restore-zone/skip.nodyndns with 100% similarity]
regression-tests/tests/8bit-txt-unescaped/command [moved from regression-tests/8bit-txt-unescaped/command with 100% similarity]
regression-tests/tests/8bit-txt-unescaped/description [moved from regression-tests/8bit-txt-unescaped/description with 100% similarity]
regression-tests/tests/8bit-txt-unescaped/expected_result [moved from regression-tests/8bit-txt-unescaped/expected_result with 100% similarity]
regression-tests/tests/8bit-txt/command [moved from regression-tests/8bit-txt/command with 100% similarity]
regression-tests/tests/8bit-txt/description [moved from regression-tests/8bit-txt/description with 100% similarity]
regression-tests/tests/8bit-txt/expected_result [moved from regression-tests/8bit-txt/expected_result with 100% similarity]
regression-tests/tests/any-nxdomain/command [moved from regression-tests/any-nxdomain/command with 100% similarity]
regression-tests/tests/any-nxdomain/description [moved from regression-tests/any-nxdomain/description with 100% similarity]
regression-tests/tests/any-nxdomain/expected_result [moved from regression-tests/any-nxdomain/expected_result with 100% similarity]
regression-tests/tests/any-nxdomain/expected_result.dnssec [moved from regression-tests/any-nxdomain/expected_result.dnssec with 100% similarity]
regression-tests/tests/any-nxdomain/expected_result.narrow [moved from regression-tests/any-nxdomain/expected_result.narrow with 100% similarity]
regression-tests/tests/any-nxdomain/expected_result.nsec3 [moved from regression-tests/any-nxdomain/expected_result.nsec3 with 100% similarity]
regression-tests/tests/any-query/command [moved from regression-tests/any-query/command with 100% similarity]
regression-tests/tests/any-query/description [moved from regression-tests/any-query/description with 100% similarity]
regression-tests/tests/any-query/expected_result [moved from regression-tests/any-query/expected_result with 100% similarity]
regression-tests/tests/any-wildcard-dnssec/command [moved from regression-tests/any-wildcard-dnssec/command with 100% similarity]
regression-tests/tests/any-wildcard-dnssec/description [moved from regression-tests/any-wildcard-dnssec/description with 100% similarity]
regression-tests/tests/any-wildcard-dnssec/expected_result [moved from regression-tests/any-wildcard-dnssec/expected_result with 100% similarity]
regression-tests/tests/any-wildcard-dnssec/expected_result.narrow [moved from regression-tests/any-wildcard-dnssec/expected_result.narrow with 100% similarity]
regression-tests/tests/any-wildcard-dnssec/expected_result.nsec3 [moved from regression-tests/any-wildcard-dnssec/expected_result.nsec3 with 100% similarity]
regression-tests/tests/any-wildcard-dnssec/skip.nodnssec [moved from regression-tests/any-wildcard-dnssec/skip.nodnssec with 100% similarity]
regression-tests/tests/any-wildcard/command [moved from regression-tests/any-wildcard/command with 100% similarity]
regression-tests/tests/any-wildcard/description [moved from regression-tests/any-wildcard/description with 100% similarity]
regression-tests/tests/any-wildcard/expected_result [moved from regression-tests/any-wildcard/expected_result with 100% similarity]
regression-tests/tests/apex-level-a-but-no-a/command [moved from regression-tests/apex-level-a-but-no-a/command with 100% similarity]
regression-tests/tests/apex-level-a-but-no-a/description [moved from regression-tests/apex-level-a-but-no-a/description with 100% similarity]
regression-tests/tests/apex-level-a-but-no-a/expected_result [moved from regression-tests/apex-level-a-but-no-a/expected_result with 100% similarity]
regression-tests/tests/apex-level-a/command [moved from regression-tests/apex-level-a/command with 100% similarity]
regression-tests/tests/apex-level-a/description [moved from regression-tests/apex-level-a/description with 100% similarity]
regression-tests/tests/apex-level-a/expected_result [moved from regression-tests/apex-level-a/expected_result with 100% similarity]
regression-tests/tests/apex-level-ns/command [moved from regression-tests/apex-level-ns/command with 100% similarity]
regression-tests/tests/apex-level-ns/description [moved from regression-tests/apex-level-ns/description with 100% similarity]
regression-tests/tests/apex-level-ns/expected_result [moved from regression-tests/apex-level-ns/expected_result with 100% similarity]
regression-tests/tests/basic-a-resolution/command [moved from regression-tests/basic-a-resolution/command with 100% similarity]
regression-tests/tests/basic-a-resolution/description [moved from regression-tests/basic-a-resolution/description with 100% similarity]
regression-tests/tests/basic-a-resolution/expected_result [moved from regression-tests/basic-a-resolution/expected_result with 100% similarity]
regression-tests/tests/basic-aaaa-resolution/command [moved from regression-tests/basic-aaaa-resolution/command with 100% similarity]
regression-tests/tests/basic-aaaa-resolution/description [moved from regression-tests/basic-aaaa-resolution/description with 100% similarity]
regression-tests/tests/basic-aaaa-resolution/expected_result [moved from regression-tests/basic-aaaa-resolution/expected_result with 100% similarity]
regression-tests/tests/basic-eui48/command [moved from regression-tests/basic-eui48/command with 100% similarity]
regression-tests/tests/basic-eui48/description [moved from regression-tests/basic-eui48/description with 100% similarity]
regression-tests/tests/basic-eui48/expected_result [moved from regression-tests/basic-eui48/expected_result with 100% similarity]
regression-tests/tests/basic-eui48/skip.bind [moved from regression-tests/basic-eui48/skip.bind with 100% similarity]
regression-tests/tests/basic-eui48/skip.mydns [moved from regression-tests/basic-eui48/skip.mydns with 100% similarity]
regression-tests/tests/basic-eui48/skip.nsd [moved from regression-tests/basic-eui48/skip.nsd with 100% similarity]
regression-tests/tests/basic-eui64/command [moved from regression-tests/basic-eui64/command with 100% similarity]
regression-tests/tests/basic-eui64/description [moved from regression-tests/basic-eui64/description with 100% similarity]
regression-tests/tests/basic-eui64/expected_result [moved from regression-tests/basic-eui64/expected_result with 100% similarity]
regression-tests/tests/basic-eui64/skip.bind [moved from regression-tests/basic-eui64/skip.bind with 100% similarity]
regression-tests/tests/basic-eui64/skip.mydns [moved from regression-tests/basic-eui64/skip.mydns with 100% similarity]
regression-tests/tests/basic-eui64/skip.nsd [moved from regression-tests/basic-eui64/skip.nsd with 100% similarity]
regression-tests/tests/basic-hinfo/command [moved from regression-tests/basic-hinfo/command with 100% similarity]
regression-tests/tests/basic-hinfo/description [moved from regression-tests/basic-hinfo/description with 100% similarity]
regression-tests/tests/basic-hinfo/expected_result [moved from regression-tests/basic-hinfo/expected_result with 100% similarity]
regression-tests/tests/basic-loc/command [moved from regression-tests/basic-loc/command with 100% similarity]
regression-tests/tests/basic-loc/description [moved from regression-tests/basic-loc/description with 100% similarity]
regression-tests/tests/basic-loc/expected_result [moved from regression-tests/basic-loc/expected_result with 100% similarity]
regression-tests/tests/basic-loc/skip.mydns [moved from regression-tests/basic-loc/skip.mydns with 100% similarity]
regression-tests/tests/basic-nonzone/command [moved from regression-tests/basic-nonzone/command with 100% similarity]
regression-tests/tests/basic-nonzone/description [moved from regression-tests/basic-nonzone/description with 100% similarity]
regression-tests/tests/basic-nonzone/expected_result [moved from regression-tests/basic-nonzone/expected_result with 100% similarity]
regression-tests/tests/basic-nonzone/skip-unboundhost [moved from regression-tests/basic-nonzone/skip-unboundhost with 100% similarity]
regression-tests/tests/basic-ns-resolution/command [moved from regression-tests/basic-ns-resolution/command with 100% similarity]
regression-tests/tests/basic-ns-resolution/description [moved from regression-tests/basic-ns-resolution/description with 100% similarity]
regression-tests/tests/basic-ns-resolution/expected_result [moved from regression-tests/basic-ns-resolution/expected_result with 100% similarity]
regression-tests/tests/basic-soa-resolution/command [moved from regression-tests/basic-soa-resolution/command with 100% similarity]
regression-tests/tests/basic-soa-resolution/description [moved from regression-tests/basic-soa-resolution/description with 100% similarity]
regression-tests/tests/basic-soa-resolution/expected_result [moved from regression-tests/basic-soa-resolution/expected_result with 100% similarity]
regression-tests/tests/basic-srv/command [moved from regression-tests/basic-srv/command with 100% similarity]
regression-tests/tests/basic-srv/description [moved from regression-tests/basic-srv/description with 100% similarity]
regression-tests/tests/basic-srv/expected_result [moved from regression-tests/basic-srv/expected_result with 100% similarity]
regression-tests/tests/basic-txt-resolution/command [moved from regression-tests/basic-txt-resolution/command with 100% similarity]
regression-tests/tests/basic-txt-resolution/description [moved from regression-tests/basic-txt-resolution/description with 100% similarity]
regression-tests/tests/basic-txt-resolution/expected_result [moved from regression-tests/basic-txt-resolution/expected_result with 100% similarity]
regression-tests/tests/big-axfr/command [moved from regression-tests/big-axfr/command with 100% similarity]
regression-tests/tests/big-axfr/description [moved from regression-tests/big-axfr/description with 100% similarity]
regression-tests/tests/big-axfr/expected_result [moved from regression-tests/big-axfr/expected_result with 100% similarity]
regression-tests/tests/bind-add-zone/command [moved from regression-tests/bind-add-zone/command with 63% similarity]
regression-tests/tests/bind-add-zone/description [moved from regression-tests/bind-add-zone/description with 100% similarity]
regression-tests/tests/bind-add-zone/expected_result [moved from regression-tests/bind-add-zone/expected_result with 100% similarity]
regression-tests/tests/bind-add-zone/expected_result.bind [moved from regression-tests/bind-add-zone/expected_result.bind with 97% similarity]
regression-tests/tests/bind-add-zone/skip.presigned [moved from regression-tests/bind-add-zone/skip.presigned with 100% similarity]
regression-tests/tests/bind-add-zone/stress/README [moved from regression-tests/bind-add-zone/stress/README with 100% similarity]
regression-tests/tests/bind-add-zone/stress/addzones.sh [moved from regression-tests/bind-add-zone/stress/addzones.sh with 100% similarity]
regression-tests/tests/bind-add-zone/stress/createzones.sh [moved from regression-tests/bind-add-zone/stress/createzones.sh with 100% similarity]
regression-tests/tests/bind-add-zone/stress/dnsperf.sh [moved from regression-tests/bind-add-zone/stress/dnsperf.sh with 100% similarity]
regression-tests/tests/bind-add-zone/stress/run.sh [moved from regression-tests/bind-add-zone/stress/run.sh with 100% similarity]
regression-tests/tests/cname-and-wildcard-at-root/command [moved from regression-tests/cname-and-wildcard-at-root/command with 100% similarity]
regression-tests/tests/cname-and-wildcard-at-root/description [moved from regression-tests/cname-and-wildcard-at-root/description with 100% similarity]
regression-tests/tests/cname-and-wildcard-at-root/expected_result [moved from regression-tests/cname-and-wildcard-at-root/expected_result with 100% similarity]
regression-tests/tests/cname-and-wildcard-but-no-correct-type/command [moved from regression-tests/cname-and-wildcard-but-no-correct-type/command with 100% similarity]
regression-tests/tests/cname-and-wildcard-but-no-correct-type/description [moved from regression-tests/cname-and-wildcard-but-no-correct-type/description with 100% similarity]
regression-tests/tests/cname-and-wildcard-but-no-correct-type/expected_result [moved from regression-tests/cname-and-wildcard-but-no-correct-type/expected_result with 100% similarity]
regression-tests/tests/cname-and-wildcard/command [moved from regression-tests/cname-and-wildcard/command with 100% similarity]
regression-tests/tests/cname-and-wildcard/description [moved from regression-tests/cname-and-wildcard/description with 100% similarity]
regression-tests/tests/cname-and-wildcard/expected_result [moved from regression-tests/cname-and-wildcard/expected_result with 100% similarity]
regression-tests/tests/cname-but-no-correct-type/command [moved from regression-tests/cname-but-no-correct-type/command with 100% similarity]
regression-tests/tests/cname-but-no-correct-type/description [moved from regression-tests/cname-but-no-correct-type/description with 100% similarity]
regression-tests/tests/cname-but-no-correct-type/expected_result [moved from regression-tests/cname-but-no-correct-type/expected_result with 100% similarity]
regression-tests/tests/cname-loop-breakout/command [moved from regression-tests/cname-loop-breakout/command with 100% similarity]
regression-tests/tests/cname-loop-breakout/description [moved from regression-tests/cname-loop-breakout/description with 100% similarity]
regression-tests/tests/cname-loop-breakout/expected_result [moved from regression-tests/cname-loop-breakout/expected_result with 100% similarity]
regression-tests/tests/cname-loop-breakout/skip-unboundhost [moved from regression-tests/cname-loop-breakout/skip-unboundhost with 100% similarity]
regression-tests/tests/cname-to-nxdomain-any/command [moved from regression-tests/cname-to-nxdomain-any/command with 100% similarity]
regression-tests/tests/cname-to-nxdomain-any/description [moved from regression-tests/cname-to-nxdomain-any/description with 100% similarity]
regression-tests/tests/cname-to-nxdomain-any/expected_result [moved from regression-tests/cname-to-nxdomain-any/expected_result with 100% similarity]
regression-tests/tests/cname-to-nxdomain-any/expected_result.dnssec [moved from regression-tests/cname-to-nxdomain-any/expected_result.dnssec with 100% similarity]
regression-tests/tests/cname-to-nxdomain-any/expected_result.narrow [moved from regression-tests/cname-to-nxdomain-any/expected_result.narrow with 100% similarity]
regression-tests/tests/cname-to-nxdomain-any/expected_result.nsec3 [moved from regression-tests/cname-to-nxdomain-any/expected_result.nsec3 with 100% similarity]
regression-tests/tests/cname-to-nxdomain/command [moved from regression-tests/cname-to-nxdomain/command with 100% similarity]
regression-tests/tests/cname-to-nxdomain/description [moved from regression-tests/cname-to-nxdomain/description with 100% similarity]
regression-tests/tests/cname-to-nxdomain/expected_result [moved from regression-tests/cname-to-nxdomain/expected_result with 100% similarity]
regression-tests/tests/cname-to-nxdomain/expected_result.dnssec [moved from regression-tests/cname-to-nxdomain/expected_result.dnssec with 100% similarity]
regression-tests/tests/cname-to-nxdomain/expected_result.narrow [moved from regression-tests/cname-to-nxdomain/expected_result.narrow with 100% similarity]
regression-tests/tests/cname-to-nxdomain/expected_result.nsec3 [moved from regression-tests/cname-to-nxdomain/expected_result.nsec3 with 100% similarity]
regression-tests/tests/cname-to-referral/command [moved from regression-tests/cname-to-referral/command with 100% similarity]
regression-tests/tests/cname-to-referral/description [moved from regression-tests/cname-to-referral/description with 100% similarity]
regression-tests/tests/cname-to-referral/expected_result [moved from regression-tests/cname-to-referral/expected_result with 100% similarity]
regression-tests/tests/cname-to-referral/skip-unboundhost [moved from regression-tests/cname-to-referral/skip-unboundhost with 100% similarity]
regression-tests/tests/cname-to-unauth-any/command [moved from regression-tests/cname-to-unauth-any/command with 100% similarity]
regression-tests/tests/cname-to-unauth-any/description [moved from regression-tests/cname-to-unauth-any/description with 100% similarity]
regression-tests/tests/cname-to-unauth-any/expected_result [moved from regression-tests/cname-to-unauth-any/expected_result with 100% similarity]
regression-tests/tests/cname-to-unauth-any/expected_result.dnssec [moved from regression-tests/cname-to-unauth-any/expected_result.dnssec with 100% similarity]
regression-tests/tests/cname-to-unauth-any/skip-unboundhost [moved from regression-tests/cname-to-unauth-any/skip-unboundhost with 100% similarity]
regression-tests/tests/cname-to-unauth/command [moved from regression-tests/cname-to-unauth/command with 100% similarity]
regression-tests/tests/cname-to-unauth/description [moved from regression-tests/cname-to-unauth/description with 100% similarity]
regression-tests/tests/cname-to-unauth/expected_result [moved from regression-tests/cname-to-unauth/expected_result with 100% similarity]
regression-tests/tests/cname-to-unauth/expected_result.dnssec [moved from regression-tests/cname-to-unauth/expected_result.dnssec with 100% similarity]
regression-tests/tests/cname-to-unauth/skip-unboundhost [moved from regression-tests/cname-to-unauth/skip-unboundhost with 100% similarity]
regression-tests/tests/cname-wildcard-chain/command [moved from regression-tests/cname-wildcard-chain/command with 100% similarity]
regression-tests/tests/cname-wildcard-chain/description [moved from regression-tests/cname-wildcard-chain/description with 100% similarity]
regression-tests/tests/cname-wildcard-chain/expected_result [moved from regression-tests/cname-wildcard-chain/expected_result with 100% similarity]
regression-tests/tests/cname-wildcard-chain/expected_result.dnssec [moved from regression-tests/cname-wildcard-chain/expected_result.dnssec with 100% similarity]
regression-tests/tests/cname-wildcard-chain/expected_result.narrow [moved from regression-tests/cname-wildcard-chain/expected_result.narrow with 100% similarity]
regression-tests/tests/cname-wildcard-chain/expected_result.nsec3 [moved from regression-tests/cname-wildcard-chain/expected_result.nsec3 with 100% similarity]
regression-tests/tests/cname-wildcard-chain/skip-unboundhost [moved from regression-tests/cname-wildcard-chain/skip-unboundhost with 100% similarity]
regression-tests/tests/cname-wildcard-chain/skip.oracle-nsec3 [moved from regression-tests/cname-wildcard-chain/skip.oracle-nsec3 with 100% similarity]
regression-tests/tests/cross-domain-cname-to-wildcard/command [moved from regression-tests/cross-domain-cname-to-wildcard/command with 100% similarity]
regression-tests/tests/cross-domain-cname-to-wildcard/description [moved from regression-tests/cross-domain-cname-to-wildcard/description with 100% similarity]
regression-tests/tests/cross-domain-cname-to-wildcard/expected_result [moved from regression-tests/cross-domain-cname-to-wildcard/expected_result with 100% similarity]
regression-tests/tests/direct-dnskey/command [moved from regression-tests/direct-dnskey/command with 100% similarity]
regression-tests/tests/direct-dnskey/description [moved from regression-tests/direct-dnskey/description with 100% similarity]
regression-tests/tests/direct-dnskey/expected_result [moved from regression-tests/direct-dnskey/expected_result with 100% similarity]
regression-tests/tests/direct-dnskey/expected_result.dnssec [moved from regression-tests/direct-dnskey/expected_result.dnssec with 100% similarity]
regression-tests/tests/direct-rrsig/command [moved from regression-tests/direct-rrsig/command with 100% similarity]
regression-tests/tests/direct-rrsig/description [moved from regression-tests/direct-rrsig/description with 100% similarity]
regression-tests/tests/direct-rrsig/expected_result [moved from regression-tests/direct-rrsig/expected_result with 100% similarity]
regression-tests/tests/direct-rrsig/expected_result.dnssec [moved from regression-tests/direct-rrsig/expected_result.dnssec with 100% similarity]
regression-tests/tests/direct-rrsig/expected_result.narrow [moved from regression-tests/direct-rrsig/expected_result.narrow with 100% similarity]
regression-tests/tests/direct-rrsig/expected_result.nsec3 [moved from regression-tests/direct-rrsig/expected_result.nsec3 with 100% similarity]
regression-tests/tests/direct-rrsig/skip-q [moved from regression-tests/direct-rrsig/skip-q with 100% similarity]
regression-tests/tests/direct-wildcard/command [moved from regression-tests/direct-wildcard/command with 100% similarity]
regression-tests/tests/direct-wildcard/description [moved from regression-tests/direct-wildcard/description with 100% similarity]
regression-tests/tests/direct-wildcard/expected_result [moved from regression-tests/direct-wildcard/expected_result with 100% similarity]
regression-tests/tests/double-srv/command [moved from regression-tests/double-srv/command with 100% similarity]
regression-tests/tests/double-srv/description [moved from regression-tests/double-srv/description with 100% similarity]
regression-tests/tests/double-srv/expected_result [moved from regression-tests/double-srv/expected_result with 100% similarity]
regression-tests/tests/double/command [moved from regression-tests/double/command with 100% similarity]
regression-tests/tests/double/description [moved from regression-tests/double/description with 100% similarity]
regression-tests/tests/double/expected_result [moved from regression-tests/double/expected_result with 100% similarity]
regression-tests/tests/double/expected_result.dnssec [moved from regression-tests/double/expected_result.dnssec with 100% similarity]
regression-tests/tests/double/skip.mydns [moved from regression-tests/double/skip.mydns with 100% similarity]
regression-tests/tests/ds-at-apex-noerror/command [moved from regression-tests/ds-at-apex-noerror/command with 100% similarity]
regression-tests/tests/ds-at-apex-noerror/description [moved from regression-tests/ds-at-apex-noerror/description with 100% similarity]
regression-tests/tests/ds-at-apex-noerror/expected_result [moved from regression-tests/ds-at-apex-noerror/expected_result with 100% similarity]
regression-tests/tests/ds-at-apex-noerror/expected_result.dnssec [moved from regression-tests/ds-at-apex-noerror/expected_result.dnssec with 100% similarity]
regression-tests/tests/ds-at-apex-noerror/expected_result.narrow [moved from regression-tests/ds-at-apex-noerror/expected_result.narrow with 100% similarity]
regression-tests/tests/ds-at-apex-noerror/expected_result.nsec3 [moved from regression-tests/ds-at-apex-noerror/expected_result.nsec3 with 100% similarity]
regression-tests/tests/ds-at-both-sides/command [moved from regression-tests/ds-at-both-sides/command with 100% similarity]
regression-tests/tests/ds-at-both-sides/description [moved from regression-tests/ds-at-both-sides/description with 100% similarity]
regression-tests/tests/ds-at-both-sides/expected_result [moved from regression-tests/ds-at-both-sides/expected_result with 100% similarity]
regression-tests/tests/ds-at-both-sides/skip.nodnssec [moved from regression-tests/ds-at-both-sides/skip.nodnssec with 100% similarity]
regression-tests/tests/ds-at-secure-delegation/command [moved from regression-tests/ds-at-secure-delegation/command with 100% similarity]
regression-tests/tests/ds-at-secure-delegation/description [moved from regression-tests/ds-at-secure-delegation/description with 100% similarity]
regression-tests/tests/ds-at-secure-delegation/expected_result [moved from regression-tests/ds-at-secure-delegation/expected_result with 100% similarity]
regression-tests/tests/ds-at-secure-delegation/expected_result.dnssec [moved from regression-tests/ds-at-secure-delegation/expected_result.dnssec with 100% similarity]
regression-tests/tests/ds-at-secure-delegation/skip.mydns [moved from regression-tests/ds-at-secure-delegation/skip.mydns with 100% similarity]
regression-tests/tests/ds-at-unsecure-delegation/command [moved from regression-tests/ds-at-unsecure-delegation/command with 100% similarity]
regression-tests/tests/ds-at-unsecure-delegation/description [moved from regression-tests/ds-at-unsecure-delegation/description with 100% similarity]
regression-tests/tests/ds-at-unsecure-delegation/expected_result [moved from regression-tests/ds-at-unsecure-delegation/expected_result with 100% similarity]
regression-tests/tests/ds-at-unsecure-delegation/expected_result.narrow [moved from regression-tests/ds-at-unsecure-delegation/expected_result.narrow with 100% similarity]
regression-tests/tests/ds-at-unsecure-delegation/expected_result.nsec3 [moved from regression-tests/ds-at-unsecure-delegation/expected_result.nsec3 with 100% similarity]
regression-tests/tests/ds-at-unsecure-delegation/expected_result.nsec3-optout [moved from regression-tests/ds-at-unsecure-delegation/expected_result.nsec3-optout with 100% similarity]
regression-tests/tests/ds-at-unsecure-delegation/skip.nodnssec [moved from regression-tests/ds-at-unsecure-delegation/skip.nodnssec with 100% similarity]
regression-tests/tests/ds-at-unsecure-delegation/skip.oracle-nsec [moved from regression-tests/ds-at-unsecure-delegation/skip.oracle-nsec with 100% similarity]
regression-tests/tests/ds-at-unsecure-zone-cut/command [moved from regression-tests/ds-at-unsecure-zone-cut/command with 100% similarity]
regression-tests/tests/ds-at-unsecure-zone-cut/description [moved from regression-tests/ds-at-unsecure-zone-cut/description with 100% similarity]
regression-tests/tests/ds-at-unsecure-zone-cut/expected_result [moved from regression-tests/ds-at-unsecure-zone-cut/expected_result with 100% similarity]
regression-tests/tests/ds-at-unsecure-zone-cut/expected_result.narrow [moved from regression-tests/ds-at-unsecure-zone-cut/expected_result.narrow with 100% similarity]
regression-tests/tests/ds-at-unsecure-zone-cut/expected_result.nsec3 [moved from regression-tests/ds-at-unsecure-zone-cut/expected_result.nsec3 with 100% similarity]
regression-tests/tests/ds-at-unsecure-zone-cut/expected_result.nsec3-optout [moved from regression-tests/ds-at-unsecure-zone-cut/expected_result.nsec3-optout with 100% similarity]
regression-tests/tests/ds-at-unsecure-zone-cut/skip.nodnssec [moved from regression-tests/ds-at-unsecure-zone-cut/skip.nodnssec with 100% similarity]
regression-tests/tests/ds-at-unsecure-zone-cut/skip.oracle-nsec [moved from regression-tests/ds-at-unsecure-zone-cut/skip.oracle-nsec with 100% similarity]
regression-tests/tests/ds-inside-delegation/command [moved from regression-tests/ds-inside-delegation/command with 100% similarity]
regression-tests/tests/ds-inside-delegation/description [moved from regression-tests/ds-inside-delegation/description with 100% similarity]
regression-tests/tests/ds-inside-delegation/expected_result [moved from regression-tests/ds-inside-delegation/expected_result with 100% similarity]
regression-tests/tests/ds-inside-delegation/expected_result.dnssec [moved from regression-tests/ds-inside-delegation/expected_result.dnssec with 100% similarity]
regression-tests/tests/ds-inside-delegation/expected_result.narrow [moved from regression-tests/ds-inside-delegation/expected_result.narrow with 100% similarity]
regression-tests/tests/ds-inside-delegation/expected_result.nsec3 [moved from regression-tests/ds-inside-delegation/expected_result.nsec3 with 100% similarity]
regression-tests/tests/ds-inside-delegation/expected_result.nsec3-optout [moved from regression-tests/ds-inside-delegation/expected_result.nsec3-optout with 100% similarity]
regression-tests/tests/ds-inside-delegation/skip-unboundhost [moved from regression-tests/ds-inside-delegation/skip-unboundhost with 100% similarity]
regression-tests/tests/ds-inside-delegation/skip.oracle-nsec [moved from regression-tests/ds-inside-delegation/skip.oracle-nsec with 100% similarity]
regression-tests/tests/ds-inside-delegation/skip.oracle-nsec3 [moved from regression-tests/ds-inside-delegation/skip.oracle-nsec3 with 100% similarity]
regression-tests/tests/ent-any/command [moved from regression-tests/ent-any/command with 100% similarity]
regression-tests/tests/ent-any/description [moved from regression-tests/ent-any/description with 100% similarity]
regression-tests/tests/ent-any/expected_result [moved from regression-tests/ent-any/expected_result with 100% similarity]
regression-tests/tests/ent-any/expected_result.dnssec [moved from regression-tests/ent-any/expected_result.dnssec with 100% similarity]
regression-tests/tests/ent-any/expected_result.narrow [moved from regression-tests/ent-any/expected_result.narrow with 100% similarity]
regression-tests/tests/ent-any/expected_result.nsec3 [moved from regression-tests/ent-any/expected_result.nsec3 with 100% similarity]
regression-tests/tests/ent-any/expected_result.nsec3-optout [moved from regression-tests/ent-any/expected_result.nsec3-optout with 100% similarity]
regression-tests/tests/ent-any/skip.noent [moved from regression-tests/ent-any/skip.noent with 100% similarity]
regression-tests/tests/ent-asterisk/command [moved from regression-tests/ent-asterisk/command with 100% similarity]
regression-tests/tests/ent-asterisk/description [moved from regression-tests/ent-asterisk/description with 100% similarity]
regression-tests/tests/ent-asterisk/expected_result [moved from regression-tests/ent-asterisk/expected_result with 100% similarity]
regression-tests/tests/ent-asterisk/expected_result.dnssec [moved from regression-tests/ent-asterisk/expected_result.dnssec with 86% similarity]
regression-tests/tests/ent-asterisk/expected_result.narrow [moved from regression-tests/ent-asterisk/expected_result.narrow with 100% similarity]
regression-tests/tests/ent-asterisk/expected_result.nsec3 [moved from regression-tests/ent-asterisk/expected_result.nsec3 with 100% similarity]
regression-tests/tests/ent-asterisk/skip.bind [moved from regression-tests/ent-asterisk/skip.bind with 100% similarity]
regression-tests/tests/ent-asterisk/skip.noent [moved from regression-tests/ent-asterisk/skip.noent with 100% similarity]
regression-tests/tests/ent-axfr/command [moved from regression-tests/ent-axfr/command with 100% similarity]
regression-tests/tests/ent-axfr/description [moved from regression-tests/ent-axfr/description with 100% similarity]
regression-tests/tests/ent-axfr/expected_result [moved from regression-tests/ent-axfr/expected_result with 100% similarity]
regression-tests/tests/ent-axfr/expected_result.nsec3 [moved from regression-tests/ent-axfr/expected_result.nsec3 with 100% similarity]
regression-tests/tests/ent-axfr/expected_result.nsec3-optout [moved from regression-tests/ent-axfr/expected_result.nsec3-optout with 100% similarity]
regression-tests/tests/ent-axfr/skip.narrow [moved from regression-tests/ent-axfr/skip.narrow with 100% similarity]
regression-tests/tests/ent-axfr/skip.nodnssec [moved from regression-tests/ent-axfr/skip.nodnssec with 100% similarity]
regression-tests/tests/ent-axfr/skip.noent [moved from regression-tests/ent-axfr/skip.noent with 100% similarity]
regression-tests/tests/ent-axfr/use.drill [moved from regression-tests/ent-axfr/use.drill with 100% similarity]
regression-tests/tests/ent-rr-enclosed-in-ent/command [moved from regression-tests/ent-rr-enclosed-in-ent/command with 100% similarity]
regression-tests/tests/ent-rr-enclosed-in-ent/description [moved from regression-tests/ent-rr-enclosed-in-ent/description with 100% similarity]
regression-tests/tests/ent-rr-enclosed-in-ent/expected_result [moved from regression-tests/ent-rr-enclosed-in-ent/expected_result with 100% similarity]
regression-tests/tests/ent-rr-enclosed-in-ent/expected_result.dnssec [moved from regression-tests/ent-rr-enclosed-in-ent/expected_result.dnssec with 100% similarity]
regression-tests/tests/ent-rr-enclosed-in-ent/expected_result.narrow [moved from regression-tests/ent-rr-enclosed-in-ent/expected_result.narrow with 100% similarity]
regression-tests/tests/ent-rr-enclosed-in-ent/expected_result.nsec3 [moved from regression-tests/ent-rr-enclosed-in-ent/expected_result.nsec3 with 100% similarity]
regression-tests/tests/ent-rr-enclosed-in-ent/skip.nodnssec [moved from regression-tests/ent-rr-enclosed-in-ent/skip.nodnssec with 100% similarity]
regression-tests/tests/ent-rr-enclosed-in-ent/skip.noent [moved from regression-tests/ent-rr-enclosed-in-ent/skip.noent with 100% similarity]
regression-tests/tests/ent-soa/command [moved from regression-tests/ent-soa/command with 100% similarity]
regression-tests/tests/ent-soa/description [moved from regression-tests/ent-soa/description with 100% similarity]
regression-tests/tests/ent-soa/expected_result [moved from regression-tests/ent-soa/expected_result with 100% similarity]
regression-tests/tests/ent-soa/expected_result.dnssec [moved from regression-tests/ent-soa/expected_result.dnssec with 100% similarity]
regression-tests/tests/ent-soa/expected_result.narrow [moved from regression-tests/ent-soa/expected_result.narrow with 100% similarity]
regression-tests/tests/ent-soa/expected_result.nsec3 [moved from regression-tests/ent-soa/expected_result.nsec3 with 100% similarity]
regression-tests/tests/ent-soa/expected_result.nsec3-optout [moved from regression-tests/ent-soa/expected_result.nsec3-optout with 100% similarity]
regression-tests/tests/ent-soa/skip.noent [moved from regression-tests/ent-soa/skip.noent with 100% similarity]
regression-tests/tests/ent-wildcard-below-ent/command [moved from regression-tests/ent-wildcard-below-ent/command with 100% similarity]
regression-tests/tests/ent-wildcard-below-ent/description [moved from regression-tests/ent-wildcard-below-ent/description with 100% similarity]
regression-tests/tests/ent-wildcard-below-ent/expected_result [moved from regression-tests/ent-wildcard-below-ent/expected_result with 100% similarity]
regression-tests/tests/ent-wildcard-below-ent/expected_result.dnssec [moved from regression-tests/ent-wildcard-below-ent/expected_result.dnssec with 100% similarity]
regression-tests/tests/ent-wildcard-below-ent/expected_result.narrow [moved from regression-tests/ent-wildcard-below-ent/expected_result.narrow with 100% similarity]
regression-tests/tests/ent-wildcard-below-ent/expected_result.nsec3 [moved from regression-tests/ent-wildcard-below-ent/expected_result.nsec3 with 100% similarity]
regression-tests/tests/ent-wildcard-below-ent/skip.noent [moved from regression-tests/ent-wildcard-below-ent/skip.noent with 100% similarity]
regression-tests/tests/ent/command [moved from regression-tests/ent/command with 100% similarity]
regression-tests/tests/ent/description [moved from regression-tests/ent/description with 100% similarity]
regression-tests/tests/ent/expected_result [moved from regression-tests/ent/expected_result with 100% similarity]
regression-tests/tests/ent/expected_result.dnssec [moved from regression-tests/ent/expected_result.dnssec with 100% similarity]
regression-tests/tests/ent/expected_result.narrow [moved from regression-tests/ent/expected_result.narrow with 100% similarity]
regression-tests/tests/ent/expected_result.nsec3 [moved from regression-tests/ent/expected_result.nsec3 with 100% similarity]
regression-tests/tests/ent/expected_result.nsec3-optout [moved from regression-tests/ent/expected_result.nsec3-optout with 100% similarity]
regression-tests/tests/ent/skip.noent [moved from regression-tests/ent/skip.noent with 100% similarity]
regression-tests/tests/escaped-txt/command [moved from regression-tests/escaped-txt/command with 100% similarity]
regression-tests/tests/escaped-txt/description [moved from regression-tests/escaped-txt/description with 100% similarity]
regression-tests/tests/escaped-txt/expected_result [moved from regression-tests/escaped-txt/expected_result with 100% similarity]
regression-tests/tests/external-cname-pointer/command [moved from regression-tests/external-cname-pointer/command with 100% similarity]
regression-tests/tests/external-cname-pointer/description [moved from regression-tests/external-cname-pointer/description with 100% similarity]
regression-tests/tests/external-cname-pointer/expected_result [moved from regression-tests/external-cname-pointer/expected_result with 100% similarity]
regression-tests/tests/external-cname-pointer/skip-unboundhost [moved from regression-tests/external-cname-pointer/skip-unboundhost with 100% similarity]
regression-tests/tests/fancy-axfr/command [moved from regression-tests/fancy-axfr/command with 100% similarity]
regression-tests/tests/fancy-axfr/description [moved from regression-tests/fancy-axfr/description with 100% similarity]
regression-tests/tests/fancy-axfr/expected_result [moved from regression-tests/fancy-axfr/expected_result with 100% similarity]
regression-tests/tests/five-levels-wildcard-one-below-apex/command [moved from regression-tests/five-levels-wildcard-one-below-apex/command with 100% similarity]
regression-tests/tests/five-levels-wildcard-one-below-apex/description [moved from regression-tests/five-levels-wildcard-one-below-apex/description with 100% similarity]
regression-tests/tests/five-levels-wildcard-one-below-apex/expected_result [moved from regression-tests/five-levels-wildcard-one-below-apex/expected_result with 100% similarity]
regression-tests/tests/five-levels-wildcard-one-below-apex/expected_result.narrow [moved from regression-tests/five-levels-wildcard-one-below-apex/expected_result.narrow with 100% similarity]
regression-tests/tests/five-levels-wildcard-one-below-apex/expected_result.nsec3 [moved from regression-tests/five-levels-wildcard-one-below-apex/expected_result.nsec3 with 100% similarity]
regression-tests/tests/five-levels-wildcard-one-below-apex/skip.nodnssec [moved from regression-tests/five-levels-wildcard-one-below-apex/skip.nodnssec with 100% similarity]
regression-tests/tests/five-levels-wildcard/command [moved from regression-tests/five-levels-wildcard/command with 100% similarity]
regression-tests/tests/five-levels-wildcard/description [moved from regression-tests/five-levels-wildcard/description with 100% similarity]
regression-tests/tests/five-levels-wildcard/expected_result [moved from regression-tests/five-levels-wildcard/expected_result with 100% similarity]
regression-tests/tests/five-levels-wildcard/expected_result.narrow [moved from regression-tests/five-levels-wildcard/expected_result.narrow with 100% similarity]
regression-tests/tests/five-levels-wildcard/expected_result.nsec3 [moved from regression-tests/five-levels-wildcard/expected_result.nsec3 with 100% similarity]
regression-tests/tests/five-levels-wildcard/skip.nodnssec [moved from regression-tests/five-levels-wildcard/skip.nodnssec with 100% similarity]
regression-tests/tests/glue-record/command [moved from regression-tests/glue-record/command with 100% similarity]
regression-tests/tests/glue-record/description [moved from regression-tests/glue-record/description with 100% similarity]
regression-tests/tests/glue-record/expected_result [moved from regression-tests/glue-record/expected_result with 100% similarity]
regression-tests/tests/glue-record/skip-unboundhost [moved from regression-tests/glue-record/skip-unboundhost with 100% similarity]
regression-tests/tests/glue-referral/command [moved from regression-tests/glue-referral/command with 100% similarity]
regression-tests/tests/glue-referral/description [moved from regression-tests/glue-referral/description with 100% similarity]
regression-tests/tests/glue-referral/expected_result [moved from regression-tests/glue-referral/expected_result with 100% similarity]
regression-tests/tests/glue-referral/skip-unboundhost [moved from regression-tests/glue-referral/skip-unboundhost with 100% similarity]
regression-tests/tests/internal-referral/command [moved from regression-tests/internal-referral/command with 100% similarity]
regression-tests/tests/internal-referral/description [moved from regression-tests/internal-referral/description with 100% similarity]
regression-tests/tests/internal-referral/expected_result [moved from regression-tests/internal-referral/expected_result with 100% similarity]
regression-tests/tests/internal-referral/skip-unboundhost [moved from regression-tests/internal-referral/skip-unboundhost with 100% similarity]
regression-tests/tests/long-name/command [moved from regression-tests/long-name/command with 100% similarity]
regression-tests/tests/long-name/description [moved from regression-tests/long-name/description with 100% similarity]
regression-tests/tests/long-name/expected_result [moved from regression-tests/long-name/expected_result with 100% similarity]
regression-tests/tests/mboxfw-record/command [moved from regression-tests/mboxfw-record/command with 100% similarity]
regression-tests/tests/mboxfw-record/description [moved from regression-tests/mboxfw-record/description with 100% similarity]
regression-tests/tests/mboxfw-record/expected_result [moved from regression-tests/mboxfw-record/expected_result with 100% similarity]
regression-tests/tests/mboxfw-record/skip [moved from regression-tests/mboxfw-record/skip with 100% similarity]
regression-tests/tests/minimal-noerror/command [moved from regression-tests/minimal-noerror/command with 100% similarity]
regression-tests/tests/minimal-noerror/description [moved from regression-tests/minimal-noerror/description with 100% similarity]
regression-tests/tests/minimal-noerror/expected_result [moved from regression-tests/minimal-noerror/expected_result with 100% similarity]
regression-tests/tests/minimal-noerror/expected_result.narrow [moved from regression-tests/minimal-noerror/expected_result.narrow with 100% similarity]
regression-tests/tests/minimal-noerror/expected_result.nsec3 [moved from regression-tests/minimal-noerror/expected_result.nsec3 with 100% similarity]
regression-tests/tests/minimal-noerror/skip.nodnssec [moved from regression-tests/minimal-noerror/skip.nodnssec with 100% similarity]
regression-tests/tests/minimal-nxdomain/command [moved from regression-tests/minimal-nxdomain/command with 100% similarity]
regression-tests/tests/minimal-nxdomain/description [moved from regression-tests/minimal-nxdomain/description with 100% similarity]
regression-tests/tests/minimal-nxdomain/expected_result [moved from regression-tests/minimal-nxdomain/expected_result with 100% similarity]
regression-tests/tests/minimal-nxdomain/expected_result.narrow [moved from regression-tests/minimal-nxdomain/expected_result.narrow with 100% similarity]
regression-tests/tests/minimal-nxdomain/expected_result.nsec3 [moved from regression-tests/minimal-nxdomain/expected_result.nsec3 with 100% similarity]
regression-tests/tests/minimal-nxdomain/skip.nodnssec [moved from regression-tests/minimal-nxdomain/skip.nodnssec with 100% similarity]
regression-tests/tests/multi-step-cname-resolution/command [moved from regression-tests/multi-step-cname-resolution/command with 100% similarity]
regression-tests/tests/multi-step-cname-resolution/description [moved from regression-tests/multi-step-cname-resolution/description with 100% similarity]
regression-tests/tests/multi-step-cname-resolution/expected_result [moved from regression-tests/multi-step-cname-resolution/expected_result with 100% similarity]
regression-tests/tests/multi-txt-escape-resolution/command [moved from regression-tests/multi-txt-escape-resolution/command with 100% similarity]
regression-tests/tests/multi-txt-escape-resolution/description [moved from regression-tests/multi-txt-escape-resolution/description with 100% similarity]
regression-tests/tests/multi-txt-escape-resolution/expected_result [moved from regression-tests/multi-txt-escape-resolution/expected_result with 100% similarity]
regression-tests/tests/multi-txt-resolution/command [moved from regression-tests/multi-txt-resolution/command with 100% similarity]
regression-tests/tests/multi-txt-resolution/description [moved from regression-tests/multi-txt-resolution/description with 100% similarity]
regression-tests/tests/multi-txt-resolution/expected_result [moved from regression-tests/multi-txt-resolution/expected_result with 100% similarity]
regression-tests/tests/mx-case-sensitivy-with-ap/command [moved from regression-tests/mx-case-sensitivy-with-ap/command with 100% similarity]
regression-tests/tests/mx-case-sensitivy-with-ap/description [moved from regression-tests/mx-case-sensitivy-with-ap/description with 100% similarity]
regression-tests/tests/mx-case-sensitivy-with-ap/expected_result [moved from regression-tests/mx-case-sensitivy-with-ap/expected_result with 100% similarity]
regression-tests/tests/mx-to-cname/command [moved from regression-tests/mx-to-cname/command with 100% similarity]
regression-tests/tests/mx-to-cname/description [moved from regression-tests/mx-to-cname/description with 100% similarity]
regression-tests/tests/mx-to-cname/expected_result [moved from regression-tests/mx-to-cname/expected_result with 100% similarity]
regression-tests/tests/mx-with-simple-additional-processing/command [moved from regression-tests/mx-with-simple-additional-processing/command with 100% similarity]
regression-tests/tests/mx-with-simple-additional-processing/description [moved from regression-tests/mx-with-simple-additional-processing/description with 100% similarity]
regression-tests/tests/mx-with-simple-additional-processing/expected_result [moved from regression-tests/mx-with-simple-additional-processing/expected_result with 100% similarity]
regression-tests/tests/naptr/command [moved from regression-tests/naptr/command with 100% similarity]
regression-tests/tests/naptr/description [moved from regression-tests/naptr/description with 100% similarity]
regression-tests/tests/naptr/expected_result [moved from regression-tests/naptr/expected_result with 100% similarity]
regression-tests/tests/non-existing-record-other-types-exist-ns/command [moved from regression-tests/non-existing-record-other-types-exist-ns/command with 100% similarity]
regression-tests/tests/non-existing-record-other-types-exist-ns/description [moved from regression-tests/non-existing-record-other-types-exist-ns/description with 100% similarity]
regression-tests/tests/non-existing-record-other-types-exist-ns/expected_result [moved from regression-tests/non-existing-record-other-types-exist-ns/expected_result with 100% similarity]
regression-tests/tests/non-existing-record-other-types-exist/command [moved from regression-tests/non-existing-record-other-types-exist/command with 100% similarity]
regression-tests/tests/non-existing-record-other-types-exist/description [moved from regression-tests/non-existing-record-other-types-exist/description with 100% similarity]
regression-tests/tests/non-existing-record-other-types-exist/expected_result [moved from regression-tests/non-existing-record-other-types-exist/expected_result with 100% similarity]
regression-tests/tests/ns-at-delegation/command [moved from regression-tests/ns-at-delegation/command with 100% similarity]
regression-tests/tests/ns-at-delegation/description [moved from regression-tests/ns-at-delegation/description with 100% similarity]
regression-tests/tests/ns-at-delegation/expected_result [moved from regression-tests/ns-at-delegation/expected_result with 100% similarity]
regression-tests/tests/ns-at-delegation/skip-unboundhost [moved from regression-tests/ns-at-delegation/skip-unboundhost with 100% similarity]
regression-tests/tests/ns-with-identical-glue/command [moved from regression-tests/ns-with-identical-glue/command with 100% similarity]
regression-tests/tests/ns-with-identical-glue/description [moved from regression-tests/ns-with-identical-glue/description with 100% similarity]
regression-tests/tests/ns-with-identical-glue/expected_result [moved from regression-tests/ns-with-identical-glue/expected_result with 100% similarity]
regression-tests/tests/ns-with-identical-glue/skip-unboundhost [moved from regression-tests/ns-with-identical-glue/skip-unboundhost with 100% similarity]
regression-tests/tests/nsec-bitmap/command [moved from regression-tests/nsec-bitmap/command with 100% similarity]
regression-tests/tests/nsec-bitmap/description [moved from regression-tests/nsec-bitmap/description with 100% similarity]
regression-tests/tests/nsec-bitmap/expected_result [moved from regression-tests/nsec-bitmap/expected_result with 100% similarity]
regression-tests/tests/nsec-bitmap/expected_result.narrow [moved from regression-tests/nsec-bitmap/expected_result.narrow with 100% similarity]
regression-tests/tests/nsec-bitmap/expected_result.nsec3 [moved from regression-tests/nsec-bitmap/expected_result.nsec3 with 100% similarity]
regression-tests/tests/nsec-bitmap/skip.nodnssec [moved from regression-tests/nsec-bitmap/skip.nodnssec with 100% similarity]
regression-tests/tests/nsec-glue-at-delegation/command [moved from regression-tests/nsec-glue-at-delegation/command with 100% similarity]
regression-tests/tests/nsec-glue-at-delegation/description [moved from regression-tests/nsec-glue-at-delegation/description with 100% similarity]
regression-tests/tests/nsec-glue-at-delegation/expected_result [moved from regression-tests/nsec-glue-at-delegation/expected_result with 100% similarity]
regression-tests/tests/nsec-glue-at-delegation/expected_result.narrow [moved from regression-tests/nsec-glue-at-delegation/expected_result.narrow with 100% similarity]
regression-tests/tests/nsec-glue-at-delegation/expected_result.nsec3 [moved from regression-tests/nsec-glue-at-delegation/expected_result.nsec3 with 100% similarity]
regression-tests/tests/nsec-glue-at-delegation/expected_result.nsec3-optout [moved from regression-tests/nsec-glue-at-delegation/expected_result.nsec3-optout with 100% similarity]
regression-tests/tests/nsec-glue-at-delegation/skip.nodnssec [moved from regression-tests/nsec-glue-at-delegation/skip.nodnssec with 100% similarity]
regression-tests/tests/nsec-glue-at-delegation/skip.oracle-nsec [moved from regression-tests/nsec-glue-at-delegation/skip.oracle-nsec with 100% similarity]
regression-tests/tests/nsec-glue-at-delegation/skip.oracle-nsec3 [moved from regression-tests/nsec-glue-at-delegation/skip.oracle-nsec3 with 100% similarity]
regression-tests/tests/nsec-glue/command [moved from regression-tests/nsec-glue/command with 100% similarity]
regression-tests/tests/nsec-glue/description [moved from regression-tests/nsec-glue/description with 100% similarity]
regression-tests/tests/nsec-glue/expected_result [moved from regression-tests/nsec-glue/expected_result with 100% similarity]
regression-tests/tests/nsec-glue/expected_result.narrow [moved from regression-tests/nsec-glue/expected_result.narrow with 100% similarity]
regression-tests/tests/nsec-glue/expected_result.nsec3 [moved from regression-tests/nsec-glue/expected_result.nsec3 with 100% similarity]
regression-tests/tests/nsec-glue/skip.nodnssec [moved from regression-tests/nsec-glue/skip.nodnssec with 100% similarity]
regression-tests/tests/nsec-glue/skip.oracle-nsec [moved from regression-tests/nsec-glue/skip.oracle-nsec with 100% similarity]
regression-tests/tests/nsec-middle/command [moved from regression-tests/nsec-middle/command with 100% similarity]
regression-tests/tests/nsec-middle/description [moved from regression-tests/nsec-middle/description with 100% similarity]
regression-tests/tests/nsec-middle/expected_result [moved from regression-tests/nsec-middle/expected_result with 100% similarity]
regression-tests/tests/nsec-middle/expected_result.narrow [moved from regression-tests/nsec-middle/expected_result.narrow with 100% similarity]
regression-tests/tests/nsec-middle/expected_result.nsec3 [moved from regression-tests/nsec-middle/expected_result.nsec3 with 100% similarity]
regression-tests/tests/nsec-middle/skip.nodnssec [moved from regression-tests/nsec-middle/skip.nodnssec with 100% similarity]
regression-tests/tests/nsec-wildcard/command [moved from regression-tests/nsec-wildcard/command with 100% similarity]
regression-tests/tests/nsec-wildcard/description [moved from regression-tests/nsec-wildcard/description with 100% similarity]
regression-tests/tests/nsec-wildcard/expected_result [moved from regression-tests/nsec-wildcard/expected_result with 100% similarity]
regression-tests/tests/nsec-wildcard/expected_result.narrow [moved from regression-tests/nsec-wildcard/expected_result.narrow with 100% similarity]
regression-tests/tests/nsec-wildcard/expected_result.nsec3 [moved from regression-tests/nsec-wildcard/expected_result.nsec3 with 100% similarity]
regression-tests/tests/nsec-wildcard/skip.nodnssec [moved from regression-tests/nsec-wildcard/skip.nodnssec with 100% similarity]
regression-tests/tests/nsec-wraparound/command [moved from regression-tests/nsec-wraparound/command with 100% similarity]
regression-tests/tests/nsec-wraparound/description [moved from regression-tests/nsec-wraparound/description with 100% similarity]
regression-tests/tests/nsec-wraparound/expected_result [moved from regression-tests/nsec-wraparound/expected_result with 100% similarity]
regression-tests/tests/nsec-wraparound/expected_result.nsec3 [moved from regression-tests/nsec-wraparound/expected_result.nsec3 with 100% similarity]
regression-tests/tests/nsec-wraparound/skip.narrow [moved from regression-tests/nsec-wraparound/skip.narrow with 100% similarity]
regression-tests/tests/nsec-wraparound/skip.nodnssec [moved from regression-tests/nsec-wraparound/skip.nodnssec with 100% similarity]
regression-tests/tests/nsec-wraparound/skip.nsec3 [moved from regression-tests/nsec-wraparound/skip.nsec3 with 100% similarity]
regression-tests/tests/nsec-wrong-type-at-apex/command [moved from regression-tests/nsec-wrong-type-at-apex/command with 100% similarity]
regression-tests/tests/nsec-wrong-type-at-apex/description [moved from regression-tests/nsec-wrong-type-at-apex/description with 100% similarity]
regression-tests/tests/nsec-wrong-type-at-apex/expected_result [moved from regression-tests/nsec-wrong-type-at-apex/expected_result with 100% similarity]
regression-tests/tests/nsec-wrong-type-at-apex/expected_result.narrow [moved from regression-tests/nsec-wrong-type-at-apex/expected_result.narrow with 100% similarity]
regression-tests/tests/nsec-wrong-type-at-apex/expected_result.nsec3 [moved from regression-tests/nsec-wrong-type-at-apex/expected_result.nsec3 with 100% similarity]
regression-tests/tests/nsec-wrong-type-at-apex/skip.nodnssec [moved from regression-tests/nsec-wrong-type-at-apex/skip.nodnssec with 100% similarity]
regression-tests/tests/nsec-wrong-type/command [moved from regression-tests/nsec-wrong-type/command with 100% similarity]
regression-tests/tests/nsec-wrong-type/description [moved from regression-tests/nsec-wrong-type/description with 100% similarity]
regression-tests/tests/nsec-wrong-type/expected_result [moved from regression-tests/nsec-wrong-type/expected_result with 100% similarity]
regression-tests/tests/nsec-wrong-type/expected_result.narrow [moved from regression-tests/nsec-wrong-type/expected_result.narrow with 100% similarity]
regression-tests/tests/nsec-wrong-type/expected_result.nsec3 [moved from regression-tests/nsec-wrong-type/expected_result.nsec3 with 100% similarity]
regression-tests/tests/nsec-wrong-type/skip.nodnssec [moved from regression-tests/nsec-wrong-type/skip.nodnssec with 100% similarity]
regression-tests/tests/nsecx-mode2-wildcard-nodata/command [moved from regression-tests/nsecx-mode2-wildcard-nodata/command with 100% similarity]
regression-tests/tests/nsecx-mode2-wildcard-nodata/description [moved from regression-tests/nsecx-mode2-wildcard-nodata/description with 100% similarity]
regression-tests/tests/nsecx-mode2-wildcard-nodata/expected_result [moved from regression-tests/nsecx-mode2-wildcard-nodata/expected_result with 100% similarity]
regression-tests/tests/nsecx-mode2-wildcard-nodata/expected_result.narrow [moved from regression-tests/nsecx-mode2-wildcard-nodata/expected_result.narrow with 100% similarity]
regression-tests/tests/nsecx-mode2-wildcard-nodata/expected_result.nsec3 [moved from regression-tests/nsecx-mode2-wildcard-nodata/expected_result.nsec3 with 100% similarity]
regression-tests/tests/nsecx-mode2-wildcard-nodata/skip.nodnssec [moved from regression-tests/nsecx-mode2-wildcard-nodata/skip.nodnssec with 100% similarity]
regression-tests/tests/nsecx-mode3-wildcard/command [moved from regression-tests/nsecx-mode3-wildcard/command with 100% similarity]
regression-tests/tests/nsecx-mode3-wildcard/description [moved from regression-tests/nsecx-mode3-wildcard/description with 100% similarity]
regression-tests/tests/nsecx-mode3-wildcard/expected_result [moved from regression-tests/nsecx-mode3-wildcard/expected_result with 100% similarity]
regression-tests/tests/nsecx-mode3-wildcard/expected_result.narrow [moved from regression-tests/nsecx-mode3-wildcard/expected_result.narrow with 100% similarity]
regression-tests/tests/nsecx-mode3-wildcard/expected_result.nsec3 [moved from regression-tests/nsecx-mode3-wildcard/expected_result.nsec3 with 100% similarity]
regression-tests/tests/nsecx-mode3-wildcard/skip.nodnssec [moved from regression-tests/nsecx-mode3-wildcard/skip.nodnssec with 100% similarity]
regression-tests/tests/nxdomain-below-nonempty-terminal/command [moved from regression-tests/nxdomain-below-nonempty-terminal/command with 100% similarity]
regression-tests/tests/nxdomain-below-nonempty-terminal/description [moved from regression-tests/nxdomain-below-nonempty-terminal/description with 100% similarity]
regression-tests/tests/nxdomain-below-nonempty-terminal/expected_result [moved from regression-tests/nxdomain-below-nonempty-terminal/expected_result with 100% similarity]
regression-tests/tests/nxdomain-below-nonempty-terminal/expected_result.narrow [moved from regression-tests/nxdomain-below-nonempty-terminal/expected_result.narrow with 100% similarity]
regression-tests/tests/nxdomain-below-nonempty-terminal/expected_result.nsec3 [moved from regression-tests/nxdomain-below-nonempty-terminal/expected_result.nsec3 with 100% similarity]
regression-tests/tests/nxdomain-below-nonempty-terminal/skip.nodnssec [moved from regression-tests/nxdomain-below-nonempty-terminal/skip.nodnssec with 100% similarity]
regression-tests/tests/nxdomain-for-unknown-record/command [moved from regression-tests/nxdomain-for-unknown-record/command with 100% similarity]
regression-tests/tests/nxdomain-for-unknown-record/description [moved from regression-tests/nxdomain-for-unknown-record/description with 100% similarity]
regression-tests/tests/nxdomain-for-unknown-record/expected_result [moved from regression-tests/nxdomain-for-unknown-record/expected_result with 100% similarity]
regression-tests/tests/obscured-wildcard/command [moved from regression-tests/obscured-wildcard/command with 100% similarity]
regression-tests/tests/obscured-wildcard/description [moved from regression-tests/obscured-wildcard/description with 100% similarity]
regression-tests/tests/obscured-wildcard/expected_result [moved from regression-tests/obscured-wildcard/expected_result with 100% similarity]
regression-tests/tests/one-step-cname-resolution/command [moved from regression-tests/one-step-cname-resolution/command with 100% similarity]
regression-tests/tests/one-step-cname-resolution/description [moved from regression-tests/one-step-cname-resolution/description with 100% similarity]
regression-tests/tests/one-step-cname-resolution/expected_result [moved from regression-tests/one-step-cname-resolution/expected_result with 100% similarity]
regression-tests/tests/out-of-bailiwick-referral/command [moved from regression-tests/out-of-bailiwick-referral/command with 100% similarity]
regression-tests/tests/out-of-bailiwick-referral/description [moved from regression-tests/out-of-bailiwick-referral/description with 100% similarity]
regression-tests/tests/out-of-bailiwick-referral/expected_result [moved from regression-tests/out-of-bailiwick-referral/expected_result with 100% similarity]
regression-tests/tests/out-of-bailiwick-referral/skip-unboundhost [moved from regression-tests/out-of-bailiwick-referral/skip-unboundhost with 100% similarity]
regression-tests/tests/pretty-big-packet/command [moved from regression-tests/pretty-big-packet/command with 100% similarity]
regression-tests/tests/pretty-big-packet/description [moved from regression-tests/pretty-big-packet/description with 100% similarity]
regression-tests/tests/pretty-big-packet/expected_result [moved from regression-tests/pretty-big-packet/expected_result with 100% similarity]
regression-tests/tests/root-srv/command [moved from regression-tests/root-srv/command with 100% similarity]
regression-tests/tests/root-srv/description [moved from regression-tests/root-srv/description with 100% similarity]
regression-tests/tests/root-srv/expected_result [moved from regression-tests/root-srv/expected_result with 100% similarity]
regression-tests/tests/rp/command [moved from regression-tests/rp/command with 100% similarity]
regression-tests/tests/rp/description [moved from regression-tests/rp/description with 100% similarity]
regression-tests/tests/rp/expected_result [moved from regression-tests/rp/expected_result with 100% similarity]
regression-tests/tests/same-level-referral-soa/command [moved from regression-tests/same-level-referral-soa/command with 100% similarity]
regression-tests/tests/same-level-referral-soa/description [moved from regression-tests/same-level-referral-soa/description with 100% similarity]
regression-tests/tests/same-level-referral-soa/expected_result [moved from regression-tests/same-level-referral-soa/expected_result with 100% similarity]
regression-tests/tests/same-level-referral-soa/skip-unboundhost [moved from regression-tests/same-level-referral-soa/skip-unboundhost with 100% similarity]
regression-tests/tests/same-level-referral/command [moved from regression-tests/same-level-referral/command with 100% similarity]
regression-tests/tests/same-level-referral/description [moved from regression-tests/same-level-referral/description with 100% similarity]
regression-tests/tests/same-level-referral/expected_result [moved from regression-tests/same-level-referral/expected_result with 100% similarity]
regression-tests/tests/same-level-referral/skip-unboundhost [moved from regression-tests/same-level-referral/skip-unboundhost with 100% similarity]
regression-tests/tests/second-level-nxdomain/command [moved from regression-tests/second-level-nxdomain/command with 100% similarity]
regression-tests/tests/second-level-nxdomain/description [moved from regression-tests/second-level-nxdomain/description with 100% similarity]
regression-tests/tests/second-level-nxdomain/expected_result [moved from regression-tests/second-level-nxdomain/expected_result with 100% similarity]
regression-tests/tests/second-level-nxdomain/expected_result.narrow [moved from regression-tests/second-level-nxdomain/expected_result.narrow with 100% similarity]
regression-tests/tests/second-level-nxdomain/expected_result.nsec3 [moved from regression-tests/second-level-nxdomain/expected_result.nsec3 with 100% similarity]
regression-tests/tests/second-level-nxdomain/skip.nodnssec [moved from regression-tests/second-level-nxdomain/skip.nodnssec with 100% similarity]
regression-tests/tests/secure-delegation-ds-ns/command [moved from regression-tests/secure-delegation-ds-ns/command with 100% similarity]
regression-tests/tests/secure-delegation-ds-ns/description [moved from regression-tests/secure-delegation-ds-ns/description with 100% similarity]
regression-tests/tests/secure-delegation-ds-ns/expected_result [moved from regression-tests/secure-delegation-ds-ns/expected_result with 100% similarity]
regression-tests/tests/secure-delegation-ds-ns/expected_result.dnssec [moved from regression-tests/secure-delegation-ds-ns/expected_result.dnssec with 100% similarity]
regression-tests/tests/secure-delegation-ds-ns/skip.oracle-nsec [moved from regression-tests/secure-delegation-ds-ns/skip.oracle-nsec with 100% similarity]
regression-tests/tests/secure-delegation-ds-ns/skip.oracle-nsec3 [moved from regression-tests/secure-delegation-ds-ns/skip.oracle-nsec3 with 100% similarity]
regression-tests/tests/secure-delegation/command [moved from regression-tests/secure-delegation/command with 100% similarity]
regression-tests/tests/secure-delegation/description [moved from regression-tests/secure-delegation/description with 100% similarity]
regression-tests/tests/secure-delegation/expected_result [moved from regression-tests/secure-delegation/expected_result with 100% similarity]
regression-tests/tests/secure-delegation/expected_result.dnssec [moved from regression-tests/secure-delegation/expected_result.dnssec with 100% similarity]
regression-tests/tests/secure-delegation/skip-drill [moved from regression-tests/secure-delegation/skip-drill with 100% similarity]
regression-tests/tests/space-name/command [moved from regression-tests/space-name/command with 100% similarity]
regression-tests/tests/space-name/description [moved from regression-tests/space-name/description with 100% similarity]
regression-tests/tests/space-name/expected_result [moved from regression-tests/space-name/expected_result with 100% similarity]
regression-tests/tests/space-name/expected_result.narrow [moved from regression-tests/space-name/expected_result.narrow with 100% similarity]
regression-tests/tests/space-name/expected_result.nsec3 [moved from regression-tests/space-name/expected_result.nsec3 with 100% similarity]
regression-tests/tests/space-name/skip.nodnssec [moved from regression-tests/space-name/skip.nodnssec with 100% similarity]
regression-tests/tests/too-big-for-udp-query-no-truncate-additional/command [moved from regression-tests/too-big-for-udp-query-no-truncate-additional/command with 100% similarity]
regression-tests/tests/too-big-for-udp-query-no-truncate-additional/description [moved from regression-tests/too-big-for-udp-query-no-truncate-additional/description with 100% similarity]
regression-tests/tests/too-big-for-udp-query-no-truncate-additional/expected_result [moved from regression-tests/too-big-for-udp-query-no-truncate-additional/expected_result with 100% similarity]
regression-tests/tests/too-big-for-udp-query/command [moved from regression-tests/too-big-for-udp-query/command with 100% similarity]
regression-tests/tests/too-big-for-udp-query/description [moved from regression-tests/too-big-for-udp-query/description with 100% similarity]
regression-tests/tests/too-big-for-udp-query/expected_result [moved from regression-tests/too-big-for-udp-query/expected_result with 100% similarity]
regression-tests/tests/tsig-axfr/command [moved from regression-tests/tsig-axfr/command with 100% similarity]
regression-tests/tests/tsig-axfr/description [moved from regression-tests/tsig-axfr/description with 100% similarity]
regression-tests/tests/tsig-axfr/expected_result [moved from regression-tests/tsig-axfr/expected_result with 100% similarity]
regression-tests/tests/tsig-axfr/skip.narrow [moved from regression-tests/tsig-axfr/skip.narrow with 100% similarity]
regression-tests/tests/tsig-axfr/skip.nodnssec [moved from regression-tests/tsig-axfr/skip.nodnssec with 100% similarity]
regression-tests/tests/tsig-axfr/skip.presigned [moved from regression-tests/tsig-axfr/skip.presigned with 100% similarity]
regression-tests/tests/two-level-nxdomain/command [moved from regression-tests/two-level-nxdomain/command with 100% similarity]
regression-tests/tests/two-level-nxdomain/description [moved from regression-tests/two-level-nxdomain/description with 100% similarity]
regression-tests/tests/two-level-nxdomain/expected_result [moved from regression-tests/two-level-nxdomain/expected_result with 100% similarity]
regression-tests/tests/two-level-nxdomain/expected_result.narrow [moved from regression-tests/two-level-nxdomain/expected_result.narrow with 100% similarity]
regression-tests/tests/two-level-nxdomain/expected_result.nsec3 [moved from regression-tests/two-level-nxdomain/expected_result.nsec3 with 100% similarity]
regression-tests/tests/two-level-nxdomain/skip.nodnssec [moved from regression-tests/two-level-nxdomain/skip.nodnssec with 100% similarity]
regression-tests/tests/underscore-sorting/command [moved from regression-tests/underscore-sorting/command with 100% similarity]
regression-tests/tests/underscore-sorting/description [moved from regression-tests/underscore-sorting/description with 100% similarity]
regression-tests/tests/underscore-sorting/expected_result [moved from regression-tests/underscore-sorting/expected_result with 100% similarity]
regression-tests/tests/underscore-sorting/expected_result.narrow [moved from regression-tests/underscore-sorting/expected_result.narrow with 100% similarity]
regression-tests/tests/underscore-sorting/expected_result.nsec3 [moved from regression-tests/underscore-sorting/expected_result.nsec3 with 100% similarity]
regression-tests/tests/underscore-sorting/skip.nodnssec [moved from regression-tests/underscore-sorting/skip.nodnssec with 100% similarity]
regression-tests/tests/unknown-domain/command [moved from regression-tests/unknown-domain/command with 100% similarity]
regression-tests/tests/unknown-domain/description [moved from regression-tests/unknown-domain/description with 100% similarity]
regression-tests/tests/unknown-domain/expected_result [moved from regression-tests/unknown-domain/expected_result with 100% similarity]
regression-tests/tests/uppercase-nsec/command [moved from regression-tests/uppercase-nsec/command with 100% similarity]
regression-tests/tests/uppercase-nsec/description [moved from regression-tests/uppercase-nsec/description with 100% similarity]
regression-tests/tests/uppercase-nsec/expected_result [moved from regression-tests/uppercase-nsec/expected_result with 100% similarity]
regression-tests/tests/uppercase-nsec/expected_result.narrow [moved from regression-tests/uppercase-nsec/expected_result.narrow with 100% similarity]
regression-tests/tests/uppercase-nsec/expected_result.nsec3 [moved from regression-tests/uppercase-nsec/expected_result.nsec3 with 100% similarity]
regression-tests/tests/uppercase-nsec/skip.nodnssec [moved from regression-tests/uppercase-nsec/skip.nodnssec with 100% similarity]
regression-tests/tests/url-record/command [moved from regression-tests/url-record/command with 100% similarity]
regression-tests/tests/url-record/description [moved from regression-tests/url-record/description with 100% similarity]
regression-tests/tests/url-record/expected_result [moved from regression-tests/url-record/expected_result with 100% similarity]
regression-tests/tests/url-record/skip [moved from regression-tests/url-record/skip with 100% similarity]
regression-tests/tests/verify-dnssec-zone/command [moved from regression-tests/verify-dnssec-zone/command with 89% similarity]
regression-tests/tests/verify-dnssec-zone/description [moved from regression-tests/verify-dnssec-zone/description with 100% similarity]
regression-tests/tests/verify-dnssec-zone/expected_result [moved from regression-tests/verify-dnssec-zone/expected_result with 100% similarity]
regression-tests/tests/verify-dnssec-zone/skip.narrow [moved from regression-tests/verify-dnssec-zone/skip.narrow with 100% similarity]
regression-tests/tests/verify-dnssec-zone/skip.nodnssec [moved from regression-tests/verify-dnssec-zone/skip.nodnssec with 100% similarity]
regression-tests/tests/verify-dnssec-zone/skip.oracle-nsec [moved from regression-tests/verify-dnssec-zone/skip.oracle-nsec with 100% similarity]
regression-tests/tests/verify-dnssec-zone/skip.oracle-nsec3 [moved from regression-tests/verify-dnssec-zone/skip.oracle-nsec3 with 100% similarity]
regression-tests/tests/very-long-txt/command [moved from regression-tests/very-long-txt/command with 100% similarity]
regression-tests/tests/very-long-txt/description [moved from regression-tests/very-long-txt/description with 100% similarity]
regression-tests/tests/very-long-txt/expected_result [moved from regression-tests/very-long-txt/expected_result with 100% similarity]
regression-tests/tests/very-long-txt/skip.bind [moved from regression-tests/very-long-txt/skip.bind with 100% similarity]
regression-tests/tests/very-long-txt/skip.mydns [moved from regression-tests/very-long-txt/skip.mydns with 100% similarity]
regression-tests/tests/very-long-txt/skip.nsd [moved from regression-tests/very-long-txt/skip.nsd with 100% similarity]
regression-tests/tests/wildcard-overlaps-delegation/command [moved from regression-tests/wildcard-overlaps-delegation/command with 100% similarity]
regression-tests/tests/wildcard-overlaps-delegation/description [moved from regression-tests/wildcard-overlaps-delegation/description with 100% similarity]
regression-tests/tests/wildcard-overlaps-delegation/expected_result [moved from regression-tests/wildcard-overlaps-delegation/expected_result with 100% similarity]
regression-tests/tests/wildcard-overlaps-delegation/skip-unboundhost [moved from regression-tests/wildcard-overlaps-delegation/skip-unboundhost with 100% similarity]
regression-tests/tests/wrong-type-wildcard/command [moved from regression-tests/wrong-type-wildcard/command with 100% similarity]
regression-tests/tests/wrong-type-wildcard/description [moved from regression-tests/wrong-type-wildcard/description with 100% similarity]
regression-tests/tests/wrong-type-wildcard/expected_result [moved from regression-tests/wrong-type-wildcard/expected_result with 100% similarity]
regression-tests/zones/.gitignore [new file with mode: 0644]
regression-tests/zones/addzone.com [moved from regression-tests/addzone.com with 100% similarity]
regression-tests/zones/delegated.dnssec-parent.com [moved from regression-tests/delegated.dnssec-parent.com with 100% similarity]
regression-tests/zones/dnssec-parent.com [moved from regression-tests/dnssec-parent.com with 100% similarity]
regression-tests/zones/example.com [moved from regression-tests/example.com with 100% similarity]
regression-tests/zones/minimal.com [moved from regression-tests/minimal.com with 100% similarity]
regression-tests/zones/nztest.com [moved from regression-tests/nztest.com with 100% similarity]
regression-tests/zones/powerdnssec.org [moved from regression-tests/powerdnssec.org with 100% similarity]
regression-tests/zones/secure-delegated.dnssec-parent.com [moved from regression-tests/secure-delegated.dnssec-parent.com with 100% similarity]
regression-tests/zones/stest.com [moved from regression-tests/stest.com with 100% similarity]
regression-tests/zones/test.com [moved from regression-tests/test.com with 100% similarity]
regression-tests/zones/test.dyndns.orig [moved from regression-tests/test.dyndns.orig with 100% similarity]
regression-tests/zones/tsig.com [moved from regression-tests/tsig.com with 100% similarity]
regression-tests/zones/wtest.com [moved from regression-tests/wtest.com with 100% similarity]

index 29510d165ac0950db392935714047135e7b986d7..fbee9c9f24cf98eed8c41447485deefd2d2a8451 100644 (file)
@@ -41,7 +41,7 @@ script:
  - sleep 3
  - ./clean.sh
  - cd ../regression-tests
- - touch verify-dnssec-zone/allow-missing
+ - touch tests/verify-dnssec-zone/allow-missing
  - ./start-test-stop 5300 bind-both
  - ./start-test-stop 5300 bind-dnssec-both
  - ./start-test-stop 5300 bind-dnssec-nsec3-both
index 4a67ba206bc0b04683d826ba90a9a2386840b6ae..e547071fa89c9f62d500ca11474fbb12479f94f2 100755 (executable)
@@ -18,11 +18,11 @@ fi
 
 
 # Copy original zones because the test might modify them (well only the dyndns stuff, but let's make this work for others as well)
-for zone in $(grep zone ../../regression-tests/named.conf | cut -f2 -d\")
+for zone in $(grep 'zone ' ../../regression-tests/named.conf | cut -f2 -d\")
 do
-       if [ -f ../../regression-tests/$zone.orig ]
+       if [ -f ../../regression-tests/zones/$zone.orig ]
        then
-               cp -f ../../regression-tests/$zone.orig ../../regression-tests/$zone
+               cp -f ../../regression-tests/zones/$zone.orig ../../regression-tests/zones/$zone
        fi
 done
 
@@ -42,7 +42,7 @@ sleep 5
 cd $startdir
 [ -e data ] && rm data
 
-for zone in $(grep zone ../../regression-tests/named.conf | cut -f2 -d\")
+for zone in $(grep 'zone ' ../../regression-tests/named.conf | cut -f2 -d\")
 do
        $tcpclient 127.0.0.1 5300 $axfrget $zone $zone.out $zone.out.tmp
        cat $zone.out >> data
index 26dc6adfd28e2a6e26e15bde54818b9cb77ef3ba..e94fe49cf82129d2ffd60dfba90586d1b517da22 100644 (file)
@@ -1,5 +1,5 @@
 options {
-       directory "../regression-tests/";
+       directory "../regression-tests/zones/";
        recursion no;
        listen-on port 5300 {
                127.0.0.1;
index 5f8b0954569595af18085bc1a07672f6c54a3586..4a8c746fe07429d1d398132180c57d7b84fc4b0e 100755 (executable)
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 
-for zone in `cat ../regression-tests/named.conf | grep zone | cut -f 2 -d \"`
+for zone in `cat ../regression-tests/named.conf | grep 'zone ' | cut -f 2 -d \"`
 do
-       md5sum ../regression-tests/$zone
+       md5sum ../regression-tests/zones/$zone
 done
 md5sum ../modules/tinydnsbackend/data.cdb
index ae1ccf6bf2e7b6acb628d959da3b992308a4251e..311bd03c5e80eebd6538f3abc6b9df7e0842099c 100644 (file)
@@ -1,12 +1,12 @@
-4bc48a8d9b8d04b553be67639e5656e8  ../regression-tests/example.com
-4e9eed426f0cd123c08dffb9e715824a  ../regression-tests/test.com
-005b3381db2a7dc70b690484f6ab7770  ../regression-tests/test.dyndns
-21213b4e8cd56e4184696a1bafd987d7  ../regression-tests/wtest.com
-42b442de632686e94bde75acf66cf524  ../regression-tests/nztest.com
-6e4ac6e3a6cd717df107a7bc2e466ac7  ../regression-tests/dnssec-parent.com
-6510bf48aa3ca3501b73a1f510852a34  ../regression-tests/delegated.dnssec-parent.com
-a63dc120391d9df0003f2ec4f461a6af  ../regression-tests/secure-delegated.dnssec-parent.com
-24514dc104b22206daeb973ff9303545  ../regression-tests/minimal.com
-0b20d7a0250576451135483b863750bf  ../regression-tests/tsig.com
-b1f775045fa2cf0a3b91aa834af06e49  ../regression-tests/stest.com
+4bc48a8d9b8d04b553be67639e5656e8  ../regression-tests/zones/example.com
+4e9eed426f0cd123c08dffb9e715824a  ../regression-tests/zones/test.com
+005b3381db2a7dc70b690484f6ab7770  ../regression-tests/zones/test.dyndns
+21213b4e8cd56e4184696a1bafd987d7  ../regression-tests/zones/wtest.com
+42b442de632686e94bde75acf66cf524  ../regression-tests/zones/nztest.com
+6e4ac6e3a6cd717df107a7bc2e466ac7  ../regression-tests/zones/dnssec-parent.com
+6510bf48aa3ca3501b73a1f510852a34  ../regression-tests/zones/delegated.dnssec-parent.com
+a63dc120391d9df0003f2ec4f461a6af  ../regression-tests/zones/secure-delegated.dnssec-parent.com
+24514dc104b22206daeb973ff9303545  ../regression-tests/zones/minimal.com
+0b20d7a0250576451135483b863750bf  ../regression-tests/zones/tsig.com
+b1f775045fa2cf0a3b91aa834af06e49  ../regression-tests/zones/stest.com
 80927ffb754402270483d06c0ebeaaad  ../modules/tinydnsbackend/data.cdb
index 892e1b69f07b2b4abc2ddf05fa3fe92148d1b0cb..b354825e92823b2f6fd53ce5801db59b831e3998 100644 (file)
@@ -1,6 +1,3 @@
-diff
-real_result
-*.out
 /*.xml
 /*.tar
 /K*
@@ -16,12 +13,7 @@ real_result
 /*.controlsocket
 /pdns-*.conf
 /*.sqlite3*
-/*.com-slave
-/*.dyndns-slave
 /named-slave.conf
-*/start
-*/step.*
-/test.dyndns
 /bulktest.results
 /recursor-bulktest/
 /recursor.log
@@ -30,11 +22,6 @@ real_result
 /report.json
 /nsd.*
 /nsd-slave.*
-/*.nsd
-/ixfr*.db
-/ixfr*.state
-/*.signed
-/*.bind
 /dsset-*
 /bind.conf
 /bind-slave.conf
diff --git a/regression-tests/backends/bind-master b/regression-tests/backends/bind-master
new file mode 100644 (file)
index 0000000..9081fc3
--- /dev/null
@@ -0,0 +1,61 @@
+case $context in
+       bind)
+               $RUNWRAPPER $PDNS --daemon=no --local-port=$port --socket-dir=./ \
+                       --no-shuffle --launch=bind --bind-config=./named.conf \
+                       --send-root-referral \
+                       --allow-2136-from=127.0.0.0/8 --experimental-rfc2136=yes \
+                       --cache-ttl=$cachettl --no-config \
+                       --bind-ignore-broken-records=yes &
+               skipreasons="nodnssec nodyndns"
+               bindwait
+               ;;
+
+       bind-dnssec | bind-dnssec-nsec3 | bind-dnssec-nsec3-optout | bind-dnssec-nsec3-narrow)
+               rm -f dnssec.sqlite3
+               ../pdns/pdnssec --config-dir=. create-bind-db dnssec.sqlite3
+
+               for zone in $(grep 'zone ' named.conf  | cut -f2 -d\")
+               do
+                       securezone $zone
+                       if [ $context = bind-dnssec-nsec3 ] || [ $context = bind-dnssec-nsec3-optout ]
+                       then
+                               ../pdns/pdnssec --config-dir=. set-nsec3 $zone "1 $optout 1 abcd" 2>&1
+                       elif [ $context = bind-dnssec-nsec3-narrow ]
+                       then
+                               ../pdns/pdnssec --config-dir=. set-nsec3 $zone '1 1 1 abcd' narrow 2>&1
+                       fi
+               done
+
+               if [ $context = bind-dnssec-nsec3 ]
+               then
+                       extracontexts="bind dnssec nsec3"
+                       skipreasons="nsec3 nodyndns"
+               elif [ $context = bind-dnssec-nsec3-optout ]
+               then
+                       extracontexts="bind dnssec nsec3 nsec3-optout"
+                       skipreasons="optout nodyndns"
+               elif [ $context = bind-dnssec-nsec3-narrow ]
+               then
+                       extracontexts="bind dnssec narrow"
+                       skipreasons="narrow nodyndns"
+               else
+                       extracontexts="bind dnssec"
+                       skipreasons="nodyndns"
+               fi
+
+               ../pdns/pdnssec --config-dir=. import-tsig-key test $ALGORITHM $KEY
+               ../pdns/pdnssec --config-dir=. activate-tsig-key tsig.com test master
+
+               $RUNWRAPPER $PDNS --daemon=no --local-port=$port --socket-dir=./ \
+                       --no-shuffle --launch=bind --bind-config=./named.conf \
+                       --bind-dnssec-db=./dnssec.sqlite3 \
+                       --send-root-referral \
+                       --allow-2136-from=127.0.0.0/8 --experimental-rfc2136=yes --direct-dnskey=yes \
+                       --cache-ttl=$cachettl --no-config \
+                       --bind-ignore-broken-records=yes $lua_prequery &
+               bindwait
+               ;;
+
+       *)
+               nocontext=yes
+esac
diff --git a/regression-tests/backends/bind-slave b/regression-tests/backends/bind-slave
new file mode 100644 (file)
index 0000000..0ddd001
--- /dev/null
@@ -0,0 +1,35 @@
+       context=${context}-presigned
+       sed -e 's/type master;/type slave;\n\tmasters { 127.0.0.1:'$port'; };/' -e 's/file "\([^"]\+\)/file "\1-slave/' < named.conf > named-slave.conf
+
+       for zone in $(grep 'zone ' named.conf  | cut -f2 -d\")
+       do
+               rm -rf zones/$zone-slave
+       done
+
+       rm -f dnssec-slave.sqlite3
+
+       ../pdns/pdnssec --config-dir=. create-bind-db dnssec-slave.sqlite3
+
+       set +e
+       echo $skipreasons | grep -q nodnssec
+       if [ $? -ne 0 ]
+       then
+               sqlite3 dnssec-slave.sqlite3 "INSERT INTO tsigkeys (name, algorithm,secret) VALUES('test', '$ALGORITHM', '$KEY')"
+               sqlite3 dnssec-slave.sqlite3 "INSERT INTO domainmetadata (domain, kind, content) SELECT 'tsig.com', 'AXFR-MASTER-TSIG', 'test'"
+               echo $skipreasons | grep -q nolua
+               if [ $? -ne 0 ]
+               then
+                       sqlite3 dnssec-slave.sqlite3 "INSERT INTO domainmetadata (domain,kind,content) SELECT 'stest.com','AXFR-SOURCE','127.0.0.2'"
+               fi
+       fi
+       set -e
+
+       port=$((port+100))
+
+       $RUNWRAPPER $PDNS2 --daemon=no --local-port=$port --socket-dir=./ \
+               --no-shuffle --launch=bind --bind-config=./named-slave.conf --slave \
+               --send-root-referral --retrieval-threads=1  --config-name=bind-slave \
+               --allow-2136-from=127.0.0.0/8 --experimental-rfc2136=yes \
+               --cache-ttl=$cachettl --no-config --bind-dnssec-db=./dnssec-slave.sqlite3 &
+       echo 'waiting for zones to be loaded'
+       bindwait bind-slave
diff --git a/regression-tests/backends/common b/regression-tests/backends/common
new file mode 100644 (file)
index 0000000..bf9267a
--- /dev/null
@@ -0,0 +1,108 @@
+start_master ()
+{
+       case $context in
+                       bind*)
+                               source ./backends/bind-master
+                               ;;
+
+                       gmysql*)
+                               source ./backends/gmysql-master
+                               ;;
+
+                       goracle*)
+                               source ./backends/goracle-master
+                               ;;
+
+                       gpgsql*)
+                               source ./backends/gpgsql-master
+                               ;;
+
+                       gsqlite3*)
+                               source ./backends/gsqlite3-master
+                               ;;
+
+                       mydns*)
+                               source ./backends/mydns-master
+                               ;;
+
+                       opendbx*)
+                               source ./backends/opendbx-master
+                               ;;
+
+                       oracle*)
+                               source ./backends/oracle-master
+                               ;;
+
+                       remote*)
+                               source ./backends/remote-master
+                               ;;
+
+                       tinydns*)
+                               source ./backends/tinydns-master
+                               ;;
+
+                       ext-nsd*)
+                               source ./ext/nsd-master
+                               ;;
+
+                       ext-bind*)
+                               source ./ext/bind-master
+                               ;;
+
+                       *)
+                               nocontext=yes
+       esac
+
+       if [ "$nocontext" == "yes" ]
+       then
+               echo unknown context $context
+               : > passed_tests
+               echo 'unknown-context-'"$context" > failed_tests
+               ./toxml $context
+               exit
+       fi
+}
+
+start_slave ()
+{
+       skipreasons="$skipreasons presigned nodyndns"
+
+       case $presignedcontext in
+               bind*)
+                       source ./backends/bind-slave
+                       ;;
+
+               gmysql*)
+                       source ./backends/gmysql-slave
+                       ;;
+
+               goracle*)
+                       source ./backends/goracle-slave
+                       ;;
+
+               gsqlite3*)
+                       source ./backends/gsqlite3-slave
+                       ;;
+
+
+               ext-bind*)
+                       source ./ext/bind-slave
+                       ;;
+
+               ext-nsd*)
+                       source ./ext/nsd-slave
+                       ;;
+
+               *)
+                       nocontext=yes
+       esac
+
+       if [ "$nocontext" == "yes" ]
+       then
+               echo unknown presigned context $presignedcontext
+               : > passed_tests
+               echo 'unknown-presigned-context-'"$presignedcontext" > failed_tests
+               ./toxml $context
+               exit
+       fi
+}
diff --git a/regression-tests/backends/gmysql-master b/regression-tests/backends/gmysql-master
new file mode 100644 (file)
index 0000000..55ec562
--- /dev/null
@@ -0,0 +1,112 @@
+case $context in
+       gmysql-nodnssec)
+               [ -z "$GMYSQLDB" ] && GMYSQLDB=pdnstest
+               [ -z "$GMYSQLUSER" ] && GMYSQLUSER=root
+               [ -z "$GMYSQLHOST" ] && GMYSQLHOST=localhost
+               [ -z "$GMYSQLPASSWD" ] && GMYSQLPASSWD=''
+
+               mysqladmin --user="$GMYSQLUSER" --password="$GMYSQLPASSWD" --host="$GMYSQLHOST" --force drop "$GMYSQLDB" \
+                       || echo ignoring mysqladmin drop failure
+               mysqladmin --user="$GMYSQLUSER" --password="$GMYSQLPASSWD" --host="$GMYSQLHOST" create "$GMYSQLDB"
+               mysql --user="$GMYSQLUSER" --password="$GMYSQLPASSWD" --host="$GMYSQLHOST" \
+                       "$GMYSQLDB" < ../modules/gmysqlbackend/no-dnssec.schema.mysql.sql
+
+               tosql gmysql | mysql --user="$GMYSQLUSER" --password="$GMYSQLPASSWD" --host="$GMYSQLHOST" \
+                       "$GMYSQLDB"
+
+               cat > pdns-gmysql.conf << __EOF__
+launch=gmysql
+gmysql-dbname=$GMYSQLDB
+gmysql-user=$GMYSQLUSER
+gmysql-host=$GMYSQLHOST
+gmysql-password=$GMYSQLPASSWD
+__EOF__
+
+               for zone in $(grep 'zone ' named.conf  | cut -f2 -d\")
+               do
+                       ../pdns/pdnssec --config-dir=. --config-name=gmysql rectify-zone $zone 2>&1
+               done
+
+               $RUNWRAPPER $PDNS --daemon=no --local-port=$port --socket-dir=./  \
+                       --no-shuffle --launch=gmysql \
+                       --master --send-root-referral \
+                       --allow-2136-from=127.0.0.0/8 --experimental-rfc2136=yes --direct-dnskey=yes \
+                       --cache-ttl=$cachettl --no-config \
+                       --gmysql-dbname="$GMYSQLDB" \
+                       --gmysql-user="$GMYSQLUSER" \
+                       --gmysql-host="$GMYSQLHOST" \
+                       --gmysql-password="$GMYSQLPASSWD" &
+               skipreasons=nodnssec
+               ;;
+
+       gmysql | gmysql-nsec3 | gmysql-nsec3-optout |gmysql-nsec3-narrow)
+               [ -z "$GMYSQLDB" ] && GMYSQLDB=pdnstest
+               [ -z "$GMYSQLUSER" ] && GMYSQLUSER=root
+               [ -z "$GMYSQLHOST" ] && GMYSQLHOST=localhost
+               [ -z "$GMYSQLPASSWD" ] && GMYSQLPASSWD=''
+
+               mysqladmin --user="$GMYSQLUSER" --password="$GMYSQLPASSWD" --host="$GMYSQLHOST" --force drop "$GMYSQLDB" \
+                       || echo ignoring mysqladmin drop failure
+               mysqladmin --user="$GMYSQLUSER" --password="$GMYSQLPASSWD" --host="$GMYSQLHOST" create "$GMYSQLDB"
+               mysql --user="$GMYSQLUSER" --password="$GMYSQLPASSWD" --host="$GMYSQLHOST" \
+                       "$GMYSQLDB" < ../modules/gmysqlbackend/no-dnssec.schema.mysql.sql
+               mysql --user="$GMYSQLUSER" --password="$GMYSQLPASSWD" --host="$GMYSQLHOST" \
+                       "$GMYSQLDB" < ../modules/gmysqlbackend/dnssec.schema.mysql.sql
+
+               tosql gmysql | mysql --user="$GMYSQLUSER" --password="$GMYSQLPASSWD" --host="$GMYSQLHOST" \
+                       "$GMYSQLDB"
+
+               cat > pdns-gmysql.conf << __EOF__
+launch=gmysql
+gmysql-dbname=$GMYSQLDB
+gmysql-user=$GMYSQLUSER
+gmysql-host=$GMYSQLHOST
+gmysql-password=$GMYSQLPASSWD
+gmysql-dnssec
+__EOF__
+               for zone in $(grep 'zone ' named.conf  | cut -f2 -d\")
+               do
+                       securezone $zone gmysql
+                       if [ $context = gmysql-nsec3 ] || [ $context = gmysql-nsec3-optout ]
+                       then
+                               ../pdns/pdnssec --config-dir=. --config-name=gmysql set-nsec3 $zone "1 $optout 1 abcd" 2>&1
+                               ../pdns/pdnssec --config-dir=. --config-name=gmysql rectify-zone $zone 2>&1
+                       elif [ $context = gmysql-nsec3-narrow ]
+                       then
+                               ../pdns/pdnssec --config-dir=. --config-name=gmysql set-nsec3 $zone '1 1 1 abcd' narrow 2>&1
+                               ../pdns/pdnssec --config-dir=. --config-name=gmysql rectify-zone $zone 2>&1
+                       fi
+               done
+
+               ../pdns/pdnssec --config-dir=. --config-name=gmysql import-tsig-key test $ALGORITHM $KEY
+               ../pdns/pdnssec --config-dir=. --config-name=gmysql activate-tsig-key tsig.com test master
+
+               $RUNWRAPPER $PDNS --daemon=no --local-port=$port --socket-dir=./ \
+                       --no-shuffle --launch --launch+=random --launch+=gmysql --launch+=random --gmysql-dnssec \
+                       --send-root-referral \
+                       --allow-2136-from=127.0.0.0/8 --experimental-rfc2136=yes --direct-dnskey=yes \
+                       --cache-ttl=$cachettl --no-config \
+                       --gmysql-dbname="$GMYSQLDB" \
+                       --gmysql-user="$GMYSQLUSER" \
+                       --gmysql-host="$GMYSQLHOST" \
+                       --gmysql-password="$GMYSQLPASSWD" $lua_prequery &
+               if [ $context = gmysql-nsec3 ]
+               then
+                       extracontexts="dnssec nsec3"
+                       skipreasons="nsec3"
+               elif [ $context = gmysql-nsec3-optout ]
+               then
+                       extracontexts="dnssec nsec3 nsec3-optout"
+                       skipreasons="optout"
+               elif [ $context = gmysql-nsec3-narrow ]
+               then
+                       extracontexts="dnssec narrow"
+                       skipreasons="narrow"
+               else
+                       extracontexts="dnssec"
+               fi
+               ;;
+
+       *)
+               nocontext=yes
+esac
diff --git a/regression-tests/backends/gmysql-slave b/regression-tests/backends/gmysql-slave
new file mode 100644 (file)
index 0000000..72d7f58
--- /dev/null
@@ -0,0 +1,67 @@
+       context=${context}-presigned
+       [ -z "$GMYSQL2DB" ] && GMYSQL2DB=pdnstest2
+       [ -z "$GMYSQL2USER" ] && GMYSQL2USER=root
+       [ -z "$GMYSQL2HOST" ] && GMYSQL2HOST=localhost
+       [ -z "$GMYSQL2PASSWD" ] && GMYSQL2PASSWD=''
+
+       mysqladmin --user="$GMYSQL2USER" --password="$GMYSQL2PASSWD" --host="$GMYSQL2HOST" --force drop "$GMYSQL2DB" \
+               || echo ignoring mysqladmin drop failure
+       mysqladmin --user="$GMYSQL2USER" --password="$GMYSQL2PASSWD" --host="$GMYSQL2HOST" create "$GMYSQL2DB"
+       mysql --user="$GMYSQL2USER" --password="$GMYSQL2PASSWD" --host="$GMYSQL2HOST" \
+               "$GMYSQL2DB" < ../modules/gmysqlbackend/no-dnssec.schema.mysql.sql
+       mysql --user="$GMYSQL2USER" --password="$GMYSQL2PASSWD" --host="$GMYSQL2HOST" \
+               "$GMYSQL2DB" < ../modules/gmysqlbackend/dnssec.schema.mysql.sql
+
+       for zone in $(grep 'zone ' named.conf  | cut -f2 -d\" | tac)
+       do
+               mysql --user="$GMYSQL2USER" --password="$GMYSQL2PASSWD" --host="$GMYSQL2HOST" \
+               "$GMYSQL2DB" \
+               -e "INSERT INTO domains (name, type, master) VALUES('$zone','SLAVE','127.0.0.1:$port')"
+       done
+
+       set +e
+       echo $skipreasons | grep -q nodnssec
+       if [ $? -ne 0 ]
+       then
+               mysql --user="$GMYSQL2USER" --password="$GMYSQL2PASSWD" --host="$GMYSQL2HOST" "$GMYSQL2DB" \
+               -e "INSERT INTO tsigkeys (name, algorithm,secret) VALUES('test', '$ALGORITHM', '$KEY')"
+               mysql --user="$GMYSQL2USER" --password="$GMYSQL2PASSWD" --host="$GMYSQL2HOST" "$GMYSQL2DB" \
+               -e "INSERT INTO domainmetadata (domain_id, kind, content) SELECT id, 'AXFR-MASTER-TSIG', 'test' FROM domains WHERE name = 'tsig.com'"
+               echo $skipreasons | grep -q nolua
+               if [ $? -ne 0 ]
+               then
+                       mysql --user="$GMYSQL2USER" --password="$GMYSQL2PASSWD" --host="$GMYSQL2HOST" "$GMYSQL2DB" \
+                       -e "INSERT INTO domainmetadata (domain_id,kind,content) SELECT id,'AXFR-SOURCE','127.0.0.2' FROM domains WHERE name = 'stest.com'"
+               fi
+       fi
+       set -e
+
+       port=$((port+100))
+
+       $RUNWRAPPER $PDNS2 --daemon=no --local-port=$port --socket-dir=./ \
+               --no-shuffle --launch=gmysql --gmysql-dnssec \
+               --send-root-referral \
+               --allow-2136-from=127.0.0.0/8 --experimental-rfc2136=yes \
+               --cache-ttl=$cachettl --query-cache-ttl=$cachettl --no-config --slave --retrieval-threads=4 \
+               --gmysql-dbname="$GMYSQL2DB" \
+               --gmysql-user="$GMYSQL2USER" \
+               --gmysql-host="$GMYSQL2HOST" \
+               --gmysql-password="$GMYSQL2PASSWD" \
+               --config-name=gmysql2 &
+       echo 'waiting for zones to be slaved'
+       loopcount=0
+       while [ $loopcount -lt 20 ]
+       do
+               sleep 5
+               todo=$(mysql --user="$GMYSQL2USER" --password="$GMYSQL2PASSWD" --host="$GMYSQl2HOST" \
+                       "$GMYSQL2DB" -ss -e 'SELECT COUNT(id) FROM domains WHERE last_check IS NULL')
+               if [ $todo = 0 ]
+               then
+                       break
+               fi
+               let loopcount=loopcount+1
+       done
+       if [ $todo -ne 0 ]
+       then
+               echo "AXFR FAILED" >> failed_tests
+       fi
diff --git a/regression-tests/backends/goracle-master b/regression-tests/backends/goracle-master
new file mode 100644 (file)
index 0000000..56938fc
--- /dev/null
@@ -0,0 +1,66 @@
+case $context in
+       goracle-nodnssec | goracle | goracle-nsec3 | goracle-nsec3-optout)
+               [ -z "$GORACLEUSER" ] && GORACLEUSER=pdns
+               [ -z "$GORACLEPASSWD" ] && GORACLEPASSWD=pdns
+
+               echo "START ../modules/goraclebackend/goracle-drop-schema;" | sqlplus -S $GORACLEUSER/$GORACLEPASSWD@xe > goracle.log
+               echo "START ../modules/goraclebackend/goracle-schema;" | sqlplus -S $GORACLEUSER/$GORACLEPASSWD@xe >> goracle.log
+               tosql goracle | sqlplus -S $GORACLEUSER/$GORACLEPASSWD@xe >> goracle.log
+
+               cat > pdns-goracle.conf << __EOF__
+launch=goracle
+goracle-home=$ORACLE_HOME
+goracle-sid=$ORACLE_SID
+goracle-nls-lang=$NLS_LANG
+
+goracle-tnsname=xe
+goracle-user=$GORACLEUSER
+goracle-password=$GORACLEPASSWD
+__EOF__
+
+               if [ $context != goracle-nodnssec ]
+               then
+                       echo "goracle-dnssec" >> pdns-goracle.conf
+                       ../pdns/pdnssec --config-dir=. --config-name=goracle import-tsig-key test $ALGORITHM $KEY
+                       ../pdns/pdnssec --config-dir=. --config-name=goracle activate-tsig-key tsig.com test master
+               fi
+
+               for zone in $(grep 'zone ' named.conf  | cut -f2 -d\")
+               do
+                       if [ $context != goracle-nodnssec ]
+                       then
+                               securezone $zone goracle
+                               if [ $context = goracle-nsec3 ] || [ $context = goracle-nsec3-optout ]
+                               then
+                                       ../pdns/pdnssec --config-dir=. --config-name=goracle set-nsec3 $zone "1 $optout 1 abcd" 2>&1
+                                       ../pdns/pdnssec --config-dir=. --config-name=goracle rectify-zone $zone 2>&1
+                               fi
+                       else
+                               ../pdns/pdnssec --config-dir=. --config-name=goracle rectify-zone $zone 2>&1
+                       fi
+               done
+
+               $RUNWRAPPER $PDNS --daemon=no --local-port=$port --config-dir=. \
+                       --config-name=goracle --socket-dir=./ --no-shuffle \
+                       --send-root-referral \
+                       --allow-2136-from=127.0.0.0/8 --experimental-rfc2136=yes \
+                       --cache-ttl=$cachettl $lua_prequery &
+
+               skipreasons="nodyndns"
+               if [ $context = goracle-nsec3 ]
+               then
+                       extracontexts="dnssec nsec3"
+               elif [ $context = goracle-nsec3-optout ]
+               then
+                       extracontexts="dnssec nsec3 nsec3-optout"
+               elif [ $context = goracle-nodnssec ]
+               then
+                       skipreasons="nodnssec nodyndns"
+               else
+                       extracontexts="dnssec"
+               fi
+               ;;
+
+       *)
+               nocontext=yes
+esac
diff --git a/regression-tests/backends/goracle-slave b/regression-tests/backends/goracle-slave
new file mode 100644 (file)
index 0000000..6231538
--- /dev/null
@@ -0,0 +1,66 @@
+       context=${context}-presigned
+       [ -z "$GORACLE2USER" ] && GORACLE2USER=pdns2
+       [ -z "$GORACLE2PASSWD" ] && GORACLE2PASSWD=pdns
+
+       echo "START ../modules/goraclebackend/goracle-drop-schema;" | sqlplus -S $GORACLE2USER/$GORACLE2PASSWD@xe > goracle2.log
+       echo "START ../modules/goraclebackend/goracle-schema;" | sqlplus -S $GORACLE2USER/$GORACLE2PASSWD@xe >> goracle2.log
+
+       cat > pdns-goracle2.conf << __EOF__
+launch=goracle
+goracle-home=$ORACLE_HOME
+goracle-sid=$ORACLE_SID
+goracle-nls-lang=$NLS_LANG
+
+goracle-tnsname=xe
+goracle-user=$GORACLE2USER
+goracle-password=$GORACLE2PASSWD
+goracle-dnssec
+__EOF__
+
+       for zone in $(grep 'zone ' named.conf  | cut -f2 -d\" | tac)
+       do
+               echo "INSERT INTO domains (id, name, type, master) VALUES(domains_id_sequence.nextval, '$zone', 'SLAVE', '127.0.0.1:$port');" | sqlplus -S $GORACLE2USER/$GORACLE2PASSWD@xe >> goracle2.log
+       done
+
+       set +e
+       echo $skipreasons | grep -q nodnssec
+       if [ $? -ne 0 ]
+       then
+               ../pdns/pdnssec --config-dir=. --config-name=goracle2 import-tsig-key test $ALGORITHM $KEY
+               ../pdns/pdnssec --config-dir=. --config-name=goracle2 activate-tsig-key tsig.com test master
+               echo $skipreasons | grep -q nolua
+               if [ $? -ne 0 ]
+               then
+                       ../pdns/pdnssec --config-dir=. --config-name=goracle2 set-meta stest.com AXFR-SOURCE 127.0.0.2
+               fi
+       fi
+       set -e
+
+       port=$((port+100))
+
+       $RUNWRAPPER $PDNS2 --daemon=no --local-port=$port --config-dir=. \
+               --config-name=goracle2 --socket-dir=./ --no-shuffle \
+               --send-root-referral --slave --retrieval-threads=4 \
+               --slave-cycle-interval=300 --config-name=goracle2 &
+       echo 'waiting for zones to be slaved'
+
+       loopcount=0
+       while [ $loopcount -lt 40 ]
+       do
+               sleep 5
+               todo=$(sqlplus -S $GORACLE2USER/$GORACLE2PASSWD@xe << __EOF__
+set pagesize 0 feedback off verify off heading off echo off;
+SELECT COUNT(id) FROM domains WHERE last_check IS NULL;
+exit;
+__EOF__
+)
+               if [ $todo = 0 ]
+               then
+                       break
+               fi
+               let loopcount=loopcount+1
+       done
+       if [ $todo -ne 0 ]
+       then
+               echo "AXFR FAILED" >> failed_tests
+       fi
diff --git a/regression-tests/backends/gpgsql-master b/regression-tests/backends/gpgsql-master
new file mode 100644 (file)
index 0000000..3fcc908
--- /dev/null
@@ -0,0 +1,88 @@
+case $context in
+       gpgsql-nodnssec)
+               [ -z "$GPGSQLDB" ] && GPGSQLDB=pdnstest
+               [ -z "$GPGSQLUSER" ] && GPGSQLUSER=$(whoami)
+
+               dropdb --user="$GPGSQLUSER" "$GPGSQLDB" || echo ignoring mysqladmin drop failure
+               createdb --user="$GPGSQLUSER" "$GPGSQLDB"       || echo ignoring mysqladmin drop failure
+               psql --user="$GPGSQLUSER" "$GPGSQLDB" < ../modules/gpgsqlbackend/no-dnssec.schema.pgsql.sql
+
+               tosql gpgsql | psql --user="$GPGSQLUSER" "$GPGSQLDB" 2>&1 | uniq -c
+
+               cat > pdns-gpgsql.conf << __EOF__
+launch=gpgsql
+gpgsql-dbname=$GPGSQLDB
+gpgsql-user=$GPGSQLUSER
+__EOF__
+
+               for zone in $(grep 'zone ' named.conf  | cut -f2 -d\")
+               do
+                       ../pdns/pdnssec --config-dir=. --config-name=gpgsql rectify-zone $zone 2>&1
+               done
+
+               $RUNWRAPPER $PDNS --daemon=no --local-port=$port --socket-dir=./ \
+                       --no-shuffle --launch=gpgsql \
+                       --send-root-referral \
+                       --allow-2136-from=127.0.0.0/8 --experimental-rfc2136=yes \
+                       --cache-ttl=$cachettl --no-config \
+                       --gpgsql-dbname="$GPGSQLDB" \
+                       --gpgsql-user="$GPGSQLUSER" &
+               skipreasons="nodnssec nodyndns"
+               ;;
+
+
+       gpgsql | gpgsql-nsec3 | gpgsql-nsec3-optout)
+               [ -z "$GPGSQLDB" ] && GPGSQLDB=pdnstest
+               [ -z "$GPGSQLUSER" ] && GPGSQLUSER=$(whoami)
+
+               dropdb --user="$GPGSQLUSER" "$GPGSQLDB" || echo ignoring dropdb failure
+               createdb --user="$GPGSQLUSER" "$GPGSQLDB" || echo ignoring createdb failure # FIXME
+               psql --user="$GPGSQLUSER" "$GPGSQLDB" < ../modules/gpgsqlbackend/no-dnssec.schema.pgsql.sql
+               psql --user="$GPGSQLUSER" "$GPGSQLDB" < ../modules/gpgsqlbackend/dnssec.schema.pgsql.sql
+
+               tosql gpgsql | psql --user="$GPGSQLUSER" "$GPGSQLDB" 2>&1 | uniq -c
+
+               cat > pdns-gpgsql.conf << __EOF__
+launch=gpgsql
+gpgsql-dbname=$GPGSQLDB
+gpgsql-user=$GPGSQLUSER
+gpgsql-dnssec
+__EOF__
+               for zone in $(grep 'zone ' named.conf  | cut -f2 -d\")
+               do
+                       securezone $zone gpgsql
+                       if [ $context = gpgsql-nsec3 ] || [ $context = gpgsql-nsec3-optout ]
+                       then
+                               ../pdns/pdnssec --config-dir=. --config-name=gpgsql set-nsec3 $zone "1 $optout 1 abcd" 2>&1
+                               ../pdns/pdnssec --config-dir=. --config-name=gpgsql rectify-zone $zone 2>&1
+                       fi
+               done
+
+               ../pdns/pdnssec --config-dir=. --config-name=gpgsql import-tsig-key test $ALGORITHM $KEY
+               ../pdns/pdnssec --config-dir=. --config-name=gpgsql activate-tsig-key tsig.com test master
+
+               $RUNWRAPPER $PDNS --daemon=no --local-port=$port --socket-dir=./ \
+                       --no-shuffle --launch=gpgsql --gpgsql-dnssec \
+                       --send-root-referral \
+                       --allow-2136-from=127.0.0.0/8 --experimental-rfc2136=yes \
+                       --cache-ttl=$cachettl --no-config \
+                       --gpgsql-dbname="$GPGSQLDB" \
+                       --gpgsql-user="$GPGSQLUSER" $lua_prequery &
+               if [ $context = gpgsql-nsec3 ]
+               then
+                       extracontexts="dnssec nsec3"
+               elif [ $context = gpgsql-nsec3-optout ]
+               then
+                       extracontexts="dnssec nsec3 nsec3-optout"
+               elif [ $context = gpgsql-nsec3-narrow ]
+               then
+                       extracontexts="dnssec narrow"
+               else
+                       extracontexts="dnssec"
+               fi
+               skipreasons="nodyndns"
+               ;;
+
+       *)
+               nocontext=yes
+esac
diff --git a/regression-tests/backends/gsqlite3-master b/regression-tests/backends/gsqlite3-master
new file mode 100644 (file)
index 0000000..8677e1e
--- /dev/null
@@ -0,0 +1,71 @@
+case $context in
+       gsqlite3-nodnssec)
+               rm -f pdns.sqlite3
+               sqlite3 pdns.sqlite3 < ../modules/gsqlite3backend/no-dnssec.schema.sqlite3.sql
+               tosql gsqlite | sqlite3 pdns.sqlite3
+               echo ANALYZE\; | sqlite3 pdns.sqlite3
+
+               cat > pdns-gsqlite3.conf << __EOF__
+launch=gsqlite3
+gsqlite3-database=pdns.sqlite3
+__EOF__
+               for zone in $(grep 'zone ' named.conf  | cut -f2 -d\")
+               do
+                       ../pdns/pdnssec --config-dir=. --config-name=gsqlite3 rectify-zone $zone 2>&1
+               done
+
+               $RUNWRAPPER $PDNS --daemon=no --local-port=$port --socket-dir=./ \
+                       --no-shuffle --launch=gsqlite3 \
+                       --send-root-referral \
+                       --allow-2136-from=127.0.0.0/8 --experimental-rfc2136=yes \
+                       --cache-ttl=$cachettl --no-config \
+                       --gsqlite3-database=pdns.sqlite3 &
+               skipreasons="nodnssec nodyndns"
+               ;;
+
+       gsqlite3 | gsqlite3-nsec3 | gsqlite3-nsec3-optout)
+               rm -f pdns.sqlite3
+               sqlite3 pdns.sqlite3 < ../modules/gsqlite3backend/no-dnssec.schema.sqlite3.sql
+               sqlite3 pdns.sqlite3 < ../modules/gsqlite3backend/dnssec.schema.sqlite3.sql
+               tosql gsqlite | sqlite3 pdns.sqlite3
+               echo ANALYZE\; | sqlite3 pdns.sqlite3
+
+               cat > pdns-gsqlite3.conf << __EOF__
+launch=gsqlite3
+gsqlite3-database=pdns.sqlite3
+gsqlite3-dnssec
+__EOF__
+               for zone in $(grep 'zone ' named.conf  | cut -f2 -d\")
+               do
+                       securezone $zone gsqlite3
+                       if [ $context = gsqlite3-nsec3 ] || [ $context = gsqlite3-nsec3-optout ]
+                       then
+                               ../pdns/pdnssec --config-dir=. --config-name=gsqlite3 set-nsec3 $zone "1 $optout 1 abcd" 2>&1
+                               ../pdns/pdnssec --config-dir=. --config-name=gsqlite3 rectify-zone $zone 2>&1
+                       fi
+               done
+
+               ../pdns/pdnssec --config-dir=. --config-name=gsqlite3 import-tsig-key test $ALGORITHM $KEY
+               ../pdns/pdnssec --config-dir=. --config-name=gsqlite3 activate-tsig-key tsig.com test master
+
+               $RUNWRAPPER $PDNS --daemon=no --local-port=$port --socket-dir=./ \
+                       --no-shuffle --launch=gsqlite3 --gsqlite3-dnssec \
+                       --send-root-referral \
+                       --allow-2136-from=127.0.0.0/8 --experimental-rfc2136=yes \
+                       --cache-ttl=$cachettl --no-config \
+                       --gsqlite3-database=pdns.sqlite3 $lua_prequery &
+               if [ $context = gsqlite3-nsec3 ]
+               then
+                       extracontexts="dnssec nsec3"
+               elif [ $context = gsqlite3-nsec3-optout ]
+               then
+                       extracontexts="dnssec nsec3 nsec3-optout"
+               else
+                       extracontexts="dnssec"
+               fi
+               skipreasons="nodyndns"
+               ;;
+
+       *)
+               nocontext=yes
+esac
diff --git a/regression-tests/backends/gsqlite3-slave b/regression-tests/backends/gsqlite3-slave
new file mode 100644 (file)
index 0000000..2e169b8
--- /dev/null
@@ -0,0 +1,54 @@
+       context=${context}-presigned
+       rm -f pdns.sqlite31
+       sqlite3 pdns.sqlite31 < ../modules/gsqlite3backend/no-dnssec.schema.sqlite3.sql
+       sqlite3 pdns.sqlite31 < ../modules/gsqlite3backend/dnssec.schema.sqlite3.sql
+
+       for zone in $(grep 'zone ' named.conf  | cut -f2 -d\" | tac)
+       do
+               sqlite3 pdns.sqlite31 "INSERT INTO domains (name, type, master) VALUES('$zone','SLAVE','127.0.0.1:$port');"
+       done
+
+       set +e
+       echo $skipreasons | grep -q nodnssec
+       if [ $? -ne 0 ]
+       then
+               sqlite3 pdns.sqlite31 "INSERT INTO tsigkeys (name,algorithm,secret) VALUES('test','$ALGORITHM', '$KEY')"
+               sqlite3 pdns.sqlite31 "INSERT INTO domainmetadata (domain_id, kind, content) SELECT id, 'AXFR-MASTER-TSIG', 'test' FROM domains WHERE name = 'tsig.com'"
+               echo $skipreasons | grep -q nolua
+               if [ $? -ne 0 ]
+               then
+                       sqlite3 pdns.sqlite31  "INSERT INTO domainmetadata (domain_id,kind,content) SELECT id,'AXFR-SOURCE','127.0.0.2' FROM domains WHERE name = 'stest.com'"
+               fi
+       fi
+       set -e
+
+       port=$((port+100))
+
+       $RUNWRAPPER $PDNS2 --daemon=no --local-port=$port --socket-dir=./  \
+               --no-shuffle --launch=gsqlite3 --gsqlite3-dnssec \
+               --fancy-records --send-root-referral \
+               --cache-ttl=0 --query-cache-ttl=0 --no-config --slave --retrieval-threads=4 \
+               --gsqlite3-database=pdns.sqlite31 --gsqlite3-pragma-synchronous=0 \
+               --config-name=gsqlite32 |& egrep -v "update records set ordername|insert into records" &
+       echo 'waiting for zones to be slaved'
+       set +e
+       loopcount=0
+       while [ $loopcount -lt 20 ]
+       do
+               sleep 5
+               todo=$(sqlite3 pdns.sqlite31 'SELECT COUNT(id) FROM domains WHERE last_check IS NULL')
+               if [ $todo -eq 0 ]
+               then
+                       if [ $todo = 0 ]
+                       then
+                               break
+                       fi
+               fi
+               let loopcount=loopcount+1
+       done
+       if [ $todo -ne 0 ]
+       then
+               echo "AXFR FAILED" >> failed_tests
+       fi
+       set -e
+       sqlite3 pdns.sqlite31 ANALYZE;
diff --git a/regression-tests/backends/mydns-master b/regression-tests/backends/mydns-master
new file mode 100644 (file)
index 0000000..6105554
--- /dev/null
@@ -0,0 +1,38 @@
+case $context in
+       mydns)
+               [ -z "$MYDNSDB" ] && MYDNSDB=pdnstest
+               [ -z "$MYDNSUSER" ] && MYDNSUSER=root
+               [ -z "$MYDNSHOST" ] && MYDNSHOST=localhost
+               [ -z "$MYDNSPASSWD" ] && MYDNSPASSWD=''
+
+               mysqladmin --user="$MYDNSUSER" --password="$MYDNSPASSWD" --host="$MYDNSHOST" --force drop "$MYDNSDB" \
+                       || echo ignoring mysqladmin drop failure
+               mysqladmin --user="$MYDNSUSER" --password="$MYDNSPASSWD" --host="$MYDNSHOST" create "$MYDNSDB"
+               mysql --user="$MYDNSUSER" --password="$MYDNSPASSWD" --host="$MYDNSHOST" \
+                       "$MYDNSDB" < ../modules/mydnsbackend/schema.sql
+
+               tosql mydns | grep -v 'double\.example\.com' | mysql --user="$MYDNSUSER" --password="$MYDNSPASSWD" --host="$MYDNSHOST" \
+                       "$MYDNSDB"
+
+               cat > pdns-mydns.conf << __EOF__
+launch=mydns
+mydns-dbname=$MYDNSDB
+mydns-user=$MYDNSUSER
+mydns-host=$MYDNSHOST
+mydns-password=$MYDNSPASSWD
+__EOF__
+               $RUNWRAPPER $PDNS --daemon=no --local-port=$port --socket-dir=./  \
+                       --no-shuffle --launch=mydns \
+                       --master --send-root-referral \
+                       --cache-ttl=0 --no-config \
+                       --mydns-rr-active=no --mydns-soa-active=no --mydns-use-minimal-ttl=no \
+                       --mydns-dbname="$MYDNSDB" \
+                       --mydns-user="$MYDNSUSER" \
+                       --mydns-host="$MYDNSHOST" \
+                       --mydns-password="$MYDNSPASSWD" &
+               skipreasons="nodnssec noent nodyndns"
+               ;;
+
+               *)
+                       nocontext=yes
+esac
diff --git a/regression-tests/backends/opendbx-master b/regression-tests/backends/opendbx-master
new file mode 100644 (file)
index 0000000..a8a5348
--- /dev/null
@@ -0,0 +1,21 @@
+case $context in
+       opendbx-sqlite3)
+               rm -f pdns-opendbx.sqlite3
+               sqlite3 pdns-opendbx.sqlite3 < ../modules/gsqlite3backend/no-dnssec.schema.sqlite3.sql
+               tosql gsqlite | sqlite3 pdns-opendbx.sqlite3
+               sqlite3 pdns-opendbx.sqlite3 "ALTER TABLE domains ADD status CHARACTER(1) NOT NULL DEFAULT 'A'; \
+                       ALTER TABLE domains ADD auto_serial INTEGER DEFAULT 0;"
+               echo ANALYZE\; | sqlite3 pdns-opendbx.sqlite3
+
+               $RUNWRAPPER $PDNS --daemon=no --local-port=$port --socket-dir=./  \
+                       --no-shuffle --launch=opendbx \
+                       --send-root-referral \
+                       --cache-ttl=$cachettl --no-config \
+                       --opendbx-backend=sqlite3 --opendbx-host-read=./ --opendbx-host-write=./ \
+                       --opendbx-database=pdns-opendbx.sqlite3 &
+               skipreasons="nodnssec noent nodyndns"
+               ;;
+
+       *)
+               nocontext=yes
+esac
diff --git a/regression-tests/backends/oracle-master b/regression-tests/backends/oracle-master
new file mode 100644 (file)
index 0000000..013cc51
--- /dev/null
@@ -0,0 +1,68 @@
+case $context in
+       oracle-nodnssec | oracle | oracle-nsec3)
+               [ -z "$ORACLEUSER" ] && ORACLEUSER=pdns
+               [ -z "$ORACLEPASSWD" ] && ORACLEPASSWD=pdns
+
+               echo "START ../modules/oraclebackend/dropschema;" | sqlplus -S $ORACLEUSER/$ORACLEPASSWD@xe > oracle.log
+               echo "START ../modules/oraclebackend/schema;" | sqlplus -S $ORACLEUSER/$ORACLEPASSWD@xe >> oracle.log
+               ../pdns/zone2sql --oracle | grep -v 'INSERT INTO Records' | sqlplus -S $ORACLEUSER/$ORACLEPASSWD@xe >> oracle.log
+               ../pdns/zone2sql --oracle | grep " 'SOA', " | sqlplus -S $ORACLEUSER/$ORACLEPASSWD@xe >> oracle.log
+
+               cat > pdns-oracle.conf << __EOF__
+launch=oracle
+oracle-home=$ORACLE_HOME
+oracle-sid=$ORACLE_SID
+oracle-nls-lang=$NLS_LANG
+
+oracle-pool-database=xe
+oracle-pool-username=$ORACLEUSER
+oracle-pool-password=$ORACLEPASSWD
+oracle-master-database=xe
+oracle-master-username=$ORACLEUSER
+oracle-master-password=$ORACLEPASSWD
+__EOF__
+
+               if [ $context != oracle-nodnssec ]
+               then
+                       echo "oracle-dnssec" >> pdns-oracle.conf
+                       ../pdns/pdnssec --config-dir=. --config-name=oracle import-tsig-key test $ALGORITHM $KEY
+                       ../pdns/pdnssec --config-dir=. --config-name=oracle activate-tsig-key tsig.com test master
+               fi
+
+               if [ $context != oracle-nodnssec ]
+               then
+                       for zone in $(grep 'zone ' named.conf  | cut -f2 -d\")
+                       do
+                               securezone $zone oracle
+                               if [ $context = oracle-nsec3 ]
+                               then
+                                       ../pdns/pdnssec --config-dir=. --config-name=oracle set-nsec3 $zone "1 0 1 abcd" 2>&1
+                               fi
+                       done
+               fi
+
+               echo "TRUNCATE TABLE records;" | sqlplus -S $ORACLEUSER/$ORACLEPASSWD@xe >> oracle.log
+               ../pdns/zone2sql --oracle | grep -v 'INSERT INTO Zones' | sqlplus -S $ORACLEUSER/$ORACLEPASSWD@xe >> oracle.log
+
+               $RUNWRAPPER $PDNS --daemon=no --local-port=$port --config-dir=. \
+                       --config-name=oracle --socket-dir=./ --no-shuffle \
+                       --send-root-referral --query-logging \
+                       --cache-ttl=$cachettl $lua_prequery &
+
+               if [ $context = oracle-nsec3 ]
+               then
+                       skipreasons="nodyndns oracle-nsec3"
+                       extracontexts="dnssec nsec3"
+               elif [ $context = oracle-nodnssec ]
+               then
+                       skipreasons="nodyndns nodnssec"
+               else
+                       skipreasons="nodyndns oracle-nsec"
+                       extracontexts="dnssec"
+               fi
+               skipreasons="$skipreasons noent" # TODO add ent support to oracle backend
+               ;;
+
+       *)
+               nocontext=yes
+esac
diff --git a/regression-tests/backends/remote-master b/regression-tests/backends/remote-master
new file mode 100644 (file)
index 0000000..b6df19f
--- /dev/null
@@ -0,0 +1,121 @@
+case $context in
+       remotebackend-*)
+               remotetype=$(echo $context | cut -d- -f 2)
+               remotesec=$(echo $context | cut -d- -f 3)
+               narrow=$(echo $context | cut -d- -f 4)
+               testsdir=../modules/remotebackend/regression-tests/
+
+               # cleanup unbound-host.conf to avoid failures
+               rm -f unbound-host.conf
+
+               echo "Setting up test database..."
+               # setup test database
+               rm -f $testsdir/remote.sqlite3
+               sqlite3 $testsdir/remote.sqlite3 < $testsdir/test-schema.sql
+               chmod 0666 $testsdir/remote.sqlite3
+
+               case $remotetype in
+               http)
+                       connstr="http:url=http://localhost:62434/dns"
+                       rm -f remotebackend-server.log
+                       rm -f remotebackend-access.log
+                       $testsdir/http-backend.rb &
+                       echo $! > pdns-remotebackend.pid
+                       set +e
+                       # make sure it runs before continuing
+                       loopcount=0
+                       while [ $loopcount -lt 20 ]; do
+                               res=$(curl http://localhost:62434/ping 2>/dev/null)
+                               if [ "x$res" == "xpong" ]
+                               then
+                                       break
+                               fi
+                               sleep 1
+                               let loopcount=loopcount+1
+                       done
+                       set -e
+                       ;;
+               zeromq)
+                       connstr="zeromq:endpoint=ipc:///tmp/pdns.0"
+                       $testsdir/zeromq-backend.rb &
+                       echo $! > pdns-remotebackend.pid
+                       ;;
+               unix)
+                       connstr="unix:path=/tmp/remote.socket"
+                       socat unix-listen:/tmp/remote.socket,fork exec:$testsdir/unix-backend.rb &
+                       echo $! > pdns-remotebackend.pid
+                       ;;
+               pipe)
+                       connstr="pipe:command=$testsdir/pipe-backend.rb"
+                       ;;
+               *)
+                       echo "Invalid usage"
+                       exit
+                       ;;
+               esac
+
+               skipreasons="nodnssec nodyndns"
+
+               if [ "$remotesec" = "nsec3" ]
+               then
+                       remotedosec="yes"
+                       if [ "$narrow" = "narrow" ]
+                       then
+                               extracontexts="dnssec nsec3 narrow"
+                               skipreasons="narrow nsec3 nodyndns"
+                       else
+                               extracontexts="dnssec nsec3"
+                               skipreasons="nsec3 nodyndns"
+                       fi
+                       
+                       remote_add_param="--remote-dnssec=yes"
+               elif [ "$remotesec" = "dnssec" ]
+               then
+                       remotedosec="yes"
+                       remote_add_param="--remote-dnssec=yes"
+                       extracontexts="dnssec"
+                       skipreasons="nonsec3 nonarrow nodyndns"
+               fi
+
+
+               # generate pdns.conf for pdnssec
+               cat > pdns-remote.conf <<EOF
+launch=remote
+remote-connection-string=$connstr
+EOF
+
+               if [ "$remotedosec" = "yes" ]
+               then
+                       echo "remote-dnssec=yes" >> pdns-remote.conf
+                       ../pdns/pdnssec --config-dir=. --config-name=remote import-zone-key example.com $testsdir/example.com.ksk ksk
+                       ../pdns/pdnssec --config-dir=. --config-name=remote import-zone-key example.com $testsdir/example.com.zsk.1 zsk
+                       ../pdns/pdnssec --config-dir=. --config-name=remote import-zone-key example.com $testsdir/example.com.zsk.2 zsk
+                       ../pdns/pdnssec --config-dir=. --config-name=remote activate-zone-key example.com 1
+                       ../pdns/pdnssec --config-dir=. --config-name=remote activate-zone-key example.com 2
+                       ../pdns/pdnssec --config-dir=. --config-name=remote deactivate-zone-key example.com 3
+
+                       ../pdns/pdnssec --config-dir=. --config-name=remote import-zone-key up.example.com $testsdir/up.example.com.ksk ksk
+                       ../pdns/pdnssec --config-dir=. --config-name=remote import-zone-key up.example.com $testsdir/up.example.com.zsk.1 zsk
+                       ../pdns/pdnssec --config-dir=. --config-name=remote import-zone-key up.example.com $testsdir/up.example.com.zsk.2 zsk
+                       ../pdns/pdnssec --config-dir=. --config-name=remote activate-zone-key example.com 4
+                       ../pdns/pdnssec --config-dir=. --config-name=remote activate-zone-key example.com 5
+                       ../pdns/pdnssec --config-dir=. --config-name=remote deactivate-zone-key example.com 6
+
+                       if [ "$remotesec" = "nsec3" ]
+                       then
+                               ../pdns/pdnssec --config-dir=. --config-name=remote set-nsec3 example.com
+                               ../pdns/pdnssec --config-dir=. --config-name=remote set-nsec3 up.example.com
+                       fi
+               fi
+
+               $RUNWRAPPER $PDNS --daemon=no --local-port=$port --socket-dir=./ \
+                       --no-shuffle --launch=remote \
+                       --query-logging --loglevel=9 --cache-ttl=$cachettl --no-config \
+                       --send-root-referral --distributor-threads=1 \
+                       --allow-2136-from=127.0.0.0/8 --experimental-rfc2136=yes \
+                       --remote-connection-string="$connstr" $remote_add_param &
+               ;;
+
+       *)
+               nocontext=yes
+esac
diff --git a/regression-tests/backends/tinydns-master b/regression-tests/backends/tinydns-master
new file mode 100644 (file)
index 0000000..63b64b1
--- /dev/null
@@ -0,0 +1,14 @@
+case $context in
+       tinydns)
+               $RUNWRAPPER $PDNS --daemon=no --local-port=$port --socket-dir=./ \
+                       --no-shuffle --launch=tinydns \
+                --cache-ttl=$cachettl --no-config \
+                       --send-root-referral \
+                       --allow-2136-from=127.0.0.0/8 --experimental-rfc2136=yes \
+                       --tinydns-dbfile=../modules/tinydnsbackend/data.cdb & 
+               skipreasons="nodnssec noent nodyndns"
+               ;;
+
+       *)
+               nocontext=yes
+esac
diff --git a/regression-tests/ext/bind-master b/regression-tests/ext/bind-master
new file mode 100644 (file)
index 0000000..bd2fa10
--- /dev/null
@@ -0,0 +1,120 @@
+bindfix ()
+{
+       sed -e 's/"A very .*"/"shorter"/' < zones/test.com > zones/test.com.bind
+       sed -e '/EUI/s/^/;/g' -e '/host\.\*\.sub/s/^/;/g' < zones/example.com > zones/example.com.bind
+       sed -e '/DS\t44030/s/^/;/g' < zones/delegated.dnssec-parent.com > zones/delegated.dnssec-parent.com.bind
+}
+
+tobind ()
+{
+       cat > bind.conf << __EOF__
+options {
+       directory "./zones";
+       dnssec-enable yes;
+       listen-on port $port { 127.0.0.1; };
+       minimal-responses yes;
+       pid-file "../pdns.pid";
+};
+
+key test {
+       algorithm $ALGORITHM;
+       secret "$KEY";
+};
+__EOF__
+
+       rm -f K*
+       rm -f zones/*.bind
+
+       bindfix
+
+       for zone in $(grep 'zone ' named.conf  | cut -f2 -d\")
+       do
+
+               if [ ! -f zones/$zone.bind ]
+               then
+                       cp zones/$zone zones/$zone.bind
+               fi
+
+               if [ "$1" != "unsigned" ]
+               then
+                       if [ ! "${zone: 0:16}" = "secure-delegated" ]
+                       then
+                               ksk=$(dnssec-keygen -r/dev/urandom -f KSK -a RSASHA256 -b 2048 -n ZONE $zone)
+                       else
+                               cp secure-delegated.dnssec-parent.com.private  Ksecure-delegated.dnssec-parent.com.+008+54319.private
+                               cp secure-delegated.dnssec-parent.com.key  Ksecure-delegated.dnssec-parent.com.+008+54319.key
+                               ksk="Ksecure-delegated.dnssec-parent.com.+008+54319"
+                       fi
+                       zsk=$(dnssec-keygen -r/dev/urandom -a RSASHA256 -b 1024 -n ZONE $zone)
+
+                       echo "\$include $ksk.key ; KSK" >> zones/$zone.bind
+                       echo "\$include $zsk.key ; ZSK" >> zones/$zone.bind
+               fi
+
+               case $1 in
+                       nsec)
+                               dnssec-signzone -o $zone -f zones/$zone.signed zones/$zone.bind
+                               ;;
+                       nsec3)
+                               dnssec-signzone -3 abcd -H 1 -o $zone -f zones/$zone.signed zones/$zone.bind
+                               ;;
+                       nsec3-optout)
+                               dnssec-signzone -3 abcd -H 1 -A -o $zone -f zones/$zone.signed zones/$zone.bind
+                               if [ "$zone" = "dnssec-parent.com" ]
+                               then
+                                       echo "insecure.dnssec-parent.com.       IN      NS      ns.insecure.dnssec-parent.com." >> zones/${zone}.signed
+                               fi
+                               ;;
+                       unsigned)
+                               cp zones/${zone}.bind zones/${zone}.signed
+                               ;;
+                       *)
+                               echo 'tobind called with wrong param'
+                               exit
+               esac
+
+               echo "" >> bind.conf
+               echo "zone \"${zone}\" {" >> bind.conf
+               echo "  type master;" >> bind.conf
+               if [ "${zone}" = "tsig.com" ]
+               then
+                       echo "  allow-transfer { key test; none; };" >> bind.conf
+               fi
+               echo "  file \"${zone}.signed\";" >> bind.conf
+               echo "};" >> bind.conf
+       done
+}
+
+case $context in
+       ext-bind | ext-bind-nsec | ext-bind-nsec3 | ext-bind-nsec3-optout)
+               case $context in
+                       ext-bind)
+                               tobind unsigned
+                               extracontexts="extbind"
+                               skipreasons="bind nodnssec nodyndns"
+                               ;;
+                       ext-bind-nsec)
+                               tobind nsec
+                               extracontexts="extbind dnssec"
+                               skipreasons="bind nodyndns"
+                               ;;
+                       ext-bind-nsec3)
+                               tobind nsec3
+                               extracontexts="extbind dnssec nsec3"
+                               skipreasons="bind nsec3 nodyndns"
+                               ;;
+                       ext-bind-nsec3-optout)
+                               tobind nsec3-optout
+                               extracontexts="extbind dnssec nsec3 nsec3-optout"
+                               skipreasons="bind optout nodyndns"
+                               ;;
+                       *)
+                               nocontext=yes
+               esac
+               named -c bind.conf -g &
+               sleep 5
+               ;;
+
+       *)
+               nocontext=yes
+esac
diff --git a/regression-tests/ext/bind-slave b/regression-tests/ext/bind-slave
new file mode 100644 (file)
index 0000000..b66cf90
--- /dev/null
@@ -0,0 +1,39 @@
+       skipreasons="$skipreasons bind"
+       context=$context-presigned
+       cat > bind-slave.conf << __EOF__
+options {
+       directory "./zones";
+       dnssec-enable yes;
+       listen-on port $(($port+100)) { 127.0.0.1; };
+       minimal-responses yes;
+       pid-file "../pdns-slave.pid";
+};
+
+key test {
+       algorithm $ALGORITHM;
+       secret "$KEY";
+};
+__EOF__
+
+       for zone in $(grep 'zone ' named.conf  | cut -f2 -d\")
+       do
+               rm -f $zone-slave
+
+               echo "" >> bind-slave.conf
+               echo "zone \"${zone}\" {" >> bind-slave.conf
+               echo "  type slave;" >> bind-slave.conf
+               echo "  file \"${zone}-slave\";" >> bind-slave.conf
+               if [ "${zone}" = "tsig.com" ]
+               then
+                       echo "  masters port $port { 127.0.0.1 key test; };" >> bind-slave.conf
+                       echo "  allow-transfer { key test; none; };" >> bind-slave.conf
+               else
+                       echo "  masters port $port { 127.0.0.1; };" >> bind-slave.conf
+               fi
+               echo "};" >> bind-slave.conf
+       done
+
+       port=$((port+100))
+
+       named -c bind-slave.conf -g &
+       sleep 20
diff --git a/regression-tests/ext/nsd-master b/regression-tests/ext/nsd-master
new file mode 100644 (file)
index 0000000..d8607e8
--- /dev/null
@@ -0,0 +1,123 @@
+nsdfix ()
+{
+       sed -e 's/"A very .*"/"shorter"/' < zones/test.com > zones/test.com.nsd
+       sed '/EUI/s/^/;/g' < zones/example.com > zones/example.com.nsd
+       sed -e '/testnonzone\.com\./s/^/;/g' -e '/NZTEST\.COM\.NET\./s/^/;/g' < zones/nztest.com > zones/nztest.com.nsd
+       sed -e '/DS\t44030/s/^/;/g' < zones/delegated.dnssec-parent.com > zones/delegated.dnssec-parent.com.nsd
+}
+
+tonsd ()
+{
+       cat > nsd.conf << __EOF__
+server:
+       ip-address: 127.0.0.1@$port
+       database: ./nsd.db
+       difffile: ./ixfr.db
+       xfrdfile: ./ixfr.state
+
+       zonesdir: ./zones
+       username: ""
+
+key:
+       name: test
+       algorithm: $ALGORITHM
+       secret: "$KEY"
+__EOF__
+
+       rm -f K*
+       rm -f zones/*.nsd
+
+       nsdfix
+
+       for zone in $(grep 'zone ' named.conf  | cut -f2 -d\")
+       do
+
+               if [ -f zones/$zone.nsd ]
+               then
+                       zonefile=zones/${zone}.nsd
+               else
+                       zonefile=zones/${zone}
+               fi
+
+               if [ "$1" != "unsigned" ]
+               then
+                       if [ ! "${zone: 0:16}" = "secure-delegated" ]
+                       then
+                               ksk=$(ldns-keygen -r /dev/urandom -a RSASHA256 -k $zone)
+                       else
+                               ksk="secure-delegated.dnssec-parent.com"
+                       fi
+                       zsk=$(ldns-keygen -r /dev/urandom -a RSASHA256 $zone)
+               fi
+
+               case $1 in
+                       nsec)
+                               ldns-signzone -f zones/${zone}.signed ${zonefile} $ksk $zsk
+                               ;;
+                       nsec3)
+                               ldns-signzone -n -a 1 -s abcd -t 1 -f zones/${zone}.signed ${zonefile} $ksk $zsk
+                               ;;
+                       nsec3-optout)
+                               ldns-signzone -n -p -a 1 -s abcd -t 1 -f zones/${zone}.signed ${zonefile} $ksk $zsk
+                               if [ "$zone" = "dnssec-parent.com" ]
+                               then
+                                       echo "insecure.dnssec-parent.com.       IN      NS      ns.insecure.dnssec-parent.com." >> zones/${zone}.signed
+                               fi
+                               ;;
+                       unsigned)
+                               cp ${zonefile} zones/${zone}.signed
+                               ;;
+                       *)
+                               echo 'tonsd called with wrong param'
+                               exit
+               esac
+
+               echo "" >> nsd.conf
+               echo "zone:" >> nsd.conf
+               echo "  name: \"${zone}\"" >> nsd.conf
+               echo "  zonefile: \"${zone}.signed\"" >> nsd.conf
+               if [ "${zone}" = "tsig.com" ]
+               then
+                       echo "  provide-xfr: 0.0.0.0/0 test" >> nsd.conf
+                       echo "  provide-xfr: ::0/0 test" >> nsd.conf
+               else
+                       echo "  provide-xfr: 0.0.0.0/0 NOKEY" >> nsd.conf
+                       echo "  provide-xfr: ::0/0 NOKEY" >> nsd.conf
+               fi
+       done
+       nsdc -c nsd.conf rebuild
+}
+
+case $context in
+       ext-nsd | ext-nsd-nsec | ext-nsd-nsec3 | ext-nsd-nsec3-optout)
+               case $context in
+                       ext-nsd)
+                               tonsd unsigned
+                               extracontexts="extnsd"
+                               skipreasons="nsd nodnssec nodyndns"
+                               ;;
+                       ext-nsd-nsec)
+                               tonsd nsec
+                               extracontexts="extnsd dnssec"
+                               skipreasons="nsd nodyndns"
+                               ;;
+                       ext-nsd-nsec3)
+                               tonsd nsec3
+                               extracontexts="extnsd dnssec nsec3"
+                               skipreasons="nsd nsec3 nodyndns"
+                               ;;
+                       ext-nsd-nsec3-optout)
+                               tonsd nsec3-optout
+                               extracontexts="extnsd dnssec nsec3 nsec3-optout"
+                               skipreasons="nsd optout nodyndns"
+                               ;;
+                       *)
+                               nocontext=yes
+               esac
+               nsd -c nsd.conf -P ../pdns.pid -d &
+               sleep 5
+               ;;
+
+       *)
+               nocontext=yes
+esac
diff --git a/regression-tests/ext/nsd-slave b/regression-tests/ext/nsd-slave
new file mode 100644 (file)
index 0000000..aa8b237
--- /dev/null
@@ -0,0 +1,47 @@
+       skipreasons="$skipreasons nsd"
+       context=$context-presigned
+       cat > nsd-slave.conf << __EOF__
+server:
+       ip-address: 127.0.0.1@$((port+100))
+       database: ./nsd-slave.db
+       difffile: ./ixfr-slave.db
+       xfrdfile: ./ixfr-slave.state
+       zonesdir: ./zones
+       username: ""
+
+key:
+       name: test
+       algorithm: $ALGORITHM
+       secret: "$KEY"
+__EOF__
+
+       rm -f ixfr-slave.db
+       rm -f ixfr-slave.state
+
+       for zone in $(grep 'zone ' named.conf  | cut -f2 -d\")
+       do
+               rm -f zones/$zone-slave
+
+               echo "" >> nsd-slave.conf
+               echo "zone:" >> nsd-slave.conf
+               echo "  name: \"${zone}\"" >> nsd-slave.conf
+               echo "  zonefile: \"${zone}-slave\"" >> nsd-slave.conf
+               if [ "${zone}" = "tsig.com" ]
+               then
+                       echo "  allow-notify: 127.0.0.1 test" >> nsd-slave.conf
+                       echo "  request-xfr: AXFR 127.0.0.1@$port test" >> nsd-slave.conf
+                       echo "  provide-xfr: 0.0.0.0/0 test" >> nsd-slave.conf
+                       echo "  provide-xfr: ::0/0 test" >> nsd-slave.conf
+               else
+                       echo "  allow-notify: 127.0.0.1 NOKEY" >> nsd-slave.conf
+                       echo "  request-xfr: AXFR 127.0.0.1@$port NOKEY" >> nsd-slave.conf
+                       echo "  provide-xfr: 0.0.0.0/0 NOKEY" >> nsd-slave.conf
+                       echo "  provide-xfr: ::0/0 NOKEY" >> nsd-slave.conf
+               fi
+       done
+
+       port=$((port+100))
+       nsdc -c nsd-slave.conf rebuild
+
+       nsd -c nsd-slave.conf -P ../pdns-slave.pid -d &
+       sleep 20
index aecf40956317739715d4ba1aced458f8cc056cd3..c1ca0849012255729ae786072c5791fdc7738b2f 100644 (file)
@@ -1,5 +1,5 @@
 options {
-       directory "./";
+       directory "./zones/";
        recursion no;
        listen-on port 5300 {
                127.0.0.1;
@@ -9,17 +9,17 @@ options {
 };
 zone "example.com"{
        type master;
-       file "./example.com";
+       file "example.com";
 };
 
 zone "test.com"{
        type master;
-       file "./test.com";
+       file "test.com";
 };
 
 zone "test.dyndns" {
        type master;
-       file "./test.dyndns";
+       file "test.dyndns";
        allow-update {
                127.0.0.0/8;
        };
@@ -27,40 +27,40 @@ zone "test.dyndns" {
 
 zone "wtest.com"{
        type master;
-       file "./wtest.com";
+       file "wtest.com";
 };
 
 zone "nztest.com"{
        type master;
-       file "./nztest.com";
+       file "nztest.com";
 };
 
 zone "dnssec-parent.com"{
        type master;
-       file "./dnssec-parent.com";
+       file "dnssec-parent.com";
 };
 
 zone "delegated.dnssec-parent.com"{
        type master;
-       file "./delegated.dnssec-parent.com";
+       file "delegated.dnssec-parent.com";
 };
 
 zone "secure-delegated.dnssec-parent.com"{
        type master;
-       file "./secure-delegated.dnssec-parent.com";
+       file "secure-delegated.dnssec-parent.com";
 };
 
 zone "minimal.com"{
        type master;
-       file "./minimal.com";
+       file "minimal.com";
 };
 
 zone "tsig.com"{
        type master;
-       file "./tsig.com";
+       file "tsig.com";
 };
 
 zone "stest.com"{
        type master;
-       file "./stest.com";
+       file "stest.com";
 };
index 20883702a431d1beab5095047756fff2ab33e142..e98e8638258984d4f794695024d7519863991afb 100755 (executable)
@@ -15,184 +15,6 @@ export KEY
 
 trap "kill_process 2" EXIT INT TERM
 
-nsdfix ()
-{
-       sed -e 's/"A very .*"/"shorter"/' < test.com > test.com.nsd
-       sed '/EUI/s/^/;/g' < example.com > example.com.nsd
-       sed -e '/testnonzone\.com\./s/^/;/g' -e '/NZTEST\.COM\.NET\./s/^/;/g' < nztest.com > nztest.com.nsd
-}
-
-bindfix ()
-{
-       sed -e 's/"A very .*"/"shorter"/' < test.com > test.com.bind
-       sed -e '/EUI/s/^/;/g' -e '/host\.\*\.sub/s/^/;/g' < example.com > example.com.bind
-}
-
-tonsd ()
-{
-       cat > nsd.conf << __EOF__
-server:
-       ip-address: 127.0.0.1@$port
-       database: ./nsd.db
-       difffile: ./ixfr.db
-       xfrdfile: ./ixfr.state
-
-       zonesdir: .
-       username: ""
-
-key:
-       name: test
-       algorithm: $ALGORITHM
-       secret: "$KEY"
-__EOF__
-
-       rm -f K*
-       rm -f *.nsd
-
-       nsdfix
-
-       for zone in $(grep zone named.conf  | cut -f2 -d\")
-       do
-
-               if [ -f $zone.nsd ]
-               then
-                       zonefile=${zone}.nsd
-               else
-                       zonefile=${zone}
-               fi
-
-               if [ "$1" != "unsigned" ]
-               then
-                       if [ ! "${zone: 0:16}" = "secure-delegated" ]
-                       then
-                               ksk=$(ldns-keygen -r /dev/urandom -a RSASHA256 -k $zone)
-                       else
-                               ksk="secure-delegated.dnssec-parent.com"
-                       fi
-                       zsk=$(ldns-keygen -r /dev/urandom -a RSASHA256 $zone)
-               fi
-
-               case $1 in
-                       nsec)
-                               ldns-signzone -f ${zone}.signed ${zonefile} $ksk $zsk
-                               ;;
-                       nsec3)
-                               ldns-signzone -n -a 1 -s abcd -t 1 -f ${zone}.signed ${zonefile} $ksk $zsk
-                               ;;
-                       nsec3-optout)
-                               ldns-signzone -n -p -a 1 -s abcd -t 1 -f ${zone}.signed ${zonefile} $ksk $zsk
-                               if [ "$zone" = "dnssec-parent.com" ]
-                               then
-                                       echo "insecure.dnssec-parent.com.       IN      NS      ns.insecure.dnssec-parent.com." >> ${zone}.signed
-                               fi
-                               ;;
-                       unsigned)
-                               cp ${zonefile} ${zone}.signed
-                               ;;
-                       *)
-                               echo 'tonsd called with wrong param'
-                               exit
-               esac
-
-               echo "" >> nsd.conf
-               echo "zone:" >> nsd.conf
-               echo "  name: \"${zone}\"" >> nsd.conf
-               echo "  zonefile: \"${zone}.signed\"" >> nsd.conf
-               if [ "${zone}" = "tsig.com" ]
-               then
-                       echo "  provide-xfr: 0.0.0.0/0 test" >> nsd.conf
-                       echo "  provide-xfr: ::0/0 test" >> nsd.conf
-               else
-                       echo "  provide-xfr: 0.0.0.0/0 NOKEY" >> nsd.conf
-                       echo "  provide-xfr: ::0/0 NOKEY" >> nsd.conf
-               fi
-       done
-       nsdc -c nsd.conf rebuild
-}
-
-
-
-tobind ()
-{
-       cat > bind.conf << __EOF__
-options {
-       dnssec-enable yes;
-       listen-on port $port { 127.0.0.1; };
-       minimal-responses yes;
-       pid-file "pdns.pid";
-};
-
-key test {
-       algorithm $ALGORITHM;
-       secret "$KEY";
-};
-__EOF__
-
-       rm -f K*
-       rm -f *.bind
-
-       bindfix
-
-       for zone in $(grep zone named.conf  | cut -f2 -d\")
-       do
-
-               if [ ! -f $zone.bind ]
-               then
-                       cp $zone $zone.bind
-               fi
-
-               if [ "$1" != "unsigned" ]
-               then
-                       if [ ! "${zone: 0:16}" = "secure-delegated" ]
-                       then
-                               ksk=$(dnssec-keygen -r/dev/urandom -f KSK -a RSASHA256 -b 2048 -n ZONE $zone)
-                       else
-                               cp secure-delegated.dnssec-parent.com.private  Ksecure-delegated.dnssec-parent.com.+008+54319.private
-                               cp secure-delegated.dnssec-parent.com.key  Ksecure-delegated.dnssec-parent.com.+008+54319.key
-                               ksk="Ksecure-delegated.dnssec-parent.com.+008+54319"
-                       fi
-                       zsk=$(dnssec-keygen -r/dev/urandom -a RSASHA256 -b 1024 -n ZONE $zone)
-
-                       echo "\$include $ksk.key ; KSK" >> $zone.bind
-                       echo "\$include $zsk.key ; ZSK" >> $zone.bind
-               fi
-
-               case $1 in
-                       nsec)
-                               dnssec-signzone -o $zone -f $zone.signed $zone.bind
-                               ;;
-                       nsec3)
-                               dnssec-signzone -3 abcd -H 1 -o $zone -f $zone.signed $zone.bind
-                               ;;
-                       nsec3-optout)
-                               dnssec-signzone -3 abcd -H 1 -A -o $zone -f $zone.signed $zone.bind
-                               if [ "$zone" = "dnssec-parent.com" ]
-                               then
-                                       echo "insecure.dnssec-parent.com.       IN      NS      ns.insecure.dnssec-parent.com." >> ${zone}.signed
-                               fi
-                               ;;
-                       unsigned)
-                               cp ${zone}.bind ${zone}.signed
-                               ;;
-                       *)
-                               echo 'tobind called with wrong param'
-                               exit
-               esac
-
-               echo "" >> bind.conf
-               echo "zone \"${zone}\" {" >> bind.conf
-               echo "  type master;" >> bind.conf
-               if [ "${zone}" = "tsig.com" ]
-               then
-                       echo "  allow-transfer { key test; none; };" >> bind.conf
-               fi
-               echo "  file \"${zone}.signed\";" >> bind.conf
-               echo "};" >> bind.conf
-       done
-}
-
-
-
 tosql ()
 {
        ${MAKE} -C ../pdns zone2sql > /dev/null
@@ -327,7 +149,7 @@ cachettl=$4
 [ -z "$cachettl" ] && cachettl=0
 spectest=$5
 
-testsdir=.
+testsdir=./tests
 
 if [ "$port" = help ] || [ "$context" = help ]
 then
@@ -371,11 +193,11 @@ fi
 
 ${MAKE} -C ../pdns sdig nsec3dig || exit
 # Copy original zones because the test might modify them (well only the dyndns stuff, but let's make this work for others as well)
-for zone in $(grep zone named.conf  | cut -f2 -d\")
+for zone in $(grep 'zone ' named.conf  | cut -f2 -d\")
 do
-       if [ -f $zone.orig ]
+       if [ -f zones/$zone.orig ]
        then
-               cp -f $zone.orig $zone
+               cp -f zones/$zone.orig zones/$zone
        fi
 done
 
@@ -421,691 +243,9 @@ else
   skiplua=1
 fi
 
-case $context in
-               ext-nsd | ext-nsd-nsec | ext-nsd-nsec3 | ext-nsd-nsec3-optout)
-                       case $context in
-                               ext-nsd)
-                                       tonsd unsigned
-                                       extracontexts="extnsd"
-                                       skipreasons="nsd nodnssec nodyndns"
-                                       ;;
-                               ext-nsd-nsec)
-                                       tonsd nsec
-                                       extracontexts="extnsd dnssec"
-                                       skipreasons="nsd nodyndns"
-                                       ;;
-                               ext-nsd-nsec3)
-                                       tonsd nsec3
-                                       extracontexts="extnsd dnssec nsec3"
-                                       skipreasons="nsd nsec3 nodyndns"
-                                       ;;
-                               ext-nsd-nsec3-optout)
-                                       tonsd nsec3-optout
-                                       extracontexts="extnsd dnssec nsec3 nsec3-optout"
-                                       skipreasons="nsd optout nodyndns"
-                                       ;;
-                       esac
-                       nsd -c nsd.conf -P pdns.pid -d &
-                       sleep 5
-                       ;;
-
-               ext-bind | ext-bind-nsec | ext-bind-nsec3 | ext-bind-nsec3-optout)
-                       case $context in
-                               ext-bind)
-                                       tobind unsigned
-                                       extracontexts="extbind"
-                                       skipreasons="bind nodnssec nodyndns"
-                                       ;;
-                               ext-bind-nsec)
-                                       tobind nsec
-                                       extracontexts="extbind dnssec"
-                                       skipreasons="bind nodyndns"
-                                       ;;
-                               ext-bind-nsec3)
-                                       tobind nsec3
-                                       extracontexts="extbind dnssec nsec3"
-                                       skipreasons="bind nsec3 nodyndns"
-                                       ;;
-                               ext-bind-nsec3-optout)
-                                       tobind nsec3-optout
-                                       extracontexts="extbind dnssec nsec3 nsec3-optout"
-                                       skipreasons="bind optout nodyndns"
-                                       ;;
-                       esac
-                       named -c bind.conf -g &
-                       sleep 5
-                       ;;
-
-               bind)
-                       $RUNWRAPPER $PDNS --daemon=no --local-port=$port --socket-dir=./  \
-                               --no-shuffle --launch=bind --bind-config=./named.conf                \
-                               --send-root-referral    \
-                               --allow-2136-from=127.0.0.0/8 --experimental-rfc2136=yes \
-                               --cache-ttl=$cachettl --no-config \
-                               --bind-ignore-broken-records=yes &
-                       skipreasons="nodnssec nodyndns"
-                       bindwait
-                       ;;
-
-               bind-dnssec | bind-dnssec-nsec3 | bind-dnssec-nsec3-optout | bind-dnssec-nsec3-narrow)
-                       rm -f dnssec.sqlite3
-                       ../pdns/pdnssec --config-dir=. create-bind-db dnssec.sqlite3
-
-                       for zone in $(grep zone named.conf  | cut -f2 -d\")
-                       do
-                               securezone $zone
-                               if [ $context = bind-dnssec-nsec3 ] || [ $context = bind-dnssec-nsec3-optout ]
-                               then
-                                       ../pdns/pdnssec --config-dir=. set-nsec3 $zone "1 $optout 1 abcd" 2>&1
-                               elif [ $context = bind-dnssec-nsec3-narrow ]
-                               then
-                                       ../pdns/pdnssec --config-dir=. set-nsec3 $zone '1 1 1 abcd' narrow 2>&1
-                               fi
-                       done
-
-                       if [ $context = bind-dnssec-nsec3 ]
-                       then
-                               extracontexts="bind dnssec nsec3"
-                               skipreasons="nsec3 nodyndns"
-                       elif [ $context = bind-dnssec-nsec3-optout ]
-                       then
-                               extracontexts="bind dnssec nsec3 nsec3-optout"
-                               skipreasons="optout nodyndns"
-                       elif [ $context = bind-dnssec-nsec3-narrow ]
-                       then
-                               extracontexts="bind dnssec narrow"
-                               skipreasons="narrow nodyndns"
-                       else
-                               extracontexts="bind dnssec"
-                               skipreasons="nodyndns"
-                       fi
-
-                       ../pdns/pdnssec --config-dir=. import-tsig-key test $ALGORITHM $KEY
-                       ../pdns/pdnssec --config-dir=. activate-tsig-key tsig.com test master
-
-                       $RUNWRAPPER $PDNS --daemon=no --local-port=$port --socket-dir=./ \
-                               --no-shuffle --launch=bind --bind-config=./named.conf \
-                               --bind-dnssec-db=./dnssec.sqlite3 \
-                               --send-root-referral \
-                               --allow-2136-from=127.0.0.0/8 --experimental-rfc2136=yes --direct-dnskey=yes \
-                               --cache-ttl=$cachettl --no-config \
-                               --bind-ignore-broken-records=yes $lua_prequery &
-                       bindwait
-                       ;;
-
-               gmysql-nodnssec)
-                       [ -z "$GMYSQLDB" ] && GMYSQLDB=pdnstest
-                       [ -z "$GMYSQLUSER" ] && GMYSQLUSER=root
-                       [ -z "$GMYSQLHOST" ] && GMYSQLHOST=localhost
-                       [ -z "$GMYSQLPASSWD" ] && GMYSQLPASSWD=''
-
-                       mysqladmin --user="$GMYSQLUSER" --password="$GMYSQLPASSWD" --host="$GMYSQLHOST" --force drop "$GMYSQLDB" \
-                               || echo ignoring mysqladmin drop failure
-                       mysqladmin --user="$GMYSQLUSER" --password="$GMYSQLPASSWD" --host="$GMYSQLHOST" create "$GMYSQLDB"
-                       mysql --user="$GMYSQLUSER" --password="$GMYSQLPASSWD" --host="$GMYSQLHOST" \
-                               "$GMYSQLDB" < ../modules/gmysqlbackend/no-dnssec.schema.mysql.sql
-
-                       tosql gmysql | mysql --user="$GMYSQLUSER" --password="$GMYSQLPASSWD" --host="$GMYSQLHOST" \
-                               "$GMYSQLDB"
-
-                       cat > pdns-gmysql.conf << __EOF__
-launch=gmysql
-gmysql-dbname=$GMYSQLDB
-gmysql-user=$GMYSQLUSER
-gmysql-host=$GMYSQLHOST
-gmysql-password=$GMYSQLPASSWD
-__EOF__
-
-                       for zone in $(grep zone named.conf  | cut -f2 -d\")
-                       do
-                               ../pdns/pdnssec --config-dir=. --config-name=gmysql rectify-zone $zone 2>&1
-                       done
-
-                       $RUNWRAPPER $PDNS --daemon=no --local-port=$port --socket-dir=./  \
-                               --no-shuffle --launch=gmysql \
-                               --master --send-root-referral \
-                               --allow-2136-from=127.0.0.0/8 --experimental-rfc2136=yes --direct-dnskey=yes \
-                               --cache-ttl=$cachettl --no-config \
-                               --gmysql-dbname="$GMYSQLDB" \
-                               --gmysql-user="$GMYSQLUSER" \
-                               --gmysql-host="$GMYSQLHOST" \
-                               --gmysql-password="$GMYSQLPASSWD" &
-                       skipreasons=nodnssec
-                       ;;
-               mydns)
-                       [ -z "$MYDNSDB" ] && MYDNSDB=pdnstest
-                       [ -z "$MYDNSUSER" ] && MYDNSUSER=root
-                       [ -z "$MYDNSHOST" ] && MYDNSHOST=localhost
-                       [ -z "$MYDNSPASSWD" ] && MYDNSPASSWD=''
-
-                       mysqladmin --user="$MYDNSUSER" --password="$MYDNSPASSWD" --host="$MYDNSHOST" --force drop "$MYDNSDB" \
-                               || echo ignoring mysqladmin drop failure
-                       mysqladmin --user="$MYDNSUSER" --password="$MYDNSPASSWD" --host="$MYDNSHOST" create "$MYDNSDB"
-                       mysql --user="$MYDNSUSER" --password="$MYDNSPASSWD" --host="$MYDNSHOST" \
-                               "$MYDNSDB" < ../modules/mydnsbackend/schema.sql
-
-                       tosql mydns | grep -v 'double\.example\.com' | mysql --user="$MYDNSUSER" --password="$MYDNSPASSWD" --host="$MYDNSHOST" \
-                               "$MYDNSDB"
-
-                       cat > pdns-mydns.conf << __EOF__
-launch=mydns
-mydns-dbname=$MYDNSDB
-mydns-user=$MYDNSUSER
-mydns-host=$MYDNSHOST
-mydns-password=$MYDNSPASSWD
-__EOF__
-                       $RUNWRAPPER $PDNS --daemon=no --local-port=$port --socket-dir=./  \
-                               --no-shuffle --launch=mydns \
-                               --master --send-root-referral \
-                               --cache-ttl=0 --no-config \
-                               --mydns-rr-active=no --mydns-soa-active=no --mydns-use-minimal-ttl=no \
-                               --mydns-dbname="$MYDNSDB" \
-                               --mydns-user="$MYDNSUSER" \
-                               --mydns-host="$MYDNSHOST" \
-                               --mydns-password="$MYDNSPASSWD" &
-                       skipreasons="nodnssec noent nodyndns"
-                       ;;
-
-               gmysql | gmysql-nsec3 | gmysql-nsec3-optout |gmysql-nsec3-narrow)
-                       [ -z "$GMYSQLDB" ] && GMYSQLDB=pdnstest
-                       [ -z "$GMYSQLUSER" ] && GMYSQLUSER=root
-                       [ -z "$GMYSQLHOST" ] && GMYSQLHOST=localhost
-                       [ -z "$GMYSQLPASSWD" ] && GMYSQLPASSWD=''
-
-                       mysqladmin --user="$GMYSQLUSER" --password="$GMYSQLPASSWD" --host="$GMYSQLHOST" --force drop "$GMYSQLDB" \
-                               || echo ignoring mysqladmin drop failure
-                       mysqladmin --user="$GMYSQLUSER" --password="$GMYSQLPASSWD" --host="$GMYSQLHOST" create "$GMYSQLDB"
-                       mysql --user="$GMYSQLUSER" --password="$GMYSQLPASSWD" --host="$GMYSQLHOST" \
-                               "$GMYSQLDB" < ../modules/gmysqlbackend/no-dnssec.schema.mysql.sql
-                       mysql --user="$GMYSQLUSER" --password="$GMYSQLPASSWD" --host="$GMYSQLHOST" \
-                               "$GMYSQLDB" < ../modules/gmysqlbackend/dnssec.schema.mysql.sql
-
-                       tosql gmysql | mysql --user="$GMYSQLUSER" --password="$GMYSQLPASSWD" --host="$GMYSQLHOST" \
-                               "$GMYSQLDB"
-
-                       cat > pdns-gmysql.conf << __EOF__
-launch=gmysql
-gmysql-dbname=$GMYSQLDB
-gmysql-user=$GMYSQLUSER
-gmysql-host=$GMYSQLHOST
-gmysql-password=$GMYSQLPASSWD
-gmysql-dnssec
-__EOF__
-                       for zone in $(grep zone named.conf  | cut -f2 -d\")
-                       do
-                               securezone $zone gmysql
-                               if [ $context = gmysql-nsec3 ] || [ $context = gmysql-nsec3-optout ]
-                               then
-                                       ../pdns/pdnssec --config-dir=. --config-name=gmysql set-nsec3 $zone "1 $optout 1 abcd" 2>&1
-                                       ../pdns/pdnssec --config-dir=. --config-name=gmysql rectify-zone $zone 2>&1
-                               elif [ $context = gmysql-nsec3-narrow ]
-                               then
-                                       ../pdns/pdnssec --config-dir=. --config-name=gmysql set-nsec3 $zone '1 1 1 abcd' narrow 2>&1
-                                       ../pdns/pdnssec --config-dir=. --config-name=gmysql rectify-zone $zone 2>&1
-                               fi
-                               
-
-                       done
-
-                       ../pdns/pdnssec --config-dir=. --config-name=gmysql import-tsig-key test $ALGORITHM $KEY
-                       ../pdns/pdnssec --config-dir=. --config-name=gmysql activate-tsig-key tsig.com test master
-
-                       $RUNWRAPPER $PDNS --daemon=no --local-port=$port --socket-dir=./  \
-                               --no-shuffle --launch --launch+=random --launch+=gmysql --launch+=random --gmysql-dnssec \
-                               --send-root-referral \
-                               --allow-2136-from=127.0.0.0/8 --experimental-rfc2136=yes --direct-dnskey=yes \
-                               --cache-ttl=$cachettl --no-config \
-                               --gmysql-dbname="$GMYSQLDB" \
-                               --gmysql-user="$GMYSQLUSER" \
-                               --gmysql-host="$GMYSQLHOST" \
-                               --gmysql-password="$GMYSQLPASSWD" $lua_prequery &
-                       if [ $context = gmysql-nsec3 ]
-                       then
-                               extracontexts="dnssec nsec3"
-                               skipreasons="nsec3"
-                       elif [ $context = gmysql-nsec3-optout ]
-                       then
-                               extracontexts="dnssec nsec3 nsec3-optout"
-                               skipreasons="optout"
-                       elif [ $context = gmysql-nsec3-narrow ]
-                       then
-                               extracontexts="dnssec narrow"
-                               skipreasons="narrow"
-                       else
-                               extracontexts="dnssec"
-                       fi
-
-                       ;;      
-               gpgsql | gpgsql-nsec3 | gpgsql-nsec3-optout)
-                       [ -z "$GPGSQLDB" ] && GPGSQLDB=pdnstest
-                       [ -z "$GPGSQLUSER" ] && GPGSQLUSER=$(whoami)
-
-                       dropdb --user="$GPGSQLUSER" "$GPGSQLDB" || echo ignoring dropdb failure
-                       createdb --user="$GPGSQLUSER" "$GPGSQLDB" || echo ignoring createdb failure # FIXME
-                       psql --user="$GPGSQLUSER" "$GPGSQLDB" < ../modules/gpgsqlbackend/no-dnssec.schema.pgsql.sql
-                       psql --user="$GPGSQLUSER" "$GPGSQLDB" < ../modules/gpgsqlbackend/dnssec.schema.pgsql.sql
-
-                       tosql gpgsql | psql --user="$GPGSQLUSER" "$GPGSQLDB" 2>&1 | uniq -c
-
-                       cat > pdns-gpgsql.conf << __EOF__
-launch=gpgsql
-gpgsql-dbname=$GPGSQLDB
-gpgsql-user=$GPGSQLUSER
-gpgsql-dnssec
-__EOF__
-                       for zone in $(grep zone named.conf  | cut -f2 -d\")
-                       do
-                               securezone $zone gpgsql
-                               if [ $context = gpgsql-nsec3 ] || [ $context = gpgsql-nsec3-optout ]
-                               then
-                                       ../pdns/pdnssec --config-dir=. --config-name=gpgsql set-nsec3 $zone "1 $optout 1 abcd" 2>&1
-                                       ../pdns/pdnssec --config-dir=. --config-name=gpgsql rectify-zone $zone 2>&1
-                               fi
-                       done
-
-                       ../pdns/pdnssec --config-dir=. --config-name=gpgsql import-tsig-key test $ALGORITHM $KEY
-                       ../pdns/pdnssec --config-dir=. --config-name=gpgsql activate-tsig-key tsig.com test master
-
-                       $RUNWRAPPER $PDNS --daemon=no --local-port=$port --socket-dir=./  \
-                               --no-shuffle --launch=gpgsql --gpgsql-dnssec \
-                               --send-root-referral \
-                               --allow-2136-from=127.0.0.0/8 --experimental-rfc2136=yes \
-                               --cache-ttl=$cachettl --no-config \
-                               --gpgsql-dbname="$GPGSQLDB" \
-                               --gpgsql-user="$GPGSQLUSER" $lua_prequery &
-                       if [ $context = gpgsql-nsec3 ]
-                       then
-                               extracontexts="dnssec nsec3"
-                       elif [ $context = gpgsql-nsec3-optout ]
-                       then
-                               extracontexts="dnssec nsec3 nsec3-optout"
-                       elif [ $context = gpgsql-nsec3-narrow ]
-                       then
-                               extracontexts="dnssec narrow"
-                       else
-                               extracontexts="dnssec"
-                       fi
-                       skipreasons="nodyndns"
-
-                       ;;
-               gpgsql-nodnssec)
-                       [ -z "$GPGSQLDB" ] && GPGSQLDB=pdnstest
-                       [ -z "$GPGSQLUSER" ] && GPGSQLUSER=$(whoami)
-
-                       dropdb --user="$GPGSQLUSER" "$GPGSQLDB" || echo ignoring mysqladmin drop failure
-                       createdb --user="$GPGSQLUSER" "$GPGSQLDB"       || echo ignoring mysqladmin drop failure
-                       psql --user="$GPGSQLUSER" "$GPGSQLDB" < ../modules/gpgsqlbackend/no-dnssec.schema.pgsql.sql
-
-                       tosql gpgsql | psql --user="$GPGSQLUSER" "$GPGSQLDB" 2>&1 | uniq -c
-
-                       cat > pdns-gpgsql.conf << __EOF__
-launch=gpgsql
-gpgsql-dbname=$GPGSQLDB
-gpgsql-user=$GPGSQLUSER
-__EOF__
-
-                       for zone in $(grep zone named.conf  | cut -f2 -d\")
-                       do
-                               ../pdns/pdnssec --config-dir=. --config-name=gpgsql rectify-zone $zone 2>&1
-                       done
-
-                       $RUNWRAPPER $PDNS --daemon=no --local-port=$port --socket-dir=./  \
-                               --no-shuffle --launch=gpgsql \
-                               --send-root-referral \
-                               --allow-2136-from=127.0.0.0/8 --experimental-rfc2136=yes \
-                               --cache-ttl=$cachettl --no-config \
-                               --gpgsql-dbname="$GPGSQLDB" \
-                               --gpgsql-user="$GPGSQLUSER" &
-                       skipreasons="nodnssec nodyndns"
-                       ;;      
-
-
-               gsqlite3-nodnssec)
-                       rm -f pdns.sqlite3
-                       sqlite3 pdns.sqlite3 < ../modules/gsqlite3backend/no-dnssec.schema.sqlite3.sql
-                       tosql gsqlite | sqlite3 pdns.sqlite3
-                       echo ANALYZE\; | sqlite3 pdns.sqlite3
-
-                       cat > pdns-gsqlite3.conf << __EOF__
-launch=gsqlite3
-gsqlite3-database=pdns.sqlite3
-__EOF__
-                       for zone in $(grep zone named.conf  | cut -f2 -d\")
-                       do
-                               ../pdns/pdnssec --config-dir=. --config-name=gsqlite3 rectify-zone $zone 2>&1
-                       done
-
-                       $RUNWRAPPER $PDNS --daemon=no --local-port=$port --socket-dir=./  \
-                               --no-shuffle --launch=gsqlite3 \
-                               --send-root-referral \
-                               --allow-2136-from=127.0.0.0/8 --experimental-rfc2136=yes \
-                               --cache-ttl=$cachettl --no-config \
-                               --gsqlite3-database=pdns.sqlite3 &
-                       skipreasons="nodnssec nodyndns"
-
-                       ;;
-               opendbx-sqlite3)
-                       rm -f pdns-opendbx.sqlite3
-                       sqlite3 pdns-opendbx.sqlite3 < ../modules/gsqlite3backend/no-dnssec.schema.sqlite3.sql
-                       tosql gsqlite | sqlite3 pdns-opendbx.sqlite3
-                       sqlite3 pdns-opendbx.sqlite3 "ALTER TABLE domains ADD status CHARACTER(1) NOT NULL DEFAULT 'A'; \
-                               ALTER TABLE domains ADD auto_serial INTEGER DEFAULT 0;"
-                       echo ANALYZE\; | sqlite3 pdns-opendbx.sqlite3
-
-                       $RUNWRAPPER $PDNS --daemon=no --local-port=$port --socket-dir=./  \
-                               --no-shuffle --launch=opendbx \
-                               --send-root-referral \
-                               --cache-ttl=$cachettl --no-config \
-                               --opendbx-backend=sqlite3 --opendbx-host-read=./ --opendbx-host-write=./ \
-                               --opendbx-database=pdns-opendbx.sqlite3 &
-                       skipreasons="nodnssec noent nodyndns"
-
-                       ;;
-               gsqlite3 | gsqlite3-nsec3 | gsqlite3-nsec3-optout)
-                       rm -f pdns.sqlite3
-                       sqlite3 pdns.sqlite3 < ../modules/gsqlite3backend/no-dnssec.schema.sqlite3.sql
-                       sqlite3 pdns.sqlite3 < ../modules/gsqlite3backend/dnssec.schema.sqlite3.sql
-                       tosql gsqlite | sqlite3 pdns.sqlite3
-                       echo ANALYZE\; | sqlite3 pdns.sqlite3
-
-                       cat > pdns-gsqlite3.conf << __EOF__
-launch=gsqlite3
-gsqlite3-database=pdns.sqlite3
-gsqlite3-dnssec
-__EOF__
-                       for zone in $(grep zone named.conf  | cut -f2 -d\")
-                       do
-                               securezone $zone gsqlite3
-                               if [ $context = gsqlite3-nsec3 ] || [ $context = gsqlite3-nsec3-optout ]
-                               then
-                                       ../pdns/pdnssec --config-dir=. --config-name=gsqlite3 set-nsec3 $zone "1 $optout 1 abcd" 2>&1
-                                       ../pdns/pdnssec --config-dir=. --config-name=gsqlite3 rectify-zone $zone 2>&1
-                               fi
-                       done
-
-                       ../pdns/pdnssec --config-dir=. --config-name=gsqlite3 import-tsig-key test $ALGORITHM $KEY
-                       ../pdns/pdnssec --config-dir=. --config-name=gsqlite3 activate-tsig-key tsig.com test master
-
-                       $RUNWRAPPER $PDNS --daemon=no --local-port=$port --socket-dir=./  \
-                               --no-shuffle --launch=gsqlite3 --gsqlite3-dnssec \
-                               --send-root-referral \
-                               --allow-2136-from=127.0.0.0/8 --experimental-rfc2136=yes \
-                               --cache-ttl=$cachettl --no-config \
-                               --gsqlite3-database=pdns.sqlite3 $lua_prequery &
-                       if [ $context = gsqlite3-nsec3 ]
-                       then
-                               extracontexts="dnssec nsec3"
-                       elif [ $context = gsqlite3-nsec3-optout ]
-                       then
-                               extracontexts="dnssec nsec3 nsec3-optout"
-                       else
-                               extracontexts="dnssec"
-                       fi
-                       skipreasons="nodyndns"
-                       ;;
-
-
-               goracle-nodnssec | goracle | goracle-nsec3 | goracle-nsec3-optout)
-                       [ -z "$GORACLEUSER" ] && GORACLEUSER=pdns
-                       [ -z "$GORACLEPASSWD" ] && GORACLEPASSWD=pdns
-
-                       echo "START ../modules/goraclebackend/goracle-drop-schema;" | sqlplus -S $GORACLEUSER/$GORACLEPASSWD@xe > goracle.log
-                       echo "START ../modules/goraclebackend/goracle-schema;" | sqlplus -S $GORACLEUSER/$GORACLEPASSWD@xe >> goracle.log
-                       tosql goracle | sqlplus -S $GORACLEUSER/$GORACLEPASSWD@xe >> goracle.log
+source backends/common
 
-                       cat > pdns-goracle.conf << __EOF__
-launch=goracle
-goracle-home=$ORACLE_HOME
-goracle-sid=$ORACLE_SID
-goracle-nls-lang=$NLS_LANG
-
-goracle-tnsname=xe
-goracle-user=$GORACLEUSER
-goracle-password=$GORACLEPASSWD
-__EOF__
-
-                       if [ $context != goracle-nodnssec ]
-                       then
-                               echo "goracle-dnssec" >> pdns-goracle.conf
-                               ../pdns/pdnssec --config-dir=. --config-name=goracle import-tsig-key test $ALGORITHM $KEY
-                               ../pdns/pdnssec --config-dir=. --config-name=goracle activate-tsig-key tsig.com test master
-                       fi
-
-                       for zone in $(grep zone named.conf  | cut -f2 -d\")
-                       do
-                               if [ $context != goracle-nodnssec ]
-                               then
-                                       securezone $zone goracle
-                                       if [ $context = goracle-nsec3 ] || [ $context = goracle-nsec3-optout ]
-                                       then
-                                               ../pdns/pdnssec --config-dir=. --config-name=goracle set-nsec3 $zone "1 $optout 1 abcd" 2>&1
-                                               ../pdns/pdnssec --config-dir=. --config-name=goracle rectify-zone $zone 2>&1
-                                       fi
-                               else
-                                       ../pdns/pdnssec --config-dir=. --config-name=goracle rectify-zone $zone 2>&1
-                               fi
-                       done
-
-                       $RUNWRAPPER $PDNS --daemon=no --local-port=$port --config-dir=. \
-                               --config-name=goracle --socket-dir=./ --no-shuffle \
-                               --send-root-referral \
-                               --allow-2136-from=127.0.0.0/8 --experimental-rfc2136=yes \
-                               --cache-ttl=$cachettl $lua_prequery &
-
-                       skipreasons="nodyndns"
-                       if [ $context = goracle-nsec3 ]
-                       then
-                               extracontexts="dnssec nsec3"
-                       elif [ $context = goracle-nsec3-optout ]
-                       then
-                               extracontexts="dnssec nsec3 nsec3-optout"
-                       elif [ $context = goracle-nodnssec ]
-                       then
-                               skipreasons="nodnssec nodyndns"
-                       else
-                               extracontexts="dnssec"
-                       fi
-                       ;;
-
-
-               oracle-nodnssec | oracle | oracle-nsec3)
-                       [ -z "$ORACLEUSER" ] && ORACLEUSER=pdns
-                       [ -z "$ORACLEPASSWD" ] && ORACLEPASSWD=pdns
-
-                       echo "START ../modules/oraclebackend/dropschema;" | sqlplus -S $ORACLEUSER/$ORACLEPASSWD@xe > oracle.log
-                       echo "START ../modules/oraclebackend/schema;" | sqlplus -S $ORACLEUSER/$ORACLEPASSWD@xe >> oracle.log
-                       ../pdns/zone2sql --oracle | grep -v 'INSERT INTO Records' | sqlplus -S $ORACLEUSER/$ORACLEPASSWD@xe >> oracle.log
-                       ../pdns/zone2sql --oracle | grep " 'SOA', " | sqlplus -S $ORACLEUSER/$ORACLEPASSWD@xe >> oracle.log
-
-                       cat > pdns-oracle.conf << __EOF__
-launch=oracle
-oracle-home=$ORACLE_HOME
-oracle-sid=$ORACLE_SID
-oracle-nls-lang=$NLS_LANG
-
-oracle-pool-database=xe
-oracle-pool-username=$ORACLEUSER
-oracle-pool-password=$ORACLEPASSWD
-oracle-master-database=xe
-oracle-master-username=$ORACLEUSER
-oracle-master-password=$ORACLEPASSWD
-__EOF__
-
-                       if [ $context != oracle-nodnssec ]
-                       then
-                               echo "oracle-dnssec" >> pdns-oracle.conf
-                               ../pdns/pdnssec --config-dir=. --config-name=oracle import-tsig-key test $ALGORITHM $KEY
-                               ../pdns/pdnssec --config-dir=. --config-name=oracle activate-tsig-key tsig.com test master
-                       fi
-
-                       if [ $context != oracle-nodnssec ]
-                       then
-                               for zone in $(grep zone named.conf  | cut -f2 -d\")
-                               do
-                                       securezone $zone oracle
-                                       if [ $context = oracle-nsec3 ]
-                                       then
-                                               ../pdns/pdnssec --config-dir=. --config-name=oracle set-nsec3 $zone "1 0 1 abcd" 2>&1
-                                       fi
-                               done
-                       fi
-
-                       echo "TRUNCATE TABLE records;" | sqlplus -S $ORACLEUSER/$ORACLEPASSWD@xe >> oracle.log
-                       ../pdns/zone2sql --oracle | grep -v 'INSERT INTO Zones' | sqlplus -S $ORACLEUSER/$ORACLEPASSWD@xe >> oracle.log
-
-                       $RUNWRAPPER $PDNS --daemon=no --local-port=$port --config-dir=. \
-                               --config-name=oracle --socket-dir=./ --no-shuffle \
-                               --send-root-referral --query-logging \
-                               --cache-ttl=$cachettl $lua_prequery &
-
-                       if [ $context = oracle-nsec3 ]
-                       then
-                               skipreasons="nodyndns oracle-nsec3"
-                               extracontexts="dnssec nsec3"
-                       elif [ $context = oracle-nodnssec ]
-                       then
-                               skipreasons="nodyndns nodnssec"
-                       else
-                               skipreasons="nodyndns oracle-nsec"
-                               extracontexts="dnssec"
-                       fi
-                       skipreasons="$skipreasons noent" # TODO add ent support to oracle backend
-                       ;;
-
-
-               tinydns)
-                       $RUNWRAPPER $PDNS --daemon=no --local-port=$port --socket-dir=./ \
-                               --no-shuffle --launch=tinydns \
-                        --cache-ttl=$cachettl --no-config \
-                               --send-root-referral \
-                               --allow-2136-from=127.0.0.0/8 --experimental-rfc2136=yes \
-                               --tinydns-dbfile=../modules/tinydnsbackend/data.cdb & 
-                       skipreasons="nodnssec noent nodyndns"
-                       ;;
-               remotebackend-*)
-                       remotetype=$(echo $context | cut -d- -f 2)
-                       remotesec=$(echo $context | cut -d- -f 3)
-                       narrow=$(echo $context | cut -d- -f 4)
-                       testsdir=../modules/remotebackend/regression-tests/
-
-                       # cleanup unbound-host.conf to avoid failures
-                       rm -f unbound-host.conf
-
-                       echo "Setting up test database..."
-                       # setup test database
-                       rm -f $testsdir/remote.sqlite3
-                       sqlite3 $testsdir/remote.sqlite3 < $testsdir/test-schema.sql
-                       chmod 0666 $testsdir/remote.sqlite3
-
-                       case $remotetype in
-                       http)
-                               connstr="http:url=http://localhost:62434/dns"
-                               rm -f remotebackend-server.log
-                               rm -f remotebackend-access.log
-                               $testsdir/http-backend.rb &
-                               echo $! > pdns-remotebackend.pid
-                               set +e
-                               # make sure it runs before continuing
-                               loopcount=0
-                               while [ $loopcount -lt 20 ]; do
-                                       res=$(curl http://localhost:62434/ping 2>/dev/null)
-                                       if [ "x$res" == "xpong" ]
-                                       then
-                                               break
-                                       fi
-                                       sleep 1
-                                       let loopcount=loopcount+1
-                               done
-                               set -e
-                               ;;
-                       zeromq)
-                               connstr="zeromq:endpoint=ipc:///tmp/pdns.0"
-                               $testsdir/zeromq-backend.rb &
-                               echo $! > pdns-remotebackend.pid
-                               ;;
-                       unix)
-                               connstr="unix:path=/tmp/remote.socket"
-                               socat unix-listen:/tmp/remote.socket,fork exec:$testsdir/unix-backend.rb &
-                               echo $! > pdns-remotebackend.pid
-                               ;;
-                       pipe)
-                               connstr="pipe:command=$testsdir/pipe-backend.rb"
-                               ;;
-                       *)
-                               echo "Invalid usage"
-                               exit
-                               ;;
-                       esac
-
-                       skipreasons="nodnssec nodyndns"
-
-                       if [ "$remotesec" = "nsec3" ]
-                       then
-                               remotedosec="yes"
-                               if [ "$narrow" = "narrow" ]
-                               then
-                                       extracontexts="dnssec nsec3 narrow"
-                                       skipreasons="narrow nsec3 nodyndns"
-                               else
-                                       extracontexts="dnssec nsec3"
-                                       skipreasons="nsec3 nodyndns"
-                               fi
-                               
-                               remote_add_param="--remote-dnssec=yes"
-                       elif [ "$remotesec" = "dnssec" ]
-                       then
-                               remotedosec="yes"
-                               remote_add_param="--remote-dnssec=yes"
-                               extracontexts="dnssec"
-                               skipreasons="nonsec3 nonarrow nodyndns"
-                       fi
-
-
-                       # generate pdns.conf for pdnssec
-                       cat > pdns-remote.conf <<EOF
-launch=remote
-remote-connection-string=$connstr
-EOF
-
-                       if [ "$remotedosec" = "yes" ]
-                       then
-                               echo "remote-dnssec=yes" >> pdns-remote.conf
-                               ../pdns/pdnssec --config-dir=. --config-name=remote import-zone-key example.com $testsdir/example.com.ksk ksk
-                               ../pdns/pdnssec --config-dir=. --config-name=remote import-zone-key example.com $testsdir/example.com.zsk.1 zsk
-                               ../pdns/pdnssec --config-dir=. --config-name=remote import-zone-key example.com $testsdir/example.com.zsk.2 zsk
-                               ../pdns/pdnssec --config-dir=. --config-name=remote activate-zone-key example.com 1
-                               ../pdns/pdnssec --config-dir=. --config-name=remote activate-zone-key example.com 2
-                               ../pdns/pdnssec --config-dir=. --config-name=remote deactivate-zone-key example.com 3
-
-                               ../pdns/pdnssec --config-dir=. --config-name=remote import-zone-key up.example.com $testsdir/up.example.com.ksk ksk
-                               ../pdns/pdnssec --config-dir=. --config-name=remote import-zone-key up.example.com $testsdir/up.example.com.zsk.1 zsk
-                               ../pdns/pdnssec --config-dir=. --config-name=remote import-zone-key up.example.com $testsdir/up.example.com.zsk.2 zsk
-                               ../pdns/pdnssec --config-dir=. --config-name=remote activate-zone-key example.com 4
-                               ../pdns/pdnssec --config-dir=. --config-name=remote activate-zone-key example.com 5
-                               ../pdns/pdnssec --config-dir=. --config-name=remote deactivate-zone-key example.com 6
-
-                               if [ "$remotesec" = "nsec3" ]
-                               then
-                                       ../pdns/pdnssec --config-dir=. --config-name=remote set-nsec3 example.com
-                                       ../pdns/pdnssec --config-dir=. --config-name=remote set-nsec3 up.example.com
-                               fi
-                       fi
-
-                       $RUNWRAPPER $PDNS --daemon=no --local-port=$port --socket-dir=./ \
-                               --no-shuffle --launch=remote \
-                               --query-logging --loglevel=9 --cache-ttl=$cachettl --no-config \
-                               --send-root-referral --distributor-threads=1 \
-                               --allow-2136-from=127.0.0.0/8 --experimental-rfc2136=yes \
-                               --remote-connection-string="$connstr" $remote_add_param &
-
-                       ;;
-               *)
-                       echo unknown context $context
-                       : > passed_tests
-                       echo 'unknown-context-'"$context" > failed_tests
-                       ./toxml $context
-                       exit
-esac
+start_master
 
 if [ "$skiplua" == "1" ]; then
        skipreasons="$skipreasons nolua"
@@ -1113,324 +253,6 @@ fi
 
 check_process
 
-startslave ()
-{
-       skipreasons="$skipreasons presigned nodyndns"
-       if [ ${presignedcontext:0:6} = gmysql ]
-       then
-               context=${context}-presigned
-               [ -z "$GMYSQL2DB" ] && GMYSQL2DB=pdnstest2
-               [ -z "$GMYSQL2USER" ] && GMYSQL2USER=root
-               [ -z "$GMYSQL2HOST" ] && GMYSQL2HOST=localhost
-               [ -z "$GMYSQL2PASSWD" ] && GMYSQL2PASSWD=''
-
-               mysqladmin --user="$GMYSQL2USER" --password="$GMYSQL2PASSWD" --host="$GMYSQL2HOST" --force drop "$GMYSQL2DB" \
-                       || echo ignoring mysqladmin drop failure
-               mysqladmin --user="$GMYSQL2USER" --password="$GMYSQL2PASSWD" --host="$GMYSQL2HOST" create "$GMYSQL2DB"
-               mysql --user="$GMYSQL2USER" --password="$GMYSQL2PASSWD" --host="$GMYSQL2HOST" \
-                       "$GMYSQL2DB" < ../modules/gmysqlbackend/no-dnssec.schema.mysql.sql
-               mysql --user="$GMYSQL2USER" --password="$GMYSQL2PASSWD" --host="$GMYSQL2HOST" \
-                       "$GMYSQL2DB" < ../modules/gmysqlbackend/dnssec.schema.mysql.sql
-
-               for zone in $(grep zone named.conf  | cut -f2 -d\" | tac)
-               do
-                       mysql --user="$GMYSQL2USER" --password="$GMYSQL2PASSWD" --host="$GMYSQL2HOST" \
-                       "$GMYSQL2DB" \
-                       -e "INSERT INTO domains (name, type, master) VALUES('$zone','SLAVE','127.0.0.1:$port')"
-               done
-
-               set +e
-               echo $skipreasons | grep -q nodnssec
-               if [ $? -ne 0 ]; then
-                       mysql --user="$GMYSQL2USER" --password="$GMYSQL2PASSWD" --host="$GMYSQL2HOST" "$GMYSQL2DB" \
-                       -e "INSERT INTO tsigkeys (name, algorithm,secret) VALUES('test', '$ALGORITHM', '$KEY')"
-                       mysql --user="$GMYSQL2USER" --password="$GMYSQL2PASSWD" --host="$GMYSQL2HOST" "$GMYSQL2DB" \
-                       -e "INSERT INTO domainmetadata (domain_id, kind, content) SELECT id, 'AXFR-MASTER-TSIG', 'test' FROM domains WHERE name = 'tsig.com'"
-                       echo $skipreasons | grep -q nolua
-                       if [ $? -ne 0 ]; then
-                               mysql --user="$GMYSQL2USER" --password="$GMYSQL2PASSWD" --host="$GMYSQL2HOST" "$GMYSQL2DB" \
-                               -e "INSERT INTO domainmetadata (domain_id,kind,content) SELECT id,'AXFR-SOURCE','127.0.0.2' FROM domains WHERE name = 'stest.com'"
-                       fi
-               fi
-               set -e
-
-               port=$((port+100))
-
-               $RUNWRAPPER $PDNS2 --daemon=no --local-port=$port --socket-dir=./  \
-                       --no-shuffle --launch=gmysql --gmysql-dnssec \
-                       --send-root-referral \
-                       --allow-2136-from=127.0.0.0/8 --experimental-rfc2136=yes \
-                       --cache-ttl=$cachettl --query-cache-ttl=$cachettl --no-config --slave --retrieval-threads=4 \
-                       --gmysql-dbname="$GMYSQL2DB" \
-                       --gmysql-user="$GMYSQL2USER" \
-                       --gmysql-host="$GMYSQL2HOST" \
-                       --gmysql-password="$GMYSQL2PASSWD" \
-                       --config-name=gmysql2 |& egrep -v "update records set ordername|insert into records" &
-               echo 'waiting for zones to be slaved'
-               loopcount=0
-               while [ $loopcount -lt 20 ]
-               do
-                       sleep 5
-                       todo=$(mysql --user="$GMYSQL2USER" --password="$GMYSQL2PASSWD" --host="$GMYSQl2HOST" \
-                                  "$GMYSQL2DB" -ss -e 'SELECT COUNT(id) FROM domains WHERE last_check IS NULL')
-                       if [ $todo = 0 ]
-                       then
-                               break
-                       fi
-                       let loopcount=loopcount+1
-               done
-               if [ $todo -ne 0 ]; then 
-                       echo "AXFR FAILED" >> failed_tests
-               fi
-       elif [ ${presignedcontext:0:8} = gsqlite3 ]
-       then
-               context=${context}-presigned
-               rm -f pdns.sqlite31
-               sqlite3 pdns.sqlite31 < ../modules/gsqlite3backend/no-dnssec.schema.sqlite3.sql
-               sqlite3 pdns.sqlite31 < ../modules/gsqlite3backend/dnssec.schema.sqlite3.sql
-
-               for zone in $(grep zone named.conf  | cut -f2 -d\" | tac)
-               do
-                       sqlite3 pdns.sqlite31 "INSERT INTO domains (name, type, master) VALUES('$zone','SLAVE','127.0.0.1:$port');"
-               done
-
-               set +e
-               echo $skipreasons | grep -q nodnssec
-               if [ $? -ne 0 ]; then
-                       sqlite3 pdns.sqlite31 "INSERT INTO tsigkeys (name,algorithm,secret) VALUES('test','$ALGORITHM', '$KEY')"
-                       sqlite3 pdns.sqlite31 "INSERT INTO domainmetadata (domain_id, kind, content) SELECT id, 'AXFR-MASTER-TSIG', 'test' FROM domains WHERE name = 'tsig.com'"
-                       echo $skipreasons | grep -q nolua
-                       if [ $? -ne 0 ]; then
-                               sqlite3 pdns.sqlite31  "INSERT INTO domainmetadata (domain_id,kind,content) SELECT id,'AXFR-SOURCE','127.0.0.2' FROM domains WHERE name = 'stest.com'"
-                       fi
-               fi
-               set -e
-
-               port=$((port+100))
-
-               $RUNWRAPPER $PDNS2 --daemon=no --local-port=$port --socket-dir=./  \
-                       --no-shuffle --launch=gsqlite3 --gsqlite3-dnssec \
-                       --fancy-records --send-root-referral \
-                       --cache-ttl=0 --query-cache-ttl=0 --no-config --slave --retrieval-threads=4 \
-                       --gsqlite3-database=pdns.sqlite31 --gsqlite3-pragma-synchronous=0 \
-                       --config-name=gsqlite32 |& egrep -v "update records set ordername|insert into records" &
-               echo 'waiting for zones to be slaved'
-               set +e
-               loopcount=0
-               while [ $loopcount -lt 20 ]
-               do
-                       sleep 5
-                       todo=$(sqlite3 pdns.sqlite31 'SELECT COUNT(id) FROM domains WHERE last_check IS NULL')
-                       if [ $todo -eq 0 ]
-                       then
-                               if [ $todo = 0 ]
-                               then
-                                       break
-                               fi
-                       fi
-                       let loopcount=loopcount+1
-               done
-               if [ $todo -ne 0 ]; then
-                               echo "AXFR FAILED" >> failed_tests
-               fi
-               set -e
-               sqlite3 pdns.sqlite31 ANALYZE;
-       elif [ ${presignedcontext:0:7} = goracle ]
-       then
-               context=${context}-presigned
-               [ -z "$GORACLE2USER" ] && GORACLE2USER=pdns2
-               [ -z "$GORACLE2PASSWD" ] && GORACLE2PASSWD=pdns
-
-               echo "START ../modules/goraclebackend/goracle-drop-schema;" | sqlplus -S $GORACLE2USER/$GORACLE2PASSWD@xe > goracle2.log
-               echo "START ../modules/goraclebackend/goracle-schema;" | sqlplus -S $GORACLE2USER/$GORACLE2PASSWD@xe >> goracle2.log
-
-                       cat > pdns-goracle2.conf << __EOF__
-launch=goracle
-goracle-home=$ORACLE_HOME
-goracle-sid=$ORACLE_SID
-goracle-nls-lang=$NLS_LANG
-
-goracle-tnsname=xe
-goracle-user=$GORACLE2USER
-goracle-password=$GORACLE2PASSWD
-goracle-dnssec
-__EOF__
-
-               for zone in $(grep zone named.conf  | cut -f2 -d\" | tac)
-               do
-                       echo "INSERT INTO domains (id, name, type, master) VALUES(domains_id_sequence.nextval, '$zone', 'SLAVE', '127.0.0.1:$port');" | sqlplus -S $GORACLE2USER/$GORACLE2PASSWD@xe >> goracle2.log
-               done
-
-               set +e
-               echo $skipreasons | grep -q nodnssec
-               if [ $? -ne 0 ]; then
-                       ../pdns/pdnssec --config-dir=. --config-name=goracle2 import-tsig-key test $ALGORITHM $KEY
-                       ../pdns/pdnssec --config-dir=. --config-name=goracle2 activate-tsig-key tsig.com test master
-                       echo $skipreasons | grep -q nolua
-                       if [ $? -ne 0 ]; then
-                               ../pdns/pdnssec --config-dir=. --config-name=goracle2 set-meta stest.com AXFR-SOURCE 127.0.0.2
-                       fi
-               fi
-               set -e
-
-               port=$((port+100))
-
-               $RUNWRAPPER $PDNS2 --daemon=no --local-port=$port --config-dir=. \
-                       --config-name=goracle2 --socket-dir=./ --no-shuffle \
-                       --send-root-referral --slave --retrieval-threads=4 \
-                       --slave-cycle-interval=300 --config-name=goracle2 &
-               echo 'waiting for zones to be slaved'
-
-               loopcount=0
-               while [ $loopcount -lt 40 ]
-               do
-                       sleep 5
-                       todo=$(sqlplus -S $GORACLE2USER/$GORACLE2PASSWD@xe << __EOF__
-set pagesize 0 feedback off verify off heading off echo off;
-SELECT COUNT(id) FROM domains WHERE last_check IS NULL;
-exit;
-__EOF__
-)
-                       if [ $todo = 0 ]
-                       then
-                               break
-                       fi
-                       let loopcount=loopcount+1
-               done
-               if [ $todo -ne 0 ]; then
-                       echo "AXFR FAILED" >> failed_tests
-               fi
-
-       elif [ ${presignedcontext:0:4} = bind ]
-       then
-               context=${context}-presigned
-               sed -e 's/type master;/type slave;\n\tmasters { 127.0.0.1:'$port'; };/' -e 's/file "\([^"]\+\)/file "\1-slave/' < named.conf > named-slave.conf
-
-               for zone in $(grep zone named.conf  | cut -f2 -d\")
-               do
-                       rm -rf $zone-slave
-               done
-               
-               rm -f dnssec-slave.sqlite3
-
-               ../pdns/pdnssec --config-dir=. create-bind-db dnssec-slave.sqlite3
-
-               set +e
-               echo $skipreasons | grep -q nodnssec
-               if [ $? -ne 0 ]; then
-                       sqlite3 dnssec-slave.sqlite3 "INSERT INTO tsigkeys (name, algorithm,secret) VALUES('test', '$ALGORITHM', '$KEY')"
-                       sqlite3 dnssec-slave.sqlite3 "INSERT INTO domainmetadata (domain, kind, content) SELECT 'tsig.com', 'AXFR-MASTER-TSIG', 'test'"
-                       echo $skipreasons | grep -q nolua
-                       if [ $? -ne 0 ]; then
-                               sqlite3 dnssec-slave.sqlite3 "INSERT INTO domainmetadata (domain,kind,content) SELECT 'stest.com','AXFR-SOURCE','127.0.0.2'"
-                       fi
-               fi
-               set -e
-
-               port=$((port+100))
-
-               $RUNWRAPPER $PDNS2 --daemon=no --local-port=$port --socket-dir=./  \
-                       --no-shuffle --launch=bind --bind-config=./named-slave.conf --slave         \
-                       --send-root-referral --retrieval-threads=1  --config-name=bind-slave \
-                       --allow-2136-from=127.0.0.0/8 --experimental-rfc2136=yes \
-                       --cache-ttl=$cachettl --no-config --bind-dnssec-db=./dnssec-slave.sqlite3 &
-               echo 'waiting for zones to be loaded'
-               bindwait bind-slave
-       elif [ ${presignedcontext:0:7} = ext-nsd ]
-       then
-               skipreasons="$skipreasons nsd"
-               context=$context-presigned
-               cat > nsd-slave.conf << __EOF__
-server:
-       ip-address: 127.0.0.1@$((port+100))
-       database: ./nsd-slave.db
-       difffile: ./ixfr-slave.db
-       xfrdfile: ./ixfr-slave.state
-       zonesdir: .
-       username: ""
-
-key:
-       name: test
-       algorithm: $ALGORITHM
-       secret: "$KEY"
-__EOF__
-
-               rm -f ixfr-slave.db
-               rm -f ixfr-slave.state
-
-               for zone in $(grep zone named.conf  | cut -f2 -d\")
-               do
-                       rm -f $zone-slave
-
-                       echo "" >> nsd-slave.conf
-                       echo "zone:" >> nsd-slave.conf
-                       echo "  name: \"${zone}\"" >> nsd-slave.conf
-                       echo "  zonefile: \"${zone}-slave\"" >> nsd-slave.conf
-                       if [ "${zone}" = "tsig.com" ]
-                       then
-                               echo "  allow-notify: 127.0.0.1 test" >> nsd-slave.conf
-                               echo "  request-xfr: AXFR 127.0.0.1@$port test" >> nsd-slave.conf
-                               echo "  provide-xfr: 0.0.0.0/0 test" >> nsd-slave.conf
-                               echo "  provide-xfr: ::0/0 test" >> nsd-slave.conf
-                       else
-                               echo "  allow-notify: 127.0.0.1 NOKEY" >> nsd-slave.conf
-                               echo "  request-xfr: AXFR 127.0.0.1@$port NOKEY" >> nsd-slave.conf
-                               echo "  provide-xfr: 0.0.0.0/0 NOKEY" >> nsd-slave.conf
-                               echo "  provide-xfr: ::0/0 NOKEY" >> nsd-slave.conf
-                       fi
-               done
-
-               port=$((port+100))
-               nsdc -c nsd-slave.conf rebuild
-
-               nsd -c nsd-slave.conf -P pdns-slave.pid -d &
-               sleep 20
-       elif [ ${presignedcontext:0:8} = ext-bind ]
-       then
-               skipreasons="$skipreasons bind"
-               context=$context-presigned
-               cat > bind-slave.conf << __EOF__
-options {
-       dnssec-enable yes;
-       listen-on port $(($port+100)) { 127.0.0.1; };
-       minimal-responses yes;
-       pid-file "pdns-slave.pid";
-};
-
-key test {
-       algorithm $ALGORITHM;
-       secret "$KEY";
-};
-__EOF__
-
-               rm -f ixfr-slave.db
-               rm -f ixfr-slave.state
-
-               for zone in $(grep zone named.conf  | cut -f2 -d\")
-               do
-                       rm -f $zone-slave
-
-                       echo "" >> bind-slave.conf
-                       echo "zone \"${zone}\" {" >> bind-slave.conf
-                       echo "  type slave;" >> bind-slave.conf
-                       echo "  file \"${zone}-slave\";" >> bind-slave.conf
-                       if [ "${zone}" = "tsig.com" ]
-                       then
-                               echo "  masters port $port { 127.0.0.1 key test; };" >> bind-slave.conf
-                               echo "  allow-transfer { key test; none; };" >> bind-slave.conf
-                       else
-                               echo "  masters port $port { 127.0.0.1; };" >> bind-slave.conf
-                       fi
-                       echo "};" >> bind-slave.conf
-               done
-
-               port=$((port+100))
-
-               named -c bind-slave.conf -g &
-               sleep 20
-       fi
-}
-
 dotests () {
        nameserver=127.0.0.1 ./runtests $spectest
        ./toxml
@@ -1450,7 +272,6 @@ dotests () {
        fi
 }
 
-## TODO: give pdns a few seconds to startup or fail, then check if it did not fail
 ## TODO: give sdig a timeout
 
 RETVAL=0
@@ -1471,7 +292,7 @@ fi
 
 if [ $presigned = yes ] || [ $both = yes ]
 then
-       startslave
+       start_slave
 
        export port
        export context
diff --git a/regression-tests/tests/.gitignore b/regression-tests/tests/.gitignore
new file mode 100644 (file)
index 0000000..0bb5417
--- /dev/null
@@ -0,0 +1,5 @@
+diff
+real_result
+*.out
+start
+step.*
similarity index 92%
rename from regression-tests/00dnssec-grabkeys/command
rename to regression-tests/tests/00dnssec-grabkeys/command
index 304d490424f4f5cec7b53071d2eaef2e013609fa..4f363a2d69b0b0c9de521090e9abcd3400698ba8 100755 (executable)
@@ -2,7 +2,7 @@
 rm -f trustedkeys
 rm -f unbound-host.conf
 
-for zone in $(grep zone named.conf  | cut -f2 -d\")
+for zone in $(grep 'zone ' named.conf  | cut -f2 -d\")
 do
        if [ "${zone: 0:16}" != "secure-delegated" ]
        then
similarity index 70%
rename from regression-tests/1dyndns-update-add-invalid-record/command
rename to regression-tests/tests/1dyndns-update-add-invalid-record/command
index ce43cffba8026a85b0bc37eff6deb672be5fd88f..3bf0879c5ebb479614189f0a7089c6346b83e06e 100755 (executable)
@@ -1,4 +1,4 @@
 #!/bin/sh
 cleandig host-invalid.test.dyndns ANY hidesoadetails
-$testname/sendupdate.pl $nameserver $port
+tests/$testname/sendupdate.pl $nameserver $port
 cleandig host-invalid.test.dyndns ANY hidesoadetails
similarity index 63%
rename from regression-tests/bind-add-zone/command
rename to regression-tests/tests/bind-add-zone/command
index 46f41b610ec256eb4154182caf7ce6f273d2ef58..fde5aa88e60680f34e7aee813e17e47eebbf8a13 100755 (executable)
@@ -6,10 +6,10 @@ fi
 
 cleandig ns1.addzone.com A
 cleandig ns1.test.com A
-../pdns/pdns_control --config-dir=. bind-add-zone addzone.com addzone.com
+../pdns/pdns_control --config-dir=. bind-add-zone addzone.com zones/addzone.com
 ../pdns/pdns_control --config-dir=. purge addzone.com
 sleep 1
-../pdns/pdns_control --config-dir=. bind-add-zone addzone.com addzone.com
+../pdns/pdns_control --config-dir=. bind-add-zone addzone.com zones/addzone.com
 sleep 1
 cleandig ns1.addzone.com A
 sleep 1
similarity index 97%
rename from regression-tests/bind-add-zone/expected_result.bind
rename to regression-tests/tests/bind-add-zone/expected_result.bind
index cfb53189d4aec745d564e785c5bf8d43071a161f..6f13aa05b8546d711a47eda64c386cd7f0511fbd 100644 (file)
@@ -29,7 +29,7 @@ Reply to question for qname='ns1.addzone.com.', qtype=A
 0      ns1.test.com.   IN      A       3600    1.1.1.1
 Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
 Reply to question for qname='ns1.test.com.', qtype=A
-Loaded zone addzone.com from addzone.com
+Loaded zone addzone.com from zones/addzone.com
 0
 Already loaded
 Rcode: 2, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
similarity index 86%
rename from regression-tests/ent-asterisk/expected_result.dnssec
rename to regression-tests/tests/ent-asterisk/expected_result.dnssec
index 98cd61b77e3c94e2893d2aa690259251b5b19bb4..b1854e292ef1713f8c355a4cffdfe8166c40357a 100644 (file)
@@ -7,4 +7,4 @@
 2      .       IN      OPT     32768   
 Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0
 Reply to question for qname='sub.host.sub.example.com.', qtype=A
-./ent-asterisk/unbound-host.out:sub.host.sub.example.com has no address (BOGUS (security failure))
+./tests/ent-asterisk/unbound-host.out:sub.host.sub.example.com has no address (BOGUS (security failure))
similarity index 89%
rename from regression-tests/verify-dnssec-zone/command
rename to regression-tests/tests/verify-dnssec-zone/command
index 16adf1735a24edc6871c0ea47c1234c1813e3115..cfd433fa0148bc43d22e7fc7501bc09a11f3599c 100755 (executable)
@@ -1,5 +1,5 @@
 #!/usr/bin/env bash
-for zone in $(grep zone named.conf  | cut -f2 -d\" | grep -v '^\(example.com\|nztest.com\)$')
+for zone in $(grep 'zone ' named.conf  | cut -f2 -d\" | grep -v '^\(example.com\|nztest.com\)$')
 do
        TFILE=$(mktemp)
        dig axfr $zone @$nameserver -p $port | ldns-read-zone -z > $TFILE
diff --git a/regression-tests/zones/.gitignore b/regression-tests/zones/.gitignore
new file mode 100644 (file)
index 0000000..0d94294
--- /dev/null
@@ -0,0 +1,10 @@
+/test.dyndns
+/*.com-slave
+/*.dyndns-slave
+/*.signed
+/*.nsd
+/ixfr.state
+/nsd.db
+/ixfr-slave.db
+/ixfr-slave.state
+/nsd-slave.db