mirror of
https://blitiri.com.ar/repos/chasquid
synced 2026-01-08 17:51:57 +00:00
The t-20-bad_configs test can sometimes have false positives because the last line recorded in the log isn't always the one causing the failure, due to asynchronous logging and in particular in combination with coverage tests (which alter the os.Exit behaviour subtly). This patch fixes that by having the tests look at the last 4 lines of output instead. This is not super pretty, but it should be good enough to cover for any timing issues that arise in these particular tests.
51 lines
1.3 KiB
Bash
Executable File
51 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
. "$(dirname "$0")/../util/lib.sh"
|
|
|
|
init
|
|
check_hostaliases
|
|
|
|
mkdir -p .logs
|
|
|
|
if chasquid --config_dir=doesnotexist > .chasquid-doesnotexist.out 2>&1; then
|
|
fail "chasquid should not start without a config"
|
|
fi
|
|
|
|
# Create this empty directory. We can't use a .keep file because that defeats
|
|
# the purpose of the test.
|
|
mkdir -p c-04-no_cert_dirs/certs/
|
|
|
|
# Generate certs for the tests that need them.
|
|
for i in c-05-no_addrs c-06-bad_maillog c-07-bad_domain_info \
|
|
c-08-bad_sts_cache c-09-bad_queue_dir ;
|
|
do
|
|
CONFDIR=$i/ generate_certs_for testserver
|
|
done
|
|
|
|
for i in c-*; do
|
|
if chasquid --config_dir="$i" > ".chasquid-$i.out" 2>&1; then
|
|
echo "$i failed; output:"
|
|
echo
|
|
cat ".chasquid-$i.out"
|
|
echo
|
|
fail "$i: chasquid should not start with this invalid config"
|
|
fi
|
|
|
|
# Test that they failed as expected, and not by chance/unrelated error.
|
|
# Look in the last 4 lines, because the fatal error may not be in the
|
|
# very last one due to asynchronous logging.
|
|
if ! tail -n 4 ".chasquid-$i.out" \
|
|
| grep -q -E "$(cat "$i/.expected-error")"; then
|
|
echo "$i failed"
|
|
echo "expected last 4 lines to contain:"
|
|
echo " '$(cat "$i/.expected-error")'"
|
|
echo "got last 4 lines:"
|
|
tail -n 4 ".chasquid-$i.out" | sed -e 's/^/ /g'
|
|
echo
|
|
fail "$i: chasquid did not fail as expected"
|
|
fi
|
|
done
|
|
|
|
success
|