#!/bin/sh

set -eu

export PATH="$PATH:/usr/libexec:/usr/lib/$(dpkg-architecture --query=DEB_HOST_GNU_TYPE 2>/dev/null)"

cd tests

EXIT=0

for f in $(find . -type f -executable | sort) ; do
    echo "I: Preparing test $f"
    # replace socket activation with socat, systemd-socket-activate
    # results in spurious errors I've already spent hours debugging.
    if [ "$f" = './adv' ] ; then
        sed -i -e 's;\$SD_ACTIVATE -l "127.0.0.1:\$PORT" -a \$VALGRIND tangd \$TMP/db;socat TCP-LISTEN:$PORT,bind=127.0.0.1,fork "EXEC:tangd $TMP/db";' $f
    elif [ "$f" = './rec' ] ; then
        sed -i -e 's;\$SD_ACTIVATE -l 127.0.0.1:\$port -a \$VALGRIND tangd \$TMP/db;socat TCP-LISTEN:$port,bind=127.0.0.1,fork "EXEC:tangd $TMP/db";' $f
    fi
    echo "I: Running test $f"
    # test are very noisy, keep them silent as long as they pass
    chronic "$f" || EXIT=1
done

exit $EXIT