Files
Alberto Bertogli c4c330d7a4 test: Verify mailbox delivery in minor dialogs test
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.
2023-12-23 13:21:27 +00:00

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