tests: Run a verifying milter as well as a signing milter

Having a verifying milter will come in handy when we want to test both
sides of the DKIM process.
This commit is contained in:
Daniel Kahn Gillmor
2019-02-19 17:41:09 -05:00
parent ae31730593
commit 5c1d5d6e52
+23 -10
View File
@@ -12,28 +12,41 @@ Domain example.net
KeyFileEd25519 testkey.key KeyFileEd25519 testkey.key
SelectorEd25519 testkey SelectorEd25519 testkey
Socket unix:signing.sock Socket unix:signing.sock
PidFile milter.pid PidFile signing.pid
Mode s Mode s
UserID $(id --name --user):$(id --name --group) UserID $(id --name --user):$(id --name --group)
EOF EOF
rm -f milter.pid milter.sock
cat > verify.conf <<EOF
Socket unix:verify.sock
PidFile verify.pid
Mode v
DNSOverride $(cat testkey.dns)
UserID $(id --name --user):$(id --name --group)
EOF
cleanup() { cleanup() {
echo cleaning up jobs: echo cleaning up jobs:
jobs jobs
if [ -s milter.pid ] && kill -0 "$(cat milter.pid)"; then if [ -s signing.pid ] && kill -0 "$(cat signing.pid)"; then
kill "$(cat milter.pid)" kill "$(cat signing.pid)"
fi
if [ -s verify.pid ] && kill -0 "$(cat verify.pid)"; then
kill "$(cat verify.pid)"
fi
wait wait
for errdata in signing.stderr verify.stderr; do
if [ -s "$errdata" ]; then
printf -- "-> %s:\n" "$errdata"
cat "$errdata"
printf -- "-> end %s\n" "$errdata"
fi fi
if [ -s stderr ]; then done
printf -- "-> stderr:\n"
cat stderr
printf -- "-> end stderr\n"
fi
rm -rf "$WORKDIR" rm -rf "$WORKDIR"
} }
PYTHONPATH="$(dirname "$TESTDIR")" dkimpy-milter signing.conf 2>stderr & PYTHONPATH="$(dirname "$TESTDIR")" dkimpy-milter signing.conf 2>signing.stderr &
PYTHONPATH="$(dirname "$TESTDIR")" dkimpy-milter verify.conf 2>verify.stderr &
trap cleanup EXIT trap cleanup EXIT
# ugly ugly (how are we supposed to know that the filter is ready?): # ugly ugly (how are we supposed to know that the filter is ready?):