summaryrefslogtreecommitdiffstats
path: root/Test/K01nameref.ztst
diff options
context:
space:
mode:
authorPhilippe Altherr <philippe.altherr@gmail.com>2025-10-26 14:06:57 -0700
committerBart Schaefer <schaefer@zsh.org>2025-10-26 14:06:57 -0700
commit1e0d2b0d7e8ab7298e67f921a156697fcc433d06 (patch)
tree40d51f08a80d19901b3b24ba41a6c5252ee5c22b /Test/K01nameref.ztst
parent53732: avoid tail-call exec in always block (diff)
downloadzsh-1e0d2b0d7e8ab7298e67f921a156697fcc433d06.tar
zsh-1e0d2b0d7e8ab7298e67f921a156697fcc433d06.tar.gz
zsh-1e0d2b0d7e8ab7298e67f921a156697fcc433d06.tar.bz2
zsh-1e0d2b0d7e8ab7298e67f921a156697fcc433d06.tar.lz
zsh-1e0d2b0d7e8ab7298e67f921a156697fcc433d06.tar.xz
zsh-1e0d2b0d7e8ab7298e67f921a156697fcc433d06.tar.zst
zsh-1e0d2b0d7e8ab7298e67f921a156697fcc433d06.zip
53781: fix loading of autoload variable via a reference
Diffstat (limited to 'Test/K01nameref.ztst')
-rw-r--r--Test/K01nameref.ztst58
1 files changed, 58 insertions, 0 deletions
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