OSDN Git Service

Merge remote-tracking branch 'toybox/master' into HEAD
[android-x86/external-toybox.git] / scripts / test.sh
1 #!/bin/bash
2
3 TOPDIR="$PWD"
4 FILES="$PWD"/tests/files
5
6 trap 'kill $(jobs -p) 2>/dev/null; exit 1' INT
7
8 rm -rf generated/testdir
9 mkdir -p generated/testdir/testdir
10
11 if [ -z "$TEST_HOST" ]
12 then
13   if [ $# -ne 0 ]
14   then
15     PREFIX=generated/testdir/ scripts/single.sh "$@" || exit 1
16   else
17     make install_flat PREFIX=generated/testdir || exit 1
18   fi
19 fi
20
21 cd generated/testdir
22 PATH="$PWD:$PATH"
23 cd testdir
24 export LC_COLLATE=C
25
26 . "$TOPDIR"/scripts/runtest.sh
27 [ -f "$TOPDIR/generated/config.h" ] && export OPTIONFLAGS=:$(echo $(sed -nr 's/^#define CFG_(.*) 1/\1/p' "$TOPDIR/generated/config.h") | sed 's/ /:/g')
28
29 do_test()
30 {
31   CMDNAME="${1##*/}"
32   CMDNAME="${CMDNAME%.test}"
33   if [ -z "$TEST_HOST" ]
34   then
35     [ -z "$2" ] && C="$(readlink -f ../$CMDNAME)" || C="$(which $CMDNAME)"
36   else
37     C="$CMDNAME"
38   fi
39   if [ ! -z "$C" ]
40   then
41     . "$1"
42   else
43     echo "$CMDNAME disabled"
44   fi
45 }
46
47 if [ $# -ne 0 ]
48 then
49   for i in "$@"
50   do
51     do_test "$TOPDIR"/tests/$i.test
52   done
53 else
54   for i in "$TOPDIR"/tests/*.test
55   do
56     if [ -z "$TEST_HOST" ]
57     then
58       do_test "$i" 1
59     else
60       rm -rf testdir && mkdir testdir && cd testdir || exit 1
61       do_test "$i"
62       cd ..
63     fi
64   done
65 fi