mirror of
git://git.code.sf.net/p/zsh/code
synced 2024-12-29 16:25:35 +01:00
Make DECLAREDNULL require POSIXBUILTINS and introduce a new test file.
V10private has been made agnostic to POSIXBUILTINS.
This commit is contained in:
parent
69bd4a197c
commit
3099e79d25
1 changed files with 105 additions and 0 deletions
105
Test/E03posix.ztst
Normal file
105
Test/E03posix.ztst
Normal file
|
@ -0,0 +1,105 @@
|
|||
# Test POSIX-specific behavior
|
||||
# Currently this covers only POSIXBUILTINS, other behaviors are in their
|
||||
# more directly related sections
|
||||
#
|
||||
|
||||
%prep
|
||||
setopt POSIX_BUILTINS
|
||||
|
||||
%test
|
||||
|
||||
local parentenv=preserved
|
||||
fn() {
|
||||
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
|
||||
>integer local i=9
|
||||
>local tagged scalar
|
||||
>array local array
|
||||
>float local f
|
||||
>integer local i
|
||||
>local tagged scalar
|
||||
>preserved
|
||||
|
||||
readonly foo=bar novalue
|
||||
readonly -p
|
||||
0:readonly -p output (no readonly specials)
|
||||
>readonly foo=bar
|
||||
>readonly novalue
|
||||
|
||||
local -a myarray
|
||||
typeset -p1 myarray
|
||||
myarray=("&" sand '""' "" plugh)
|
||||
typeset -p1 myarray
|
||||
0:typeset -p1 output for array
|
||||
>typeset -a myarray
|
||||
>typeset -a myarray=(
|
||||
> '&'
|
||||
> sand
|
||||
> '""'
|
||||
> ''
|
||||
> plugh
|
||||
>)
|
||||
|
||||
local -A myhash
|
||||
typeset -p1 myhash
|
||||
myhash=([one]=two [three]= [four]="[]")
|
||||
typeset -p1 myhash
|
||||
0:typeset -p1 output for associative array
|
||||
>typeset -A myhash
|
||||
>typeset -A myhash=(
|
||||
> [four]='[]'
|
||||
> [one]=two
|
||||
> [three]=''
|
||||
>)
|
||||
|
||||
str=s
|
||||
arr=(a)
|
||||
typeset -A ass
|
||||
ass=(a a)
|
||||
integer i=0
|
||||
float f=0
|
||||
print ${(t)str} ${(t)arr} ${(t)ass} ${(t)i} ${(t)f}
|
||||
0:${(t)...}
|
||||
>scalar array association-local integer-local float-local
|
||||
|
||||
print $empty[(i)] $empty[(I)]
|
||||
0:(i) and (I) return nothing for empty array
|
||||
>
|
||||
|
||||
(
|
||||
# reserved words are handled during parsing,
|
||||
# hence eval...
|
||||
disable -r typeset
|
||||
eval '
|
||||
setopt kshtypeset
|
||||
ktvars=(ktv1 ktv2)
|
||||
typeset ktfoo=`echo arg1 arg2` $ktvars
|
||||
() {
|
||||
local ktfoo
|
||||
print $+ktv1 $+ktv2 $+ktv3 $+ktfoo
|
||||
}
|
||||
print $ktfoo
|
||||
unsetopt kshtypeset
|
||||
typeset noktfoo=`echo noktarg1 noktarg2`
|
||||
print $noktfoo
|
||||
print $+noktarg1 $+noktarg2
|
||||
unset ktfoo ktv1 ktv2 noktfoo noktarg2
|
||||
'
|
||||
)
|
||||
0:KSH_TYPESET option
|
||||
>0 0 0 0
|
||||
>arg1 arg2
|
||||
>noktarg1
|
||||
>0 0
|
Loading…
Reference in a new issue