--- /dev/null
+#!/bin/sh
+BEFORE=$(getserial test.dyndns)
+
+cleannsupdate <<!
+server $nameserver $port
+zone test.dyndns
+update add dummy.test.dyndns 600 A 127.0.0.1
+send
+answer
+!
+
+AFTER1=$(getserial test.dyndns)
+
+cleannsupdate <<!
+server $nameserver $port
+zone test.dyndns
+update delete dummy.test.dyndns 600 A 127.0.0.1
+send
+answer
+!
+
+AFTER2=$(getserial test.dyndns)
+
+if [ $((AFTER2 - AFTER1)) -lt 1 ] || [ $((AFTER1 - BEFORE)) -lt 1 ]
+then
+ echo "SOA was not raised!";
+fi
--- /dev/null
+RFC2136 describes that every update message should result in the SOA-serial to be changed.
+This test checks if that happens.
+
--- /dev/null
+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
+
+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
+
--- /dev/null
+Skip this test if the backend does not support dyndns/rfc2136
--- /dev/null
+#!/bin/sh
+../pdns/sdig $nameserver $port $1 SOA | LC_ALL=C sort | grep ^0 | cut -d ' ' -f 3