better waiting

This commit is contained in:
Thomas Levine 2016-02-26 17:27:14 +00:00
parent aa05b95715
commit 41a63f003c
2 changed files with 22 additions and 14 deletions

View File

@ -1,5 +1,5 @@
tmp=$(mktemp) tmp=$(mktemp)
../urchin -e -f ./.die-on-fail > $tmp ../urchin -e -b -f ./.die-on-fail > $tmp
result=$? result=$?
grep '1 should run.' $tmp grep '1 should run.' $tmp

34
urchin
View File

@ -67,20 +67,23 @@ recurse() {
[ -f setup ] && [ -x setup ] && ./setup >> "$stdout_file" [ -f setup ] && [ -x setup ] && ./setup >> "$stdout_file"
# $2 instead of $indent_level so it doesn't clash # $2 instead of $indent_level so it doesn't clash
recurse "${test}" $(( $2 + 1 )) "$shell_for_sh_tests" & (
recurse "${test}" $(( $2 + 1 )) "$shell_for_sh_tests"
# if $single_process; then wait; fi exit_code=$?
wait $!
exit_code=$?
if $exit_on_fail && test $exit_code -ne 0; then
[ -f teardown ] && [ -x teardown ] && ./teardown >> "$stdout_file" [ -f teardown ] && [ -x teardown ] && ./teardown >> "$stdout_file"
[ -f teardown_dir ] && [ -x teardown_dir ] && ./teardown_dir >> "$stdout_file" exit $exit_code
return 1 ) &
fi
[ -f teardown ] && [ -x teardown ] && ./teardown >> "$stdout_file" if $single_process; then
wait $!
exit_code=$?
if $exit_on_fail && test $exit_code -ne 0; then
[ -f teardown_dir ] && [ -x teardown_dir ] && ./teardown_dir >> "$stdout_file"
return 1
fi
fi
done done
wait
[ -f teardown_dir ] && [ -x teardown_dir ] && ./teardown_dir >> "$stdout_file" [ -f teardown_dir ] && [ -x teardown_dir ] && ./teardown_dir >> "$stdout_file"
) )
if $tap_format; then if $tap_format; then
@ -290,7 +293,7 @@ do
which "$shell_for_sh_tests" > /dev/null || { which "$shell_for_sh_tests" > /dev/null || {
echo "Cannot find specified shell: '$shell_for_sh_tests'" >&2 echo "Cannot find specified shell: '$shell_for_sh_tests'" >&2
urchin_help >&2 urchin_help >&2
exit 2 exit 3
} ;; } ;;
-t) tap_format=true;; -t) tap_format=true;;
-h|--help) urchin_help -h|--help) urchin_help
@ -309,7 +312,12 @@ if [ "$#" != '1' ] || [ ! -d "$1" ]
then then
[ -n "$1" ] && [ ! -d "$1" ] && echo "Not a directory: '$1'" >&2 [ -n "$1" ] && [ ! -d "$1" ] && echo "Not a directory: '$1'" >&2
echo "$USAGE" >&2 echo "$USAGE" >&2
exit 2 exit 3
fi
if $exit_on_fail && ! $single_process; then
echo 'You must specify -b/--series in order to use -e.' >&2
exit 3
fi fi
# Constants # Constants