]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
add dyndns db based test
authorKees Monshouwer <mind04@monshouwer.org>
Wed, 8 May 2013 22:48:46 +0000 (00:48 +0200)
committermind04 <mind04@monshouwer.org>
Fri, 12 Jul 2013 15:26:18 +0000 (17:26 +0200)
regression-tests/1dyndns-update-add-delete/command
regression-tests/1dyndns-update-add-delete/expected_result
regression-tests/1dyndns-update-add-delete/expected_result.dnssec [new file with mode: 0644]
regression-tests/1dyndns-update-add-delete/expected_result.narrow [new file with mode: 0644]
regression-tests/1dyndns-update-add-delete/expected_result.nsec3 [new file with mode: 0644]
regression-tests/mysqldiff [new file with mode: 0755]
regression-tests/runtests

index 905ecc44ec1aa2a36abbdbe868fb8ec206ce0a9e..d2cdd06b594e7fad365f7be502be773ce969d9f1 100755 (executable)
@@ -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 <<!
@@ -13,8 +12,8 @@ send
 answer
 !
 
-# query if the record now exists
-cleandig add-delete.test.dyndns ANY
+# check if the record was added
+mysqldiff 1 "Check if add-delete.test.dyndns. 3600 A 127.0.0.108 exists"
 
 # delete the just added record
 cleannsupdate <<!
@@ -26,5 +25,5 @@ send
 answer
 !
 
-# check if the record was deleted.
-cleandig add-delete.test.dyndns ANY hidesoadetails
+# check if the record was deleted
+mysqldiff 2 "Check if record is gone" 1
index 2167a1a5ab31492f94b1e5fb17256ca221fe905b..370d66de10efd02c6315c2fa3b114ceff9dd6185 100644 (file)
@@ -1,21 +1,22 @@
-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
 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
 
-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 (file)
index 0000000..a6eb629
--- /dev/null
@@ -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 (file)
index 0000000..54dbb0c
--- /dev/null
@@ -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 (file)
index 0000000..d3cd61e
--- /dev/null
@@ -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 (executable)
index 0000000..6866c99
--- /dev/null
@@ -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
index 7995f24d85524be82968b598272004da643cb14b..0f6eec7b9cdf931516481e3c280167e69225ff72 100755 (executable)
@@ -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