#!/bin/bash set -e WORKDIR=$(mktemp -d) TESTDIR=$(realpath "$(dirname "$0")") DKIMPY_MILTER=${DKIMPY_MILTER:-"$TESTDIR/dkimpy-milter"} KEY_TYPES=(ed25519 rsa) cd "$WORKDIR" printf "Testing %s from directory %s\n" "$DKIMPY_MILTER" "$WORKDIR" for keytype in "${KEY_TYPES[@]}"; do dknewkey --ktype "$keytype" "testkey.$keytype" if [ "$keytype" = ed25519 ]; then keyfile=KeyFileEd25519 selector=SelectorEd25519 else keyfile=KeyFile selector=Selector fi cat > "$keytype.signing.conf" < "$keytype.verify.conf" < %s:\n" "$errdata" cat "$errdata" printf -- "-> end %s\n" "$errdata" fi done done rm -rf "$WORKDIR" } for keytype in "${KEY_TYPES[@]}"; do for func in signing verify; do PYTHONPATH="$(dirname "$TESTDIR")" "$DKIMPY_MILTER" "$keytype.$func.conf" 2>"$keytype.$func.stderr" & done done trap cleanup EXIT # ugly ugly (how are we supposed to know that the milters are all ready?): sleep 2 # uses miltertest from opendkim: for x in ${TESTS:-"$TESTDIR"/*.miltertest}; do if ! [ -e "$x" ]; then if [ -e "$TESTDIR/$x" ]; then x="$TESTDIR/$x" fi fi printf -- "-> running %s...\n" "$x" miltertest -s "$x" done