tests: Tweak the isolation wrapper for style and robustness.

Followup to c015339202.

Suggested-by: Matthew Martin
This commit is contained in:
Daniel Shahaf 2015-11-17 01:05:05 +00:00
parent 8f19af6b31
commit 1397f1bae1

View File

@ -114,14 +114,14 @@ run_test_internal() {
run_test() { run_test() {
# Do not combine the declaration and initialization: «local x="$(false)"» does not set $?. # Do not combine the declaration and initialization: «local x="$(false)"» does not set $?.
local __tests_tempdir; __tests_tempdir="$(mktemp -d)" local __tests_tempdir
if [[ $? -ne 0 ]] || [[ -z $__tests_tempdir ]] || [[ ! -d $__tests_tempdir ]]; then __tests_tempdir="$(mktemp -d)" && [[ -d $__tests_tempdir ]] || {
echo >&2 "Bail out! mktemp failed"; return 1 echo >&2 "Bail out! mktemp failed"; return 1
fi }
typeset -r __tests_tempdir # don't allow tests to override the variable that we will 'rm -rf' later on typeset -r __tests_tempdir # don't allow tests to override the variable that we will 'rm -rf' later on
{ {
run_test_internal "$__tests_tempdir" "$@" (run_test_internal "$__tests_tempdir" "$@")
} always { } always {
rm -rf -- "$__tests_tempdir" rm -rf -- "$__tests_tempdir"
} }
@ -130,7 +130,7 @@ run_test() {
# Process each test data file in test data directory. # Process each test data file in test data directory.
integer something_failed=0 integer something_failed=0
for data_file in ${0:h:h}/highlighters/$1/test-data/*.zsh; do for data_file in ${0:h:h}/highlighters/$1/test-data/*.zsh; do
(run_test "$data_file") | tee >(${0:A:h}/tap-colorizer.zsh) | grep -v '^not ok.*# TODO' | grep -q '^not ok\|^ok.*# TODO' && (( something_failed=1 )) run_test "$data_file" | tee >(${0:A:h}/tap-colorizer.zsh) | grep -v '^not ok.*# TODO' | grep -q '^not ok\|^ok.*# TODO' && (( something_failed=1 ))
(( $pipestatus[1] )) && exit 2 (( $pipestatus[1] )) && exit 2
done done