summaryrefslogtreecommitdiffstats
path: root/Test
diff options
context:
space:
mode:
Diffstat (limited to 'Test')
-rw-r--r--Test/B02typeset.ztst57
-rw-r--r--Test/K01nameref.ztst58
2 files changed, 115 insertions, 0 deletions
diff --git a/Test/B02typeset.ztst b/Test/B02typeset.ztst
index 914eea92b..7cca2bd81 100644
--- a/Test/B02typeset.ztst
+++ b/Test/B02typeset.ztst
@@ -1120,3 +1120,60 @@
1:Regression test for {...} parsing in typeset
?(eval):typeset:2: not valid in this context: {X}
?(eval):typeset:3: not valid in this context: {X}
+
+ zmodload -u zsh/random
+ echo v=${SRANDOM/<->/integer}
+ typeset SRANDOM
+ echo v=${SRANDOM/<->/integer}
+0:Global non -h variable doesn't hide special variable
+>v=integer
+>v=integer
+
+ zmodload -u zsh/random
+ echo z=${(M)${(f)${ zmodload -ap}}:#*SRANDOM*}
+ typeset -g SRANDOM
+ echo z=${(M)${(f)${ zmodload -ap}}:#*SRANDOM*}
+ echo v=${SRANDOM/<->/integer}
+0:Global non -h variable doesn't hide autoload variable
+>z=SRANDOM (zsh/random)
+>z=SRANDOM (zsh/random)
+>v=integer
+
+ zmodload -u zsh/random
+ echo z=${(M)${(f)${ zmodload -ap}}:#*SRANDOM*}
+ typeset -gh SRANDOM
+ echo z=${(M)${(f)${ zmodload -ap}}:#*SRANDOM*}
+ echo v=${SRANDOM/<->/integer}
+0:Global -h variable doesn't hide autoload variable
+>z=SRANDOM (zsh/random)
+>z=SRANDOM (zsh/random)
+>v=integer
+
+ zmodload -u zsh/random
+ echo v=${SRANDOM/<->/integer}
+ typeset SRANDOM
+ echo v=${SRANDOM/<->/integer}
+0:Local non -h variable doesn't hide special variable
+>v=integer
+>v=integer
+
+ zmodload -u zsh/random
+ echo z=${(M)${(f)${ zmodload -ap}}:#*SRANDOM*}
+ typeset SRANDOM
+ echo z=${(M)${(f)${ zmodload -ap}}:#*SRANDOM*}
+ echo v=${SRANDOM/<->/integer}
+0:Local non -h variable hides autoload variable
+F:This is a bug, the non -h variable should not hide the autoload variable
+>z=SRANDOM (zsh/random)
+>z=
+>v=
+
+ zmodload -u zsh/random
+ echo z=${(M)${(f)${ zmodload -ap}}:#*SRANDOM*}
+ typeset -h SRANDOM
+ echo z=${(M)${(f)${ zmodload -ap}}:#*SRANDOM*}
+ echo v=${SRANDOM/<->/integer}
+0:Local -h variable hides autoload variable
+>z=SRANDOM (zsh/random)
+>z=
+>v=
diff --git a/Test/K01nameref.ztst b/Test/K01nameref.ztst
index 54f0aaf68..52aed0af0 100644
--- a/Test/K01nameref.ztst
+++ b/Test/K01nameref.ztst
@@ -1179,4 +1179,62 @@ F:previously this could create an infinite recursion and crash
>typeset PS1=zz
*?*
+ zmodload -u zsh/random
+ echo z=${(M)${(f)${ zmodload -ap}}:#*SRANDOM*}
+ typeset -n ref=SRANDOM
+ echo z=${(M)${(f)${ zmodload -ap}}:#*SRANDOM*}
+ echo v=${ref/<->/integer}
+ zmodload -u zsh/random
+ echo z=${(M)${(f)${ zmodload -ap}}:#*SRANDOM*}
+ echo v=${ref/<->/integer}
+0:Referring and dereferring an autoload variable loads it (direct)
+>z=SRANDOM (zsh/random)
+>z=
+>v=integer
+>z=SRANDOM (zsh/random)
+>v=integer
+
+ zmodload -u zsh/random
+ echo z=${(M)${(f)${ zmodload -ap}}:#*SRANDOM*}
+ typeset -n ref=SRANDOM[1,20]
+ echo z=${(M)${(f)${ zmodload -ap}}:#*SRANDOM*}
+ echo v=${ref/<->/integer}
+ zmodload -u zsh/random
+ echo z=${(M)${(f)${ zmodload -ap}}:#*SRANDOM*}
+ echo v=${ref/<->/integer}
+0:Referring and dereferring an autoload variable loads it (subscript)
+>z=SRANDOM (zsh/random)
+>z=
+>v=integer
+>z=SRANDOM (zsh/random)
+>v=integer
+
+ typeset -n ref=SRANDOM
+ echo v=${ref/<->/integer}
+ zmodload -u zsh/random
+ echo z=${(M)${(f)${ zmodload -ap}}:#*SRANDOM*}
+ typeset -h SRANDOM=local-variable
+ echo v=${ref/<->/integer}
+ echo NOT REACHED
+1:Dereferring an autoload variable fails to load it if its hidden (direct)
+>v=integer
+>z=SRANDOM (zsh/random)
+?(eval):6: Can't add module parameter `SRANDOM': local parameter exists
+?(eval):zsh/random:6: error when adding parameter `SRANDOM'
+?(eval):6: autoloading module zsh/random failed to define parameter: SRANDOM
+
+ typeset -n ref=SRANDOM[1,20]
+ echo v=${ref/<->/integer}
+ zmodload -u zsh/random
+ echo z=${(M)${(f)${ zmodload -ap}}:#*SRANDOM*}
+ typeset -h SRANDOM=local-variable
+ echo v=${ref/<->/integer}
+ echo NOT REACHED
+1:Dereferring an autoload variable fails to load it if its hidden (subscript)
+>v=integer
+>z=SRANDOM (zsh/random)
+?(eval):6: Can't add module parameter `SRANDOM': local parameter exists
+?(eval):zsh/random:6: error when adding parameter `SRANDOM'
+?(eval):6: autoloading module zsh/random failed to define parameter: SRANDOM
+
%clean