The minor dialogs test covers some very specific SMTP exchanges, and some of those include delivering email. Today, we don't verify the final mailbox, we just check the SMTP exchange. However, it can be very useful for some of the tests to do end-to-end checking of the final mailbox. This patch implements that ability in the test itself, and on the (currently only) email delivering dialog. Subsequent patches that introduce new tests will make use of this feature.
48 lines
963 B
Bash
Executable File
48 lines
963 B
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
. "$(dirname "$0")/../util/lib.sh"
|
|
|
|
init
|
|
|
|
generate_certs_for testserver
|
|
add_user user@testserver secretpassword
|
|
|
|
mkdir -p .logs .mbox
|
|
chasquid -v=2 --logfile=.logs/chasquid.log --config_dir=config &
|
|
wait_until_ready 1025
|
|
|
|
FAILED=0
|
|
for i in *.cmy; do
|
|
if ! chamuyero "$i" > ".logs/$i.log" 2>&1 ; then
|
|
echo "test $i failed, see .logs/$i.log"
|
|
echo
|
|
echo "last lines of the log:"
|
|
tail -n 10 ".logs/$i.log" | sed 's/^/ /g'
|
|
echo
|
|
FAILED=1
|
|
continue
|
|
fi
|
|
|
|
# Some tests do email delivery, this allows us to verify the results.
|
|
if [ -f "$i.verify" ]; then
|
|
wait_for_file .mail/user@testserver
|
|
cp .mail/user@testserver ".mbox/$i.mbox"
|
|
if ! mail_diff "$i.verify" .mail/user@testserver \
|
|
> ".mbox/$i.diff" ;
|
|
then
|
|
echo "test $i failed, because it had a mail diff"
|
|
echo
|
|
echo "mail diff:"
|
|
sed 's/^/ /g' ".mbox/$i.diff"
|
|
echo
|
|
FAILED=1
|
|
fi
|
|
fi
|
|
done
|
|
|
|
if [ $FAILED == 1 ]; then
|
|
fail "got at least one error"
|
|
fi
|
|
success
|