diff options
Diffstat (limited to 'Test/ztst.zsh')
-rwxr-xr-x | Test/ztst.zsh | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/Test/ztst.zsh b/Test/ztst.zsh index cdd84b55d..0b2679927 100755 --- a/Test/ztst.zsh +++ b/Test/ztst.zsh @@ -104,19 +104,23 @@ fpath=( $ZTST_srcdir/../Functions/*~*/CVS(/) $ZTST_srcdir/../Completion/*/*~*/CVS(/) ) : ${TMPPREFIX:=/tmp/zsh} +ZTST_tmp=${TMPPREFIX}.ztst.$$ +if ! rm -f $ZTST_tmp || ! mkdir -p $ZTST_tmp || ! chmod go-w $ZTST_tmp; then + print "Can't create $ZTST_tmp for exclusive use." >&2 + exit 1 +fi # Temporary files for redirection inside tests. -ZTST_in=${TMPPREFIX}.ztst.in.$$ +ZTST_in=${ZTST_tmp}/ztst.in # hold the expected output -ZTST_out=${TMPPREFIX}.ztst.out.$$ -ZTST_err=${TMPPREFIX}.ztst.err.$$ +ZTST_out=${ZTST_tmp}/ztst.out +ZTST_err=${ZTST_tmp}/ztst.err # hold the actual output from the test -ZTST_tout=${TMPPREFIX}.ztst.tout.$$ -ZTST_terr=${TMPPREFIX}.ztst.terr.$$ +ZTST_tout=${ZTST_tmp}/ztst.tout +ZTST_terr=${ZTST_tmp}/ztst.terr ZTST_cleanup() { cd $ZTST_testdir - rm -rf $ZTST_testdir/dummy.tmp $ZTST_testdir/*.tmp(N) \ - ${TMPPREFIX}.ztst*$$(N) + rm -rf $ZTST_testdir/dummy.tmp $ZTST_testdir/*.tmp(N) ${ZTST_tmp} } # This cleanup always gets performed, even if we abort. Later, @@ -330,10 +334,10 @@ ZTST_diff() { diff_ret=1 fi else - diff_out=$(diff "$@") + diff_out=$(diff -a "$@") diff_ret="$?" if [[ "$diff_ret" != "0" ]]; then - print -r "$diff_out" + print -r -- "$diff_out" fi fi @@ -458,7 +462,7 @@ $(<$ZTST_terr)" rm -rf $ZTST_out print -r -- "${(e)substlines}" >$ZTST_out fi - if [[ $ZTST_flags != *d* ]] && ! ZTST_diff $diff_out -c $ZTST_out $ZTST_tout; then + if [[ $ZTST_flags != *d* ]] && ! ZTST_diff $diff_out -u $ZTST_out $ZTST_tout; then ZTST_testfailed "output differs from expected as shown above for: $ZTST_code${$(<$ZTST_terr):+ Error output: @@ -470,7 +474,7 @@ $(<$ZTST_terr)}" rm -rf $ZTST_err print -r -- "${(e)substlines}" >$ZTST_err fi - if [[ $ZTST_flags != *D* ]] && ! ZTST_diff $diff_err -c $ZTST_err $ZTST_terr; then + if [[ $ZTST_flags != *D* ]] && ! ZTST_diff $diff_err -u $ZTST_err $ZTST_terr; then ZTST_testfailed "error output differs from expected as shown above for: $ZTST_code" return 1 |