about summary refs log tree commit diff
diff options
context:
space:
mode:
authorWayne Davison <wayned@users.sourceforge.net>2005-08-11 16:25:10 +0000
committerWayne Davison <wayned@users.sourceforge.net>2005-08-11 16:25:10 +0000
commit5aa648a5f2a73bf050635e2b548b0f4c8679e957 (patch)
tree2108a803c8efcddc69d0c1cb93f08ae149a74d2b
parent0e57f6ebe8e95f688a7bf416a3ed2d2ed6847e26 (diff)
downloadzsh-5aa648a5f2a73bf050635e2b548b0f4c8679e957.tar.gz
zsh-5aa648a5f2a73bf050635e2b548b0f4c8679e957.tar.xz
zsh-5aa648a5f2a73bf050635e2b548b0f4c8679e957.zip
Third time's a charm: a better fix than using either a subshell or
"setopt localoptions" is to use a function for the final test (since
it destroys all the variables in the environment).  This allows us to
directly test that the environment was properly restored after the
function call, and ensures that the caller (ZTST_execchunk, which
directly exec'ed the test code) still has all the vars that it expects
in the environment (such as ZTST_verbose, options, and ZTST_mainopts).
-rw-r--r--Test/B02typeset.ztst28
1 files changed, 17 insertions, 11 deletions
diff --git a/Test/B02typeset.ztst b/Test/B02typeset.ztst
index fccf0d4d6..fc9d9c161 100644
--- a/Test/B02typeset.ztst
+++ b/Test/B02typeset.ztst
@@ -23,7 +23,7 @@
 
 %prep
 
-  setopt localoptions noglob
+  setopt noglob
 
   scalar=scalar
   array=(a r r a y)
@@ -341,16 +341,21 @@
 0q:Stress test: all parameters are local and unset, using -m
 >scalar a r y
 
- # The first declare works around the "not an identifier" bug with -h
- declare \! \# \$ \* - \? @ 0
- typeset -h +g -m \*
- unset -m \*
- integer i=9
- float -H f=9
- declare -t scalar
- declare -H -a array
- typeset
- typeset +
+ local parentenv=preserved
+ fn() {
+  # The first declare works around the "not an identifier" bug with -h
+  declare \! \# \$ \* - \? @ 0
+  typeset -h +g -m \*
+  unset -m \*
+  integer i=9
+  float -H f=9
+  declare -t scalar
+  declare -H -a array
+  typeset
+  typeset +
+ }
+ fn
+ echo $parentenv
 0:Parameter hiding and tagging, printing types and values
 >array local array
 >float local f
@@ -360,3 +365,4 @@
 >float local f
 >integer local i
 >local tagged scalar
+>preserved