From: Kees Monshouwer Date: Wed, 8 May 2013 22:48:46 +0000 (+0200) Subject: add dyndns db based test X-Git-Tag: rec-3.6.0-rc1~556^2~3^2~49 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ff83f2ff91e250dcf3da82eecd7cfd93fd6c9944;p=thirdparty%2Fpdns.git add dyndns db based test --- diff --git a/regression-tests/1dyndns-update-add-delete/command b/regression-tests/1dyndns-update-add-delete/command index 905ecc44ec..d2cdd06b59 100755 --- a/regression-tests/1dyndns-update-add-delete/command +++ b/regression-tests/1dyndns-update-add-delete/command @@ -1,7 +1,6 @@ #!/bin/sh -# check if add-delete.test.dyndns exists. It should not. -cleandig add-delete.test.dyndns ANY hidesoadetails +mysqldiff # add a record cleannsupdate <>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id] ;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0 ;; ZONE SECTION: ;test.dyndns. IN SOA -0 add-delete.test.dyndns. IN A 3600 127.0.0.108 -Rcode: 0, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 -Reply to question for qname='add-delete.test.dyndns.', qtype=ANY +Check if add-delete.test.dyndns. 3600 A 127.0.0.108 exists +--- Start: diff start step.1 --- +> add-delete.test.dyndns A 127.0.0.108 3600 0 +--- End: diff start step.1 --- + Answer: ;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id] ;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0 ;; ZONE SECTION: ;test.dyndns. IN SOA -1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400 -Rcode: 3, RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 -Reply to question for qname='add-delete.test.dyndns.', qtype=ANY +Check if record is gone +--- Start: diff step.1 step.2 --- +< add-delete.test.dyndns A 127.0.0.108 3600 0 +--- End: diff step.1 step.2 --- + diff --git a/regression-tests/1dyndns-update-add-delete/expected_result.dnssec b/regression-tests/1dyndns-update-add-delete/expected_result.dnssec new file mode 100644 index 0000000000..a6eb629943 --- /dev/null +++ b/regression-tests/1dyndns-update-add-delete/expected_result.dnssec @@ -0,0 +1,22 @@ +Answer: +;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id] +;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0 +;; ZONE SECTION: +;test.dyndns. IN SOA + +Check if add-delete.test.dyndns. 3600 A 127.0.0.108 exists +--- Start: diff start step.1 --- +> add-delete.test.dyndns A 127.0.0.108 3600 0 add-delete 1 +--- End: diff start step.1 --- + +Answer: +;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id] +;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0 +;; ZONE SECTION: +;test.dyndns. IN SOA + +Check if record is gone +--- Start: diff step.1 step.2 --- +< add-delete.test.dyndns A 127.0.0.108 3600 0 add-delete 1 +--- End: diff step.1 step.2 --- + diff --git a/regression-tests/1dyndns-update-add-delete/expected_result.narrow b/regression-tests/1dyndns-update-add-delete/expected_result.narrow new file mode 100644 index 0000000000..54dbb0c373 --- /dev/null +++ b/regression-tests/1dyndns-update-add-delete/expected_result.narrow @@ -0,0 +1,22 @@ +Answer: +;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id] +;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0 +;; ZONE SECTION: +;test.dyndns. IN SOA + +Check if add-delete.test.dyndns. 3600 A 127.0.0.108 exists +--- Start: diff start step.1 --- +> add-delete.test.dyndns A 127.0.0.108 3600 0 1 +--- End: diff start step.1 --- + +Answer: +;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id] +;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0 +;; ZONE SECTION: +;test.dyndns. IN SOA + +Check if record is gone +--- Start: diff step.1 step.2 --- +< add-delete.test.dyndns A 127.0.0.108 3600 0 1 +--- End: diff step.1 step.2 --- + diff --git a/regression-tests/1dyndns-update-add-delete/expected_result.nsec3 b/regression-tests/1dyndns-update-add-delete/expected_result.nsec3 new file mode 100644 index 0000000000..d3cd61e2ff --- /dev/null +++ b/regression-tests/1dyndns-update-add-delete/expected_result.nsec3 @@ -0,0 +1,22 @@ +Answer: +;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id] +;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0 +;; ZONE SECTION: +;test.dyndns. IN SOA + +Check if add-delete.test.dyndns. 3600 A 127.0.0.108 exists +--- Start: diff start step.1 --- +> add-delete.test.dyndns A 127.0.0.108 3600 0 gkhs0ms64101fs1dj19h7no8vn2tp4fk 1 +--- End: diff start step.1 --- + +Answer: +;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id] +;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0 +;; ZONE SECTION: +;test.dyndns. IN SOA + +Check if record is gone +--- Start: diff step.1 step.2 --- +< add-delete.test.dyndns A 127.0.0.108 3600 0 gkhs0ms64101fs1dj19h7no8vn2tp4fk 1 +--- End: diff step.1 step.2 --- + diff --git a/regression-tests/mysqldiff b/regression-tests/mysqldiff new file mode 100755 index 0000000000..6866c99d29 --- /dev/null +++ b/regression-tests/mysqldiff @@ -0,0 +1,35 @@ +#!/bin/bash -x + +[ -z "$GMYSQLDB" ] && GMYSQLDB=pdnstest +[ -z "$GMYSQLUSER" ] && GMYSQLUSER=root +[ -z "$GMYSQLHOST" ] && GMYSQLHOST=localhost +[ -z "$GMYSQLPASSWD" ] && GMYSQLPASSWD='' + +step="step.$1" +[ -z "$1" ] && step="start" +comment=$2 +[ -z "$comment" ] && comment="No comment" +diffto="step.$3" +[ -z "$3" ] && diffto="start" + +if [ "${context: -9}" = "-nodnssec" ] +then + mysql --user="$GMYSQLUSER" --password="$GMYSQLPASSWD" --host="$GMYSQLHOST" \ + "$GMYSQLDB" \ + -e "SELECT r.name, r.type, r.content, r.ttl, r.prio FROM domains d JOIN records r ON d.id=r.domain_id WHERE d.name='test.dyndns' AND r.type != 'SOA' ORDER BY r.name, r.type, r.content, r.ttl, r.prio" > ${testsdir}/${testname}/$step +else + mysql --user="$GMYSQLUSER" --password="$GMYSQLPASSWD" --host="$GMYSQLHOST" \ + "$GMYSQLDB" \ + -e "SELECT r.name, r.type, r.content, r.ttl, r.prio, r.ordername, r.auth FROM domains d JOIN records r ON d.id=r.domain_id WHERE d.name='test.dyndns' AND r.type != 'SOA' ORDER BY r.name, r.type, r.content, r.ttl, r.prio" > ${testsdir}/${testname}/$step +fi + +if [ ! "$step" == "start" ] +then + echo -e "$comment\n--- Start: diff $diffto $step ---" + diff ${testsdir}/${testname}/$diffto ${testsdir}/${testname}/$step | sed '/^[0-9a-z,/-]*$/d' | sort -V + if [ ${PIPESTATUS[0]} -eq 0 ] + then + echo "is equal" + fi + echo -e "--- End: diff $diffto $step ---\n" +fi diff --git a/regression-tests/runtests b/regression-tests/runtests index 7995f24d85..0f6eec7b9c 100755 --- a/regression-tests/runtests +++ b/regression-tests/runtests @@ -6,7 +6,7 @@ spectest=$1 make -C ../pdns sdig nsec3dig || exit 1 -rm -f test-results failed_tests passed_tests skipped_tests ${testsdir}/*/real_result ${testsdir}/*/diff ${testsdir}/*/*.out +rm -f test-results failed_tests passed_tests skipped_tests ${testsdir}/*/real_result ${testsdir}/*/diff ${testsdir}/*/*.out ${testsdir}/*/start ${testsdir}/*/step.* passed=0 failed=0