summaryrefslogtreecommitdiffstats
path: root/tools/regression
diff options
context:
space:
mode:
authorstefanf <stefanf@FreeBSD.org>2005-09-04 11:59:59 +0000
committerstefanf <stefanf@FreeBSD.org>2005-09-04 11:59:59 +0000
commitce5d9c9b6dd571b4283b6061ea0da0c36d2f5488 (patch)
treede352b66017836f6f51a79fbc4034ba9f690bfe6 /tools/regression
parent4f6bd877d34f81ed26acdfccfef79093b1042995 (diff)
downloadFreeBSD-src-ce5d9c9b6dd571b4283b6061ea0da0c36d2f5488.zip
FreeBSD-src-ce5d9c9b6dd571b4283b6061ea0da0c36d2f5488.tar.gz
Add a couple of regression tests for /bin/sh.
Diffstat (limited to 'tools/regression')
-rw-r--r--tools/regression/bin/sh/Makefile4
-rw-r--r--tools/regression/bin/sh/builtins/alias.06
-rw-r--r--tools/regression/bin/sh/builtins/alias.0.stdout1
-rw-r--r--tools/regression/bin/sh/builtins/alias.13
-rw-r--r--tools/regression/bin/sh/builtins/alias.1.stderr1
-rw-r--r--tools/regression/bin/sh/builtins/unalias.021
-rw-r--r--tools/regression/bin/sh/regress.sh42
-rw-r--r--tools/regression/bin/sh/regress.t6
-rw-r--r--tools/regression/bin/sh/set-e/and1.03
-rw-r--r--tools/regression/bin/sh/set-e/and2.14
-rw-r--r--tools/regression/bin/sh/set-e/and3.04
-rw-r--r--tools/regression/bin/sh/set-e/and4.04
-rw-r--r--tools/regression/bin/sh/set-e/background1.03
-rw-r--r--tools/regression/bin/sh/set-e/cmd1.03
-rw-r--r--tools/regression/bin/sh/set-e/cmd2.14
-rw-r--r--tools/regression/bin/sh/set-e/elif1.05
-rw-r--r--tools/regression/bin/sh/set-e/elif2.05
-rw-r--r--tools/regression/bin/sh/set-e/if1.04
-rw-r--r--tools/regression/bin/sh/set-e/if2.07
-rw-r--r--tools/regression/bin/sh/set-e/if3.04
-rw-r--r--tools/regression/bin/sh/set-e/not1.04
-rw-r--r--tools/regression/bin/sh/set-e/not2.03
-rw-r--r--tools/regression/bin/sh/set-e/or1.03
-rw-r--r--tools/regression/bin/sh/set-e/or2.03
-rw-r--r--tools/regression/bin/sh/set-e/or3.14
-rw-r--r--tools/regression/bin/sh/set-e/pipe1.14
-rw-r--r--tools/regression/bin/sh/set-e/pipe2.03
-rw-r--r--tools/regression/bin/sh/set-e/return1.011
-rw-r--r--tools/regression/bin/sh/set-e/semi1.14
-rw-r--r--tools/regression/bin/sh/set-e/semi2.14
-rw-r--r--tools/regression/bin/sh/set-e/subshell1.03
-rw-r--r--tools/regression/bin/sh/set-e/subshell2.14
-rw-r--r--tools/regression/bin/sh/set-e/until1.05
-rw-r--r--tools/regression/bin/sh/set-e/until2.05
-rw-r--r--tools/regression/bin/sh/set-e/while1.04
-rw-r--r--tools/regression/bin/sh/set-e/while2.04
36 files changed, 202 insertions, 0 deletions
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
OpenPOWER on IntegriCloud