summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorjilles <jilles@FreeBSD.org>2009-06-19 22:15:59 +0000
committerjilles <jilles@FreeBSD.org>2009-06-19 22:15:59 +0000
commit4466baff5e5fd32750e0d6e50f28dacf2802b3bf (patch)
treedf81740d54695861b1705e5443ec274be23db585 /tools
parent1ebc51d79bf1b6b0a5d93e299798adb2eac765bc (diff)
downloadFreeBSD-src-4466baff5e5fd32750e0d6e50f28dacf2802b3bf.zip
FreeBSD-src-4466baff5e5fd32750e0d6e50f28dacf2802b3bf.tar.gz
Add tests for r194406 and r194516.
Approved by: ed (mentor)
Diffstat (limited to 'tools')
-rw-r--r--tools/regression/bin/sh/builtins/trap2.052
-rw-r--r--tools/regression/bin/sh/errors/backquote-error1.04
2 files changed, 56 insertions, 0 deletions
diff --git a/tools/regression/bin/sh/builtins/trap2.0 b/tools/regression/bin/sh/builtins/trap2.0
new file mode 100644
index 0000000..a05287a
--- /dev/null
+++ b/tools/regression/bin/sh/builtins/trap2.0
@@ -0,0 +1,52 @@
+# $FreeBSD$
+# This is really a test for outqstr(), which is readily accessible via trap.
+
+runtest()
+{
+ teststring=$1
+ trap -- "$teststring" USR1
+ traps=$(trap)
+ if [ "$teststring" != "-" ] && [ -z "$traps" ]; then
+ # One possible reading of POSIX requires the above to return an
+ # empty string because backquote commands are executed in a
+ # subshell and subshells shall reset traps. However, an example
+ # in the normative description of the trap builtin shows the
+ # same usage as here, it is useful and our /bin/sh allows it.
+ echo '$(trap) is broken'
+ exit 1
+ fi
+ trap - USR1
+ eval "$traps"
+ traps2=$(trap)
+ if [ "$traps" != "$traps2" ]; then
+ echo "Mismatch for '$teststring'"
+ exit 1
+ fi
+}
+
+runtest 'echo'
+runtest 'echo hi'
+runtest "'echo' 'hi'"
+runtest '"echo" $PATH'
+runtest '\echo "$PATH"'
+runtest ' 0'
+runtest '0 '
+runtest ' 1'
+runtest '1 '
+i=1
+while [ $i -le 127 ]; do
+ c=$(printf \\"$(printf %o $i)")
+ if [ $i -lt 48 ] || [ $i -gt 57 ]; then
+ runtest "$c"
+ fi
+ runtest " $c$c"
+ runtest "a$c"
+ i=$((i+1))
+done
+IFS=,
+runtest ' '
+runtest ','
+unset IFS
+runtest ' '
+
+exit 0
diff --git a/tools/regression/bin/sh/errors/backquote-error1.0 b/tools/regression/bin/sh/errors/backquote-error1.0
new file mode 100644
index 0000000..4d539c0
--- /dev/null
+++ b/tools/regression/bin/sh/errors/backquote-error1.0
@@ -0,0 +1,4 @@
+# $FreeBSD$
+
+echo 'echo `for` echo ".BAD"CODE.' | sh -i 2>&1 | grep -q BADCODE && exit 1
+exit 0
OpenPOWER on IntegriCloud