summaryrefslogtreecommitdiffstats
path: root/tools/regression/bin/sh
diff options
context:
space:
mode:
authorjilles <jilles@FreeBSD.org>2013-06-15 22:22:03 +0000
committerjilles <jilles@FreeBSD.org>2013-06-15 22:22:03 +0000
commitb624da1ad8fc3bb5c93a17586be04517f0e427a6 (patch)
tree692c715263907572754c229742263753675a7eac /tools/regression/bin/sh
parent4ea862e26e350153cca8c335600598f96a5eb125 (diff)
downloadFreeBSD-src-b624da1ad8fc3bb5c93a17586be04517f0e427a6.zip
FreeBSD-src-b624da1ad8fc3bb5c93a17586be04517f0e427a6.tar.gz
sh: Add tests for 'local -' (save shell options).
Diffstat (limited to 'tools/regression/bin/sh')
-rw-r--r--tools/regression/bin/sh/builtins/local2.017
-rw-r--r--tools/regression/bin/sh/builtins/local3.026
2 files changed, 43 insertions, 0 deletions
diff --git a/tools/regression/bin/sh/builtins/local2.0 b/tools/regression/bin/sh/builtins/local2.0
new file mode 100644
index 0000000..cc8c10f
--- /dev/null
+++ b/tools/regression/bin/sh/builtins/local2.0
@@ -0,0 +1,17 @@
+# $FreeBSD$
+
+f() {
+ local -
+ set -a
+ case $- in
+ *a*) : ;;
+ *) echo In-function \$- bad
+ esac
+}
+case $- in
+*a*) echo Initial \$- bad
+esac
+f
+case $- in
+*a*) echo Final \$- bad
+esac
diff --git a/tools/regression/bin/sh/builtins/local3.0 b/tools/regression/bin/sh/builtins/local3.0
new file mode 100644
index 0000000..39ee370
--- /dev/null
+++ b/tools/regression/bin/sh/builtins/local3.0
@@ -0,0 +1,26 @@
+# $FreeBSD$
+
+f() {
+ local "$@"
+ set -a
+ x=7
+ case $- in
+ *a*) : ;;
+ *) echo In-function \$- bad
+ esac
+ [ "$x" = 7 ] || echo In-function \$x bad
+}
+x=1
+case $- in
+*a*) echo Initial \$- bad
+esac
+f x -
+case $- in
+*a*) echo Intermediate \$- bad
+esac
+[ "$x" = 1 ] || echo Intermediate \$x bad
+f - x
+case $- in
+*a*) echo Final \$- bad
+esac
+[ "$x" = 1 ] || echo Final \$x bad
OpenPOWER on IntegriCloud