#!/bin/sh -eu

my_cleanup() {
    [ -n "${workdir:-}" ] && rm -rf "${workdir}"
}

trap "my_cleanup" EXIT
for sig in INT TERM ; do
    # We want sig to expand right here and now, as it's
    # a loop variable, not when signalled. For $$ it
    # doesn't matter.
    # shellcheck disable=SC2064
    trap "my_cleanup ; trap - EXIT ; trap - ${sig} ; kill -s ${sig} $$" ${sig}
done

workdir=$(mktemp -d -t onig.ptest.XXXXXX)
status="${workdir}/failed"
touch "${status}"

find tests/ -perm -111 -type f ! -path "tests/.debug/*" -exec sh -c '
    workdir="${1}"
    status="${2}"
    t="${3}"
    t_log="${workdir}/$(basename ${t}).log"

    res=0
    ./${t} > "${t_log}" 2>&1 \
        || res=$?
    if [ $res -eq 0 ] ; then
        echo "PASS: ${t}"
    else
        echo "FAIL: ${t}"
        echo "$(basename ${t}): ${t_log}" >> "${status}"
    fi
    ' _ "${workdir}" "${status}" {} \;

if [ $(stat -c '%s' "${status}") -ne 0 ] ; then
    exec >&2
    while IFS=': ' read -r t t_log ; do
        printf "\n=========================\n"
        printf "ERROR: %s:\n" "${t}"
        printf --  "-------------------------\n"
        cat "${t_log}"
    done < "${status}"
fi

[ $(stat -c '%s' "${status}") -eq 0 ]
