#!/usr/bin/env bash
set -e
+export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python
+
if [ ! -d .venv ]; then
python3 -m venv .venv
fi
export CPPFLAGS=-I/usr/local/opt/openssl/include
fi
fi
+pip install -U pip wheel | cat
pip install -r requirements.txt | cat
protoc -I=../pdns/ --python_out=. ../pdns/dnsmessage.proto
set -x
fi
-rm -f ca.key ca.pem ca.srl server.csr server.key server.pem server.chain server.ocsp
-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 -extfile configServer.conf -extensions v3_req
-# Generate a chain
-cat server.pem ca.pem > server.chain
+make clean-certs
+make clean-configs
+make certs
-if ! nosetests --with-xunit $@; then
+out=$(mktemp)
+set -o pipefail
+if ! pytest --junitxml=pytest.xml --dist=loadfile -n auto $@ 2>&1 | tee "${out}" ; then
for log in configs/*.log; do
echo "=== ${log} ==="
cat "${log}"
+ echo
done
+ echo "=== pytest log ==="
+ cat "${out}"
+ echo "=== end of pytest log ==="
false
fi
+rm -f "${out}"
-rm -f ca.key ca.pem ca.srl server.csr server.key server.pem server.chain server.ocsp
+make clean-certs