Test infrastructure: collate make "test_single" and "make tests" into common
function, and add $C variable with an absolute path to the command being tested (you need to call things like printf by path to avoid shell builtins, might as well be consistent).
This commit is contained in:
parent
54e8313d6a
commit
ee14fc396d
@ -26,25 +26,35 @@ export LC_COLLATE=C
|
||||
. "$TOPDIR"/scripts/runtest.sh
|
||||
[ -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()
|
||||
{
|
||||
CMDNAME="${1##*/}"
|
||||
CMDNAME="${CMDNAME%.test}"
|
||||
[ -z "$2" ] && C="$(readlink -f ../$CMDNAME)" || C="$(which $CMDNAME)"
|
||||
if [ ! -z "$C" ]
|
||||
then
|
||||
. "$1"
|
||||
else
|
||||
echo "$CMDNAME disabled"
|
||||
fi
|
||||
}
|
||||
|
||||
if [ $# -ne 0 ]
|
||||
then
|
||||
for i in "$@"
|
||||
do
|
||||
CMDNAME="${i##*/}"
|
||||
CMDNAME="${CMDNAME%.test}"
|
||||
. "$TOPDIR"/tests/$i.test
|
||||
do_test "$TOPDIR"/tests/$i.test
|
||||
done
|
||||
else
|
||||
for i in "$TOPDIR"/tests/*.test
|
||||
do
|
||||
CMDNAME="${i##*/}"
|
||||
CMDNAME="${CMDNAME%.test}"
|
||||
if [ -h ../$CMDNAME ] || [ ! -z "$TEST_HOST" ]
|
||||
if [ -z "$TEST_HOST" ]
|
||||
then
|
||||
cd .. && rm -rf testdir && mkdir testdir && cd testdir || exit 1
|
||||
. $i
|
||||
do_test "$i" 1
|
||||
else
|
||||
echo "$CMDNAME disabled"
|
||||
rm -rf testdir && mkdir testdir && cd testdir || exit 1
|
||||
do_test "$i"
|
||||
cd ..
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
Loading…
Reference in New Issue
Block a user