diff options
Diffstat (limited to 'single-file-test.sh')
-rwxr-xr-x | single-file-test.sh | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/single-file-test.sh b/single-file-test.sh index 26287cf..da9f69a 100755 --- a/single-file-test.sh +++ b/single-file-test.sh @@ -30,32 +30,35 @@ run_one() dir=${file//\//:} name=${file##*/} - mkdir -p work/$dir && - bunzip2 < $file.bz2 > work/$dir/$name && - echo "${*//{\}/$name}" > work/$dir/cmd && { + mkdir -p $work/$dir && + bunzip2 < $file.bz2 > $work/$dir/$name && + echo "${*//{\}/$name}" > $work/$dir/cmd && { - (cd work/$dir && . cmd) > work/$dir/log 2>&1 + (cd $work/$dir && . cmd) > $work/$dir/log 2>&1 status=$? - echo $status > work/$dir/status + echo $status > $work/$dir/status - if [ $status -ne 0 ] || [ -s work/$dir/log ]; then + if [ $status -ne 0 ] || [ -s $work/$dir/log ]; then # Test failed, leave everything there. echo "FAIL ($status) $file $dir" return 0 fi # Look for excess files. Consider it failed if there are any. - ls -A work/$dir | fgrep -q -v "$name + ls -A $work/$dir | fgrep -q -v "$name cmd log status" && { echo "FAIL (files) $file $dir"; return 0; } # Fully clean test, erase the evidence. - rm -rf work/$dir + rm -rf $work/$dir } } if [ "$which" = subr ]; then run_one "$@" else + work=$1 + shift + export work run_all "$@" fi |