extend and fix the errexit tests:
* Debian pdksh fails #3 (trap) and #6 (BSD make) * AT&T ksh93 passes all * zsh does not pass them literally, but the actual functionality checked is right there * dash fails #3 (trap) and does not pass #6 due to missing [[ * GNU bash 2 (MirPorts) and 3 (Debian) fails #6 (BSD make) * oksh-current passes all
This commit is contained in:
62
check.t
62
check.t
@ -1,4 +1,4 @@
|
|||||||
# $MirOS: src/bin/mksh/check.t,v 1.262 2009/03/21 11:09:35 tg Exp $
|
# $MirOS: src/bin/mksh/check.t,v 1.263 2009/03/22 15:47:23 tg Exp $
|
||||||
# $OpenBSD: bksl-nl.t,v 1.2 2001/01/28 23:04:56 niklas Exp $
|
# $OpenBSD: bksl-nl.t,v 1.2 2001/01/28 23:04:56 niklas Exp $
|
||||||
# $OpenBSD: history.t,v 1.5 2001/01/28 23:04:56 niklas Exp $
|
# $OpenBSD: history.t,v 1.5 2001/01/28 23:04:56 niklas Exp $
|
||||||
# $OpenBSD: read.t,v 1.3 2003/03/10 03:48:16 david Exp $
|
# $OpenBSD: read.t,v 1.3 2003/03/10 03:48:16 david Exp $
|
||||||
@ -4227,7 +4227,7 @@ expected-stderr:
|
|||||||
---
|
---
|
||||||
name: errexit-2
|
name: errexit-2
|
||||||
description:
|
description:
|
||||||
Check some "exit on error" edge conditions needed for make(1)
|
Check some "exit on error" edge conditions (POSIXly)
|
||||||
stdin:
|
stdin:
|
||||||
set -ex
|
set -ex
|
||||||
if /usr/bin/env true; then
|
if /usr/bin/env true; then
|
||||||
@ -4235,10 +4235,11 @@ stdin:
|
|||||||
fi
|
fi
|
||||||
echo END
|
echo END
|
||||||
expected-stdout:
|
expected-stdout:
|
||||||
|
END
|
||||||
expected-stderr:
|
expected-stderr:
|
||||||
+ /usr/bin/env true
|
+ /usr/bin/env true
|
||||||
+ /usr/bin/env false
|
+ /usr/bin/env false
|
||||||
expected-exit: e != 0
|
+ echo END
|
||||||
---
|
---
|
||||||
name: errexit-3
|
name: errexit-3
|
||||||
description:
|
description:
|
||||||
@ -4257,6 +4258,61 @@ expected-stdout:
|
|||||||
EXIT
|
EXIT
|
||||||
expected-exit: e != 0
|
expected-exit: e != 0
|
||||||
---
|
---
|
||||||
|
name: errexit-4
|
||||||
|
description:
|
||||||
|
"set -e" test suite (POSIX)
|
||||||
|
stdin:
|
||||||
|
set -e
|
||||||
|
echo pre
|
||||||
|
if true ; then
|
||||||
|
false && echo foo
|
||||||
|
fi
|
||||||
|
echo bar
|
||||||
|
expected-stdout:
|
||||||
|
pre
|
||||||
|
bar
|
||||||
|
---
|
||||||
|
name: errexit-5
|
||||||
|
description:
|
||||||
|
"set -e" test suite (POSIX)
|
||||||
|
stdin:
|
||||||
|
set -e
|
||||||
|
foo() {
|
||||||
|
while [ "$1" ]; do
|
||||||
|
for E in $x; do
|
||||||
|
[ "$1" = "$E" ] && { shift ; continue 2 ; }
|
||||||
|
done
|
||||||
|
x="$x $1"
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
echo $x
|
||||||
|
}
|
||||||
|
echo pre
|
||||||
|
foo a b b c
|
||||||
|
echo post
|
||||||
|
expected-stdout:
|
||||||
|
pre
|
||||||
|
a b c
|
||||||
|
post
|
||||||
|
---
|
||||||
|
name: errexit-6
|
||||||
|
description:
|
||||||
|
"set -e" test suite (BSD make)
|
||||||
|
category: os:mirbsd
|
||||||
|
stdin:
|
||||||
|
mkdir zd zd/a zd/b
|
||||||
|
printf 'all:\n\t@echo eins\n\t@exit 42\n' >zd/a/Makefile
|
||||||
|
printf 'all:\n\t@echo zwei\n' >zd/b/Makefile
|
||||||
|
wd=$(pwd)
|
||||||
|
set -e
|
||||||
|
for entry in a b; do ( set -e; if [[ -d $wd/zd/$entry.i386 ]]; then _newdir_="$entry.i386"; else _newdir_="$entry"; fi; if [[ -z $_THISDIR_ ]]; then _nextdir_="$_newdir_"; else _nextdir_="$_THISDIR_/$_newdir_"; fi; _makefile_spec_=; [[ ! -f $wd/zd/$_newdir_/Makefile.bsd-wrapper ]] || _makefile_spec_="-f Makefile.bsd-wrapper"; subskipdir=; for skipdir in ; do subentry=${skipdir#$entry}; if [[ $subentry != $skipdir ]]; then if [[ -z $subentry ]]; then echo "($_nextdir_ skipped)"; break; fi; subskipdir="$subskipdir ${subentry#/}"; fi; done; if [[ -z $skipdir || -n $subentry ]]; then echo "===> $_nextdir_"; cd $wd/zd/$_newdir_; make SKIPDIR="$subskipdir" $_makefile_spec_ _THISDIR_="$_nextdir_" all; fi; ) done 2>&1 | sed "s!$wd!WD!g"
|
||||||
|
expected-stdout:
|
||||||
|
===> a
|
||||||
|
eins
|
||||||
|
*** Error code 42
|
||||||
|
|
||||||
|
Stop in WD/zd/a (line 2 of Makefile).
|
||||||
|
---
|
||||||
name: test-stlt-1
|
name: test-stlt-1
|
||||||
description:
|
description:
|
||||||
Check that test also can handle string1 < string2 etc.
|
Check that test also can handle string1 < string2 etc.
|
||||||
|
Reference in New Issue
Block a user