From ce5d9c9b6dd571b4283b6061ea0da0c36d2f5488 Mon Sep 17 00:00:00 2001 From: stefanf Date: Sun, 4 Sep 2005 11:59:59 +0000 Subject: Add a couple of regression tests for /bin/sh. --- tools/regression/bin/sh/Makefile | 4 +++ tools/regression/bin/sh/builtins/alias.0 | 6 ++++ tools/regression/bin/sh/builtins/alias.0.stdout | 1 + tools/regression/bin/sh/builtins/alias.1 | 3 ++ tools/regression/bin/sh/builtins/alias.1.stderr | 1 + tools/regression/bin/sh/builtins/unalias.0 | 21 +++++++++++++ tools/regression/bin/sh/regress.sh | 42 +++++++++++++++++++++++++ tools/regression/bin/sh/regress.t | 6 ++++ tools/regression/bin/sh/set-e/and1.0 | 3 ++ tools/regression/bin/sh/set-e/and2.1 | 4 +++ tools/regression/bin/sh/set-e/and3.0 | 4 +++ tools/regression/bin/sh/set-e/and4.0 | 4 +++ tools/regression/bin/sh/set-e/background1.0 | 3 ++ tools/regression/bin/sh/set-e/cmd1.0 | 3 ++ tools/regression/bin/sh/set-e/cmd2.1 | 4 +++ tools/regression/bin/sh/set-e/elif1.0 | 5 +++ tools/regression/bin/sh/set-e/elif2.0 | 5 +++ tools/regression/bin/sh/set-e/if1.0 | 4 +++ tools/regression/bin/sh/set-e/if2.0 | 7 +++++ tools/regression/bin/sh/set-e/if3.0 | 4 +++ tools/regression/bin/sh/set-e/not1.0 | 4 +++ tools/regression/bin/sh/set-e/not2.0 | 3 ++ tools/regression/bin/sh/set-e/or1.0 | 3 ++ tools/regression/bin/sh/set-e/or2.0 | 3 ++ tools/regression/bin/sh/set-e/or3.1 | 4 +++ tools/regression/bin/sh/set-e/pipe1.1 | 4 +++ tools/regression/bin/sh/set-e/pipe2.0 | 3 ++ tools/regression/bin/sh/set-e/return1.0 | 11 +++++++ tools/regression/bin/sh/set-e/semi1.1 | 4 +++ tools/regression/bin/sh/set-e/semi2.1 | 4 +++ tools/regression/bin/sh/set-e/subshell1.0 | 3 ++ tools/regression/bin/sh/set-e/subshell2.1 | 4 +++ tools/regression/bin/sh/set-e/until1.0 | 5 +++ tools/regression/bin/sh/set-e/until2.0 | 5 +++ tools/regression/bin/sh/set-e/while1.0 | 4 +++ tools/regression/bin/sh/set-e/while2.0 | 4 +++ 36 files changed, 202 insertions(+) create mode 100644 tools/regression/bin/sh/Makefile create mode 100644 tools/regression/bin/sh/builtins/alias.0 create mode 100644 tools/regression/bin/sh/builtins/alias.0.stdout create mode 100644 tools/regression/bin/sh/builtins/alias.1 create mode 100644 tools/regression/bin/sh/builtins/alias.1.stderr create mode 100644 tools/regression/bin/sh/builtins/unalias.0 create mode 100644 tools/regression/bin/sh/regress.sh create mode 100644 tools/regression/bin/sh/regress.t create mode 100644 tools/regression/bin/sh/set-e/and1.0 create mode 100644 tools/regression/bin/sh/set-e/and2.1 create mode 100644 tools/regression/bin/sh/set-e/and3.0 create mode 100644 tools/regression/bin/sh/set-e/and4.0 create mode 100644 tools/regression/bin/sh/set-e/background1.0 create mode 100644 tools/regression/bin/sh/set-e/cmd1.0 create mode 100644 tools/regression/bin/sh/set-e/cmd2.1 create mode 100644 tools/regression/bin/sh/set-e/elif1.0 create mode 100644 tools/regression/bin/sh/set-e/elif2.0 create mode 100644 tools/regression/bin/sh/set-e/if1.0 create mode 100644 tools/regression/bin/sh/set-e/if2.0 create mode 100644 tools/regression/bin/sh/set-e/if3.0 create mode 100644 tools/regression/bin/sh/set-e/not1.0 create mode 100644 tools/regression/bin/sh/set-e/not2.0 create mode 100644 tools/regression/bin/sh/set-e/or1.0 create mode 100644 tools/regression/bin/sh/set-e/or2.0 create mode 100644 tools/regression/bin/sh/set-e/or3.1 create mode 100644 tools/regression/bin/sh/set-e/pipe1.1 create mode 100644 tools/regression/bin/sh/set-e/pipe2.0 create mode 100644 tools/regression/bin/sh/set-e/return1.0 create mode 100644 tools/regression/bin/sh/set-e/semi1.1 create mode 100644 tools/regression/bin/sh/set-e/semi2.1 create mode 100644 tools/regression/bin/sh/set-e/subshell1.0 create mode 100644 tools/regression/bin/sh/set-e/subshell2.1 create mode 100644 tools/regression/bin/sh/set-e/until1.0 create mode 100644 tools/regression/bin/sh/set-e/until2.0 create mode 100644 tools/regression/bin/sh/set-e/while1.0 create mode 100644 tools/regression/bin/sh/set-e/while2.0 (limited to 'tools/regression') diff --git a/tools/regression/bin/sh/Makefile b/tools/regression/bin/sh/Makefile new file mode 100644 index 0000000..2c9ca59 --- /dev/null +++ b/tools/regression/bin/sh/Makefile @@ -0,0 +1,4 @@ +# $FreeBSD$ + +all: + sh regress.sh diff --git a/tools/regression/bin/sh/builtins/alias.0 b/tools/regression/bin/sh/builtins/alias.0 new file mode 100644 index 0000000..39c748a --- /dev/null +++ b/tools/regression/bin/sh/builtins/alias.0 @@ -0,0 +1,6 @@ +# $FreeBSD$ +set -e + +unalias -a +alias foo=bar +alias diff --git a/tools/regression/bin/sh/builtins/alias.0.stdout b/tools/regression/bin/sh/builtins/alias.0.stdout new file mode 100644 index 0000000..1d5d296 --- /dev/null +++ b/tools/regression/bin/sh/builtins/alias.0.stdout @@ -0,0 +1 @@ +foo='bar' diff --git a/tools/regression/bin/sh/builtins/alias.1 b/tools/regression/bin/sh/builtins/alias.1 new file mode 100644 index 0000000..31403dc --- /dev/null +++ b/tools/regression/bin/sh/builtins/alias.1 @@ -0,0 +1,3 @@ +# $FreeBSD$ +unalias -a +alias foo diff --git a/tools/regression/bin/sh/builtins/alias.1.stderr b/tools/regression/bin/sh/builtins/alias.1.stderr new file mode 100644 index 0000000..5ea01d5 --- /dev/null +++ b/tools/regression/bin/sh/builtins/alias.1.stderr @@ -0,0 +1 @@ +alias: foo not found diff --git a/tools/regression/bin/sh/builtins/unalias.0 b/tools/regression/bin/sh/builtins/unalias.0 new file mode 100644 index 0000000..34d8d6e --- /dev/null +++ b/tools/regression/bin/sh/builtins/unalias.0 @@ -0,0 +1,21 @@ +# $FreeBSD$ +set -e + +alias false=true +false +unalias false +false && exit 1 +unalias false && exit 1 + +alias a1=foo a2=bar +unalias a1 a2 +unalias a1 && exit 1 +unalias a2 && exit 1 +alias a2=bar +unalias a1 a2 && exit 1 + +alias a1=foo a2=bar +unalias -a +unalias a1 && exit 1 +unalias a2 && exit 1 +exit 0 diff --git a/tools/regression/bin/sh/regress.sh b/tools/regression/bin/sh/regress.sh new file mode 100644 index 0000000..0e098d0 --- /dev/null +++ b/tools/regression/bin/sh/regress.sh @@ -0,0 +1,42 @@ +# $FreeBSD$ + +echo '1..31' + +COUNTER=1 + +do_test() { + local c + c=${COUNTER} + COUNTER=$((COUNTER+1)) + sh $1 > tmp.stdout 2> tmp.stderr + if [ $? -ne $2 ]; then + echo "not ok ${c} - ${1} # wrong exit status" + rm tmp.stdout tmp.stderr + return + fi + for i in stdout stderr; do + if [ -f ${1}.${i} ]; then + if ! cmp -s tmp.${i} ${1}.${i}; then + echo "not ok ${c} - ${1} # wrong output on ${i}" + rm tmp.stdout tmp.stderr + return + fi + elif [ -s tmp.${i} ]; then + echo "not ok ${c} - ${1} # wrong output on ${i}" + rm tmp.stdout tmp.stderr + return + fi + done + echo "ok ${c} - ${1}" + rm tmp.stdout tmp.stderr +} + +SUCCESS=$(find . -name "*.0") +for i in ${SUCCESS} ; do + do_test ${i} 0 +done + +FAILURE=$(find . -name "*.1") +for i in ${FAILURE} ; do + do_test ${i} 1 +done diff --git a/tools/regression/bin/sh/regress.t b/tools/regression/bin/sh/regress.t new file mode 100644 index 0000000..c36d834 --- /dev/null +++ b/tools/regression/bin/sh/regress.t @@ -0,0 +1,6 @@ +#!/bin/sh +# $FreeBSD$ + +cd `dirname $0` + +sh regress.sh diff --git a/tools/regression/bin/sh/set-e/and1.0 b/tools/regression/bin/sh/set-e/and1.0 new file mode 100644 index 0000000..607b7c3 --- /dev/null +++ b/tools/regression/bin/sh/set-e/and1.0 @@ -0,0 +1,3 @@ +# $FreeBSD$ +set -e +true && true diff --git a/tools/regression/bin/sh/set-e/and2.1 b/tools/regression/bin/sh/set-e/and2.1 new file mode 100644 index 0000000..78e203a --- /dev/null +++ b/tools/regression/bin/sh/set-e/and2.1 @@ -0,0 +1,4 @@ +# $FreeBSD$ +set -e +true && false +exit 0 diff --git a/tools/regression/bin/sh/set-e/and3.0 b/tools/regression/bin/sh/set-e/and3.0 new file mode 100644 index 0000000..9fafb1c --- /dev/null +++ b/tools/regression/bin/sh/set-e/and3.0 @@ -0,0 +1,4 @@ +# $FreeBSD$ +set -e +false && true +exit 0 diff --git a/tools/regression/bin/sh/set-e/and4.0 b/tools/regression/bin/sh/set-e/and4.0 new file mode 100644 index 0000000..25d0e61 --- /dev/null +++ b/tools/regression/bin/sh/set-e/and4.0 @@ -0,0 +1,4 @@ +# $FreeBSD$ +set -e +false && false +exit 0 diff --git a/tools/regression/bin/sh/set-e/background1.0 b/tools/regression/bin/sh/set-e/background1.0 new file mode 100644 index 0000000..21577f4 --- /dev/null +++ b/tools/regression/bin/sh/set-e/background1.0 @@ -0,0 +1,3 @@ +# $FreeBSD$ +set -e +false & diff --git a/tools/regression/bin/sh/set-e/cmd1.0 b/tools/regression/bin/sh/set-e/cmd1.0 new file mode 100644 index 0000000..67fdcbc --- /dev/null +++ b/tools/regression/bin/sh/set-e/cmd1.0 @@ -0,0 +1,3 @@ +# $FreeBSD$ +set -e +true diff --git a/tools/regression/bin/sh/set-e/cmd2.1 b/tools/regression/bin/sh/set-e/cmd2.1 new file mode 100644 index 0000000..7cd8b09 --- /dev/null +++ b/tools/regression/bin/sh/set-e/cmd2.1 @@ -0,0 +1,4 @@ +# $FreeBSD$ +set -e +false +exit 0 diff --git a/tools/regression/bin/sh/set-e/elif1.0 b/tools/regression/bin/sh/set-e/elif1.0 new file mode 100644 index 0000000..80c7af6 --- /dev/null +++ b/tools/regression/bin/sh/set-e/elif1.0 @@ -0,0 +1,5 @@ +# $FreeBSD$ +set -e +if false; then +elif false; then +fi diff --git a/tools/regression/bin/sh/set-e/elif2.0 b/tools/regression/bin/sh/set-e/elif2.0 new file mode 100644 index 0000000..028938b --- /dev/null +++ b/tools/regression/bin/sh/set-e/elif2.0 @@ -0,0 +1,5 @@ +# $FreeBSD$ +set -e +if false; then +elif false; false; then +fi diff --git a/tools/regression/bin/sh/set-e/if1.0 b/tools/regression/bin/sh/set-e/if1.0 new file mode 100644 index 0000000..0be254b --- /dev/null +++ b/tools/regression/bin/sh/set-e/if1.0 @@ -0,0 +1,4 @@ +# $FreeBSD$ +set -e +if false; then +fi diff --git a/tools/regression/bin/sh/set-e/if2.0 b/tools/regression/bin/sh/set-e/if2.0 new file mode 100644 index 0000000..4955408 --- /dev/null +++ b/tools/regression/bin/sh/set-e/if2.0 @@ -0,0 +1,7 @@ +# $FreeBSD$ +set -e +# PR 28852 +if true; then + false && true +fi +exit 0 diff --git a/tools/regression/bin/sh/set-e/if3.0 b/tools/regression/bin/sh/set-e/if3.0 new file mode 100644 index 0000000..fdeacc0 --- /dev/null +++ b/tools/regression/bin/sh/set-e/if3.0 @@ -0,0 +1,4 @@ +# $FreeBSD$ +set -e +if false; false then +fi diff --git a/tools/regression/bin/sh/set-e/not1.0 b/tools/regression/bin/sh/set-e/not1.0 new file mode 100644 index 0000000..21c089a --- /dev/null +++ b/tools/regression/bin/sh/set-e/not1.0 @@ -0,0 +1,4 @@ +# $FreeBSD$ +set -e +! true +exit 0 diff --git a/tools/regression/bin/sh/set-e/not2.0 b/tools/regression/bin/sh/set-e/not2.0 new file mode 100644 index 0000000..59b9c1c --- /dev/null +++ b/tools/regression/bin/sh/set-e/not2.0 @@ -0,0 +1,3 @@ +# $FreeBSD$ +set -e +! false diff --git a/tools/regression/bin/sh/set-e/or1.0 b/tools/regression/bin/sh/set-e/or1.0 new file mode 100644 index 0000000..c2dcbe9 --- /dev/null +++ b/tools/regression/bin/sh/set-e/or1.0 @@ -0,0 +1,3 @@ +# $FreeBSD$ +set -e +true || false diff --git a/tools/regression/bin/sh/set-e/or2.0 b/tools/regression/bin/sh/set-e/or2.0 new file mode 100644 index 0000000..934e2a6 --- /dev/null +++ b/tools/regression/bin/sh/set-e/or2.0 @@ -0,0 +1,3 @@ +# $FreeBSD$ +set -e +false || true diff --git a/tools/regression/bin/sh/set-e/or3.1 b/tools/regression/bin/sh/set-e/or3.1 new file mode 100644 index 0000000..7a617a1 --- /dev/null +++ b/tools/regression/bin/sh/set-e/or3.1 @@ -0,0 +1,4 @@ +# $FreeBSD$ +set -e +false || false +exit 0 diff --git a/tools/regression/bin/sh/set-e/pipe1.1 b/tools/regression/bin/sh/set-e/pipe1.1 new file mode 100644 index 0000000..c0bad0f --- /dev/null +++ b/tools/regression/bin/sh/set-e/pipe1.1 @@ -0,0 +1,4 @@ +# $FreeBSD$ +set -e +true | false +exit 0 diff --git a/tools/regression/bin/sh/set-e/pipe2.0 b/tools/regression/bin/sh/set-e/pipe2.0 new file mode 100644 index 0000000..1e25566 --- /dev/null +++ b/tools/regression/bin/sh/set-e/pipe2.0 @@ -0,0 +1,3 @@ +# $FreeBSD$ +set -e +false | true diff --git a/tools/regression/bin/sh/set-e/return1.0 b/tools/regression/bin/sh/set-e/return1.0 new file mode 100644 index 0000000..ff20a07 --- /dev/null +++ b/tools/regression/bin/sh/set-e/return1.0 @@ -0,0 +1,11 @@ +# $FreeBSD$ +set -e + +# PR 85267 +f() { + false || return 1 + return 0 +} + +f || true +exit 0 diff --git a/tools/regression/bin/sh/set-e/semi1.1 b/tools/regression/bin/sh/set-e/semi1.1 new file mode 100644 index 0000000..90476a9 --- /dev/null +++ b/tools/regression/bin/sh/set-e/semi1.1 @@ -0,0 +1,4 @@ +# $FreeBSD$ +set -e +false; true +exit 0 diff --git a/tools/regression/bin/sh/set-e/semi2.1 b/tools/regression/bin/sh/set-e/semi2.1 new file mode 100644 index 0000000..8f510ac --- /dev/null +++ b/tools/regression/bin/sh/set-e/semi2.1 @@ -0,0 +1,4 @@ +# $FreeBSD$ +set -e +true; false +exit 0 diff --git a/tools/regression/bin/sh/set-e/subshell1.0 b/tools/regression/bin/sh/set-e/subshell1.0 new file mode 100644 index 0000000..8e5831b --- /dev/null +++ b/tools/regression/bin/sh/set-e/subshell1.0 @@ -0,0 +1,3 @@ +# $FreeBSD$ +set -e +(true) diff --git a/tools/regression/bin/sh/set-e/subshell2.1 b/tools/regression/bin/sh/set-e/subshell2.1 new file mode 100644 index 0000000..619e98a --- /dev/null +++ b/tools/regression/bin/sh/set-e/subshell2.1 @@ -0,0 +1,4 @@ +# $FreeBSD$ +set -e +(false) +exit 0 diff --git a/tools/regression/bin/sh/set-e/until1.0 b/tools/regression/bin/sh/set-e/until1.0 new file mode 100644 index 0000000..71ea7f2 --- /dev/null +++ b/tools/regression/bin/sh/set-e/until1.0 @@ -0,0 +1,5 @@ +# $FreeBSD$ +set -e +until false; do + break +done diff --git a/tools/regression/bin/sh/set-e/until2.0 b/tools/regression/bin/sh/set-e/until2.0 new file mode 100644 index 0000000..24ea276 --- /dev/null +++ b/tools/regression/bin/sh/set-e/until2.0 @@ -0,0 +1,5 @@ +# $FreeBSD$ +set -e +until false; false; do + break +done diff --git a/tools/regression/bin/sh/set-e/while1.0 b/tools/regression/bin/sh/set-e/while1.0 new file mode 100644 index 0000000..e4c8938 --- /dev/null +++ b/tools/regression/bin/sh/set-e/while1.0 @@ -0,0 +1,4 @@ +# $FreeBSD$ +set -e +while false; do +done diff --git a/tools/regression/bin/sh/set-e/while2.0 b/tools/regression/bin/sh/set-e/while2.0 new file mode 100644 index 0000000..a331237 --- /dev/null +++ b/tools/regression/bin/sh/set-e/while2.0 @@ -0,0 +1,4 @@ +# $FreeBSD$ +set -e +while false; false; do +done -- cgit v1.1