#!/bin/bash source scripts/runtest.sh source scripts/portability.sh TOPDIR="$PWD" export FILES="$PWD"/tests/files trap 'kill $(jobs -p) 2>/dev/null; exit 1' INT rm -rf generated/testdir mkdir -p generated/testdir/testdir if [ -z "$TEST_HOST" ] then if [ $# -ne 0 ] then PREFIX=generated/testdir/ scripts/single.sh "$@" || exit 1 else make install_flat PREFIX=generated/testdir || exit 1 fi fi cd generated/testdir PATH="$PWD:$PATH" TESTDIR="$PWD" export LC_COLLATE=C [ -f "$TOPDIR/generated/config.h" ] && export OPTIONFLAGS=:$(echo $($SED -nr 's/^#define CFG_(.*) 1/\1/p' "$TOPDIR/generated/config.h") | $SED 's/ /:/g') do_test() { cd "$TESTDIR" && rm -rf testdir continue && mkdir testdir && cd testdir || exit 1 CMDNAME="${1##*/}" CMDNAME="${CMDNAME%.test}" if [ -z "$TEST_HOST" ] then C="$TESTDIR/$CMDNAME" [ ! -e "$C" ] && echo "$CMDNAME disabled" && return else C="$(which $CMDNAME 2>/dev/null)" [ -z "$C" ] && printf '%s\n' "$SHOWSKIP: no $CMDNAME" && return fi C="$(dirname $(realpath "$C"))/$CMDNAME" (. "$1"; cd "$TESTDIR"; touch continue) cd "$TESTDIR" [ -e continue ] || exit 1 } if [ $# -ne 0 ] then for i in "$@" do do_test "$TOPDIR"/tests/$i.test done else for i in "$TOPDIR"/tests/*.test do [ -z "$TEST_ALL" ] && [ ! -x "$i" ] && continue do_test "$i" done fi [ $FAILCOUNT -eq 0 ]