--- /dev/null
+#!/usr/bin/env bash
+
+# run PowerDNS using random backend
+
+port=5501
+rm -f pdns*.pid
+
+bindwait ()
+{
+ configname=$1
+ domcount=1
+ loopcount=0
+ while [ $loopcount -lt 20 ]; do
+ sleep 1
+ done=$( (../pdns/pdns_control --config-name=$configname --socket-dir=. --no-config bind-domain-status || true) | grep -c 'parsed into memory' || true )
+ if [ $done = $domcount ]
+ then
+ return
+ fi
+ let loopcount=loopcount+1
+ done
+ if [ $done != $domcount ]; then
+ echo "Domain parsing failed" >> failed_tests
+ fi
+}
+
+$RUNWRAPPER ../pdns/pdns_server --daemon=no --local-port=$port --socket-dir=./ \
+ --no-shuffle --launch=bind --bind-config=edns-packet-cache/named.conf \
+ --send-root-referral --cache-ttl=60 --no-config --module-dir=../regression-tests/modules &
+bindwait
+
+timeout 5 ./edns1/test-edns.py
+
+kill $(cat pdns*.pid)
+rm pdns*.pid
--- /dev/null
+#!/usr/bin/env python
+
+import socket
+
+MESSAGE="\xaf\x03\x00\x20\x00\x01\x00\x00\x00\x00\x00\x01\x04\x75\x6e\x69\x74\x04\x74\x65\x73\x74\x00\x00\x06\x00\x01\x00\x00\x29\x10\x00\x00\x64\x00\x00\x00\x10\x00\x0a\x00\x08\x39\x70\xad\xaf\xca\xa8\x96\xca\x00\x64\x00\x00"
+sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+
+sock.bind(("127.0.0.1",5502))
+sock.sendto(MESSAGE, ("127.0.0.1", 5501))
+
+data, addr = sock.recvfrom(512)
+
+# make sure data is correct
+EXPECT="\xaf\x03\x84\x00\x00\x01\x00\x00\x00\x00\x00\x01\x04\x75\x6e\x69\x74\x04\x74\x65\x73\x74\x00\x00\x06\x00\x01\x00\x00\x29\x06\x90\x01\x00\x00\x00\x00\x00"
+
+if (data != EXPECT):
+ print "Invalid EDNS response, expected extended RCODE=BADVERS, no SOA, and OPT version 0"
+else:
+ print "EDNS response OK"