18b479b4fd22c13fcf3fd89f8be083180aac87ae7Rob Landley#!/bin/bash
28b479b4fd22c13fcf3fd89f8be083180aac87ae7Rob Landley
31ffa7f45eb4fe3b73f94e69c929ad311d9c44b81Rob LandleyTOPDIR="$PWD"
41ffa7f45eb4fe3b73f94e69c929ad311d9c44b81Rob LandleyFILES="$PWD"/tests/files
58b479b4fd22c13fcf3fd89f8be083180aac87ae7Rob Landley
6387edf547eb09b27ca6d49772eb048d729f09cf4Rob Landleytrap 'kill $(jobs -p) 2>/dev/null; exit 1' INT
7387edf547eb09b27ca6d49772eb048d729f09cf4Rob Landley
8387edf547eb09b27ca6d49772eb048d729f09cf4Rob Landleyrm -rf generated/testdir
9387edf547eb09b27ca6d49772eb048d729f09cf4Rob Landleymkdir -p generated/testdir/testdir
108b479b4fd22c13fcf3fd89f8be083180aac87ae7Rob Landley
11e156d44eb2e9954d37ed0dfa326f263c3ed4c3d7Rob Landleyif [ -z "$TEST_HOST" ]
128b479b4fd22c13fcf3fd89f8be083180aac87ae7Rob Landleythen
1326f52eb13eb27c5aefdb644d96408376b5d63783Rob Landley  if [ $# -ne 0 ]
1426f52eb13eb27c5aefdb644d96408376b5d63783Rob Landley  then
15387edf547eb09b27ca6d49772eb048d729f09cf4Rob Landley    PREFIX=generated/testdir/ scripts/single.sh "$@" || exit 1
1626f52eb13eb27c5aefdb644d96408376b5d63783Rob Landley  else
17387edf547eb09b27ca6d49772eb048d729f09cf4Rob Landley    make install_flat PREFIX=generated/testdir || exit 1
1826f52eb13eb27c5aefdb644d96408376b5d63783Rob Landley  fi
198b479b4fd22c13fcf3fd89f8be083180aac87ae7Rob Landleyfi
208b479b4fd22c13fcf3fd89f8be083180aac87ae7Rob Landley
21387edf547eb09b27ca6d49772eb048d729f09cf4Rob Landleycd generated/testdir
224a855d6cf62cebe40fa9fe97c7e6b9ca49f79b5bRob LandleyPATH="$PWD:$PATH"
234a855d6cf62cebe40fa9fe97c7e6b9ca49f79b5bRob Landleycd testdir
24deb31c82944c1fa98ea2942691c53c9d841c1a66Rob Landleyexport LC_COLLATE=C
258b479b4fd22c13fcf3fd89f8be083180aac87ae7Rob Landley
26387edf547eb09b27ca6d49772eb048d729f09cf4Rob Landley. "$TOPDIR"/scripts/runtest.sh
2737256ff6f390cbf86a14249e32e37865c85f1f2dRob Landley[ -f "$TOPDIR/generated/config.h" ] && export OPTIONFLAGS=:$(echo $(sed -nr 's/^#define CFG_(.*) 1/\1/p' "$TOPDIR/generated/config.h") | sed 's/ /:/g')
288b479b4fd22c13fcf3fd89f8be083180aac87ae7Rob Landley
29ee14fc396dff50a263b62670f5484efcd6316aebRob Landleydo_test()
30ee14fc396dff50a263b62670f5484efcd6316aebRob Landley{
31ee14fc396dff50a263b62670f5484efcd6316aebRob Landley  CMDNAME="${1##*/}"
32ee14fc396dff50a263b62670f5484efcd6316aebRob Landley  CMDNAME="${CMDNAME%.test}"
33ee14fc396dff50a263b62670f5484efcd6316aebRob Landley  [ -z "$2" ] && C="$(readlink -f ../$CMDNAME)" || C="$(which $CMDNAME)"
34ee14fc396dff50a263b62670f5484efcd6316aebRob Landley  if [ ! -z "$C" ]
35ee14fc396dff50a263b62670f5484efcd6316aebRob Landley  then
36ee14fc396dff50a263b62670f5484efcd6316aebRob Landley    . "$1"
37ee14fc396dff50a263b62670f5484efcd6316aebRob Landley  else
38ee14fc396dff50a263b62670f5484efcd6316aebRob Landley    echo "$CMDNAME disabled"
39ee14fc396dff50a263b62670f5484efcd6316aebRob Landley  fi
40ee14fc396dff50a263b62670f5484efcd6316aebRob Landley}
41ee14fc396dff50a263b62670f5484efcd6316aebRob Landley
428b479b4fd22c13fcf3fd89f8be083180aac87ae7Rob Landleyif [ $# -ne 0 ]
438b479b4fd22c13fcf3fd89f8be083180aac87ae7Rob Landleythen
448b479b4fd22c13fcf3fd89f8be083180aac87ae7Rob Landley  for i in "$@"
458b479b4fd22c13fcf3fd89f8be083180aac87ae7Rob Landley  do
46ee14fc396dff50a263b62670f5484efcd6316aebRob Landley    do_test "$TOPDIR"/tests/$i.test
478b479b4fd22c13fcf3fd89f8be083180aac87ae7Rob Landley  done
488b479b4fd22c13fcf3fd89f8be083180aac87ae7Rob Landleyelse
49387edf547eb09b27ca6d49772eb048d729f09cf4Rob Landley  for i in "$TOPDIR"/tests/*.test
508b479b4fd22c13fcf3fd89f8be083180aac87ae7Rob Landley  do
51ee14fc396dff50a263b62670f5484efcd6316aebRob Landley    if [ -z "$TEST_HOST" ]
52c564834cdc4554c601ad6d23a17a4b84ab95953dRob Landley    then
53ee14fc396dff50a263b62670f5484efcd6316aebRob Landley      do_test "$i" 1
54c564834cdc4554c601ad6d23a17a4b84ab95953dRob Landley    else
55ee14fc396dff50a263b62670f5484efcd6316aebRob Landley      rm -rf testdir && mkdir testdir && cd testdir || exit 1
56ee14fc396dff50a263b62670f5484efcd6316aebRob Landley      do_test "$i"
57ee14fc396dff50a263b62670f5484efcd6316aebRob Landley      cd ..
58c564834cdc4554c601ad6d23a17a4b84ab95953dRob Landley    fi
598b479b4fd22c13fcf3fd89f8be083180aac87ae7Rob Landley  done
608b479b4fd22c13fcf3fd89f8be083180aac87ae7Rob Landleyfi
61