]> git.ipfire.org Git - thirdparty/pdns.git/blobdiff - regression-tests.dnsdist/runtests
Cleanup configs and make sure cert chains does not contain old certs.
[thirdparty/pdns.git] / regression-tests.dnsdist / runtests
index 8bd5cd3e5ee0063739100a896870853e0b523419..e83d947c85d8148d71178a001d757e9b74b741c1 100755 (executable)
@@ -1,14 +1,29 @@
 #!/usr/bin/env bash
+set -e
 
 if [ ! -d .venv ]; then
-       virtualenv .venv
+  if [ -z "$PYTHON" ]; then
+    if [ ! -z "$(python3 --version | egrep '^Python 3.[6789]' 2>/dev/null)" ]; then
+      # found python3.6 or better
+      PYTHON=python3
+    else
+      # until we have better Linux distribution detection.
+      PYTHON=python2
+    fi
+  fi
+
+  virtualenv -p ${PYTHON} .venv
 fi
 . .venv/bin/activate
 python -V
 pip install -r requirements.txt
+protoc -I=../pdns/ --python_out=. ../pdns/dnsmessage.proto
+protoc -I=../pdns/ --python_out=. ../pdns/dnstap.proto
+
+mkdir -p configs
 
 if [ -z "${DNSDISTBIN}" ]; then
-    DNSDISTBIN=$(ls ../pdns/dnsdistdist/dnsdist-*/dnsdist)
+  DNSDISTBIN=$(ls ../pdns/dnsdistdist/dnsdist-*/dnsdist)
 fi
 export DNSDISTBIN
 
@@ -16,4 +31,25 @@ set -e
 if [ "${PDNS_DEBUG}" = "YES" ]; then
   set -x
 fi
-nosetests --with-xunit $@
+
+rm -f ca.key ca.pem ca.srl server.csr server.key server.pem server.chain
+rm -rf configs/*
+
+# Generate a new CA
+openssl req -new -x509 -days 1 -extensions v3_ca -keyout ca.key -out ca.pem -nodes -config configCA.conf
+# Generate a new server certificate request
+openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr -config configServer.conf
+# Sign the server cert
+openssl x509 -req -days 1 -CA ca.pem -CAkey ca.key -CAcreateserial -in server.csr -out server.pem
+# Generate a chain
+cat server.pem ca.pem > server.chain
+
+if ! nosetests --with-xunit $@; then
+    for log in configs/*.log; do
+        echo "=== ${log} ==="
+        cat "${log}"
+    done
+    false
+fi
+
+rm ca.key ca.pem ca.srl server.csr server.key server.pem server.chain