toybox/scripts/test.sh
<<
>>
Prefs
   1#!/bin/bash
   2
   3TOPDIR="$PWD"
   4FILES="$PWD"/tests/files
   5
   6trap 'kill $(jobs -p) 2>/dev/null; exit 1' INT
   7
   8rm -rf generated/testdir
   9mkdir -p generated/testdir/testdir
  10
  11if [ -z "$TEST_HOST" ]
  12then
  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
  19fi
  20
  21cd generated/testdir
  22PATH="$PWD:$PATH"
  23cd testdir
  24export 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
  29do_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
  47if [ $# -ne 0 ]
  48then
  49  for i in "$@"
  50  do
  51    do_test "$TOPDIR"/tests/$i.test
  52  done
  53else
  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
  65fi
  66