diff options
author | dana <dana@dana.is> | 2025-04-27 07:58:23 -0500 |
---|---|---|
committer | dana <dana@dana.is> | 2025-04-27 07:58:23 -0500 |
commit | 84ef0c523878625feeed8cd0a5c142929d8b4d06 (patch) | |
tree | 7a15bc37dc6c74496aaf7aec3326f7d2cef222c0 /Test | |
parent | 2601c191865d3d49e3e57fbb9f6224bcbd22f7a4 (diff) | |
download | zsh-84ef0c523878625feeed8cd0a5c142929d8b4d06.tar.gz zsh-84ef0c523878625feeed8cd0a5c142929d8b4d06.zip |
53516: add zgetopt contrib function
Diffstat (limited to 'Test')
-rw-r--r-- | Test/Z04zgetopt.ztst | 206 |
1 files changed, 206 insertions, 0 deletions
diff --git a/Test/Z04zgetopt.ztst b/Test/Z04zgetopt.ztst new file mode 100644 index 000000000..c2bc22be0 --- /dev/null +++ b/Test/Z04zgetopt.ztst @@ -0,0 +1,206 @@ +%prep + + autoload -Uz zgetopt + +%test + + zgetopt -A '' -- a b c + zgetopt -A '' -o '' -- a b c + zgetopt -A '' -l '' -- a b c +0:-o or -l required +?zgetopt: missing option spec +>-- a b c +>-- a b c + + zgetopt -A '' -o - -- a b c + zgetopt -A '' -o -a -- a b c + zgetopt -A '' -o a- -- a b c + zgetopt -A '' -o a+ -- a b c + zgetopt -A '' -o a= -- a b c + zgetopt -A '' -o a\\ -- a b c + zgetopt -A '' -o :a -- a b c + zgetopt -A '' -o a::: -- a b c + zgetopt -A '' -o '' -- a b c + zgetopt -A '' -o + -- a b c +0:weird short-option specs +?zgetopt: optspec with leading - (disable operand collection) not supported +?zgetopt: optspec with leading - (disable operand collection) not supported +?zgetopt: invalid short-option name: - +?zgetopt: invalid short-option name: + +?zgetopt: invalid short-option name: = +?zgetopt: invalid short-option name: \ +?zgetopt: invalid short-option name: : +?zgetopt: invalid short-option name: : +>-- a b c +>-- a b c + + zgetopt -A '' -l a,+ -- a b c + zgetopt -A '' -l a,= -- a b c + zgetopt -A '' -l a,\\ -- a b c + zgetopt -A '' -l a,: -- a b c + zgetopt -A '' -l a,:b -- a b c + zgetopt -A '' -l a,b:b -- a b c + zgetopt -A '' -l a,b::: -- a b c + zgetopt -A '' -l '' -- a b c + zgetopt -A '' -l , -- a b c + zgetopt -A '' -l a,,,,,b -- a b c + zgetopt -A '' -l - -- a b c --- +0:weird long-option specs +?zgetopt: invalid long-option spec: + +?zgetopt: invalid long-option spec: = +?zgetopt: invalid long-option spec: \ +?zgetopt: invalid long-option spec: : +?zgetopt: invalid long-option spec: :b +?zgetopt: invalid long-option spec: b:b +?zgetopt: invalid long-option spec: b::: +>-- a b c +>-- a b c +>-- a b c +>--- -- a b c + + zgetopt -A '' -o ab:c:: -- a b c + zgetopt -A '' -o ab:c:: -- -a + zgetopt -A '' -o ab:c:: -- -a a b c + zgetopt -A '' -o ab:c:: -- -a a -b c + zgetopt -A '' -o ab:c:: -- -a a -b -c + zgetopt -A '' -o ab:c:: -- -a a -b -c d + zgetopt -A '' -o ab:c:: -- -a a -b -c -c + zgetopt -A '' -o ab:c:: -- -a a -b -c -c d + zgetopt -A '' -o ab:c:: -- -a a -b -c -cd +0:short options +>-- a b c +>-a -- +>-a -- a b c +>-a -b c -- a +>-a -b -c -- a +>-a -b -c -- a d +>-a -b -c -c '' -- a +>-a -b -c -c '' -- a d +>-a -b -c -c d -- a + + zgetopt -A '' -l aaa,bbb:,ccc:: -- a b c + zgetopt -A '' -l aaa,bbb:,ccc:: -- --aaa + zgetopt -A '' -l aaa,bbb:,ccc:: -- --aaa a b c + zgetopt -A '' -l aaa,bbb:,ccc:: -- --aaa a --bbb c + zgetopt -A '' -l aaa,bbb:,ccc:: -- --aaa a --bbb=c + zgetopt -A '' -l aaa,bbb:,ccc:: -- --aaa a --bbb --ccc + zgetopt -A '' -l aaa,bbb:,ccc:: -- --aaa a --bbb --ccc d + zgetopt -A '' -l aaa,bbb:,ccc:: -- --aaa a --bbb --ccc --ccc + zgetopt -A '' -l aaa,bbb:,ccc:: -- --aaa a --bbb --ccc --ccc d + zgetopt -A '' -l aaa,bbb:,ccc:: -- --aaa a --bbb --ccc --ccc=d +0:long options +>-- a b c +>--aaa -- +>--aaa -- a b c +>--aaa --bbb c -- a +>--aaa --bbb c -- a +>--aaa --bbb --ccc -- a +>--aaa --bbb --ccc -- a d +>--aaa --bbb --ccc --ccc '' -- a +>--aaa --bbb --ccc --ccc '' -- a d +>--aaa --bbb --ccc --ccc d -- a + + zgetopt -A '' -al aaa,bbb:,ccc:: -- a b c + zgetopt -A '' -al aaa,bbb:,ccc:: -- --aaa a b c + zgetopt -A '' -al aaa,bbb:,ccc:: -- -aaa + zgetopt -A '' -al aaa,bbb:,ccc:: -- -aaa a b c + zgetopt -A '' -al aaa,bbb:,ccc:: -- -aaa a -bbb c + zgetopt -A '' -al aaa,bbb:,ccc:: -- -aaa a -bbb=c + zgetopt -A '' -al aaa,bbb:,ccc:: -- -aaa a -bbb -ccc + zgetopt -A '' -al aaa,bbb:,ccc:: -- -aaa a -bbb -ccc d + zgetopt -A '' -al aaa,bbb:,ccc:: -- -aaa a -bbb -ccc -ccc + zgetopt -A '' -al aaa,bbb:,ccc:: -- -aaa a -bbb -ccc -ccc d + zgetopt -A '' -al aaa,bbb:,ccc:: -- -aaa a -bbb -ccc -ccc=d +0:long options with -a (Sun style) +>-- a b c +?(eval): bad option: --aaa +>-aaa -- +>-aaa -- a b c +>-aaa -bbb c -- a +>-aaa -bbb c -- a +>-aaa -bbb -ccc -- a +>-aaa -bbb -ccc -- a d +>-aaa -bbb -ccc -ccc '' -- a +>-aaa -bbb -ccc -ccc '' -- a d +>-aaa -bbb -ccc -ccc d -- a + + zgetopt -A '' -al a: -- -a=b +0:single-character long option with -a +>-a '=b' -- + + zgetopt -A '' -o '' +0:zero args to parse +>-- + + zgetopt -A '' -o '' -- -- a b c + zgetopt -A '' -o '' -- a b -- c + zgetopt -A '' -o '' -- a b c -- + zgetopt -A '' -o c -- a b -- -c + zgetopt -A '' -o c -- a b - -c +0:parsing terminator +>-- a b c +>-- a b c +>-- a b c +>-- a b -c +>-c -- a b - + + zgetopt -A '' -o a -- a -a b + zgetopt -A '' -o +a -- a -a b + POSIXLY_CORRECT=1 zgetopt -A '' -o a -- a -a b +0:POSIXLY_CORRECT +>-a -- a b +>-- a -a b +>-- a -a b + + zgetopt -A '' -o '' -- $'\a\'\a' +0:function-mode quoting style +>-- $'\C-G\'\C-G' + + zgetopt -A '' -o '' -- a -a b + zgetopt -A '' -o '' -- a --a b +1:bad options +?(eval): bad option: -a +?(eval): bad option: --a + + zgetopt -A '' ; echo $? # missing spec + zgetopt -A '' -o '' -x ; echo $? # bad option to zgetopt + zgetopt -A '' -o '' -- -y; echo $? # bad option to parse +0:return status +*?zgetopt: missing option spec +*>2 +*?zgetopt:zparseopts:*: bad option: -x +*?usage:* +*>2 +*?\(eval\): bad option: -y +*>1 + + () { zgetopt -o a -- "$@"; typeset -p argv } -a b c + () { local -a v; zgetopt -A v -o a -- "$@"; typeset -p argv v } -a b c +0:array output +>typeset -g -a argv=( -a -- b c ) +>typeset -g -a argv=( -a b c ) +>typeset -a v=( -a -- b c ) + + zgetopt -A '' -o a: -- -x + zgetopt -A '' -o a: -- -a + () { zgetopt -A '' -o a: -- "$@"; : } -x + func() { zgetopt -A '' -o a: -- "$@"; : }; func -x + f1() { zgetopt -A '' -o a: -- "$@"; : }; f2() { f1 "$@" }; f2 -x +0:automatic name +?(eval): bad option: -x +?(eval): missing argument for option: -a +?(anon): bad option: -x +?func: bad option: -x +?f1: bad option: -x + + zgetopt -n aaa -A '' -o a: -- -x + zgetopt -n aaa -A '' -o a: -- -a + () { zgetopt -n bbb -A '' -o a: -- "$@"; : } -x + func() { zgetopt -n ccc -A '' -o a: -- "$@"; : }; func -x + f1() { zgetopt -n ddd -A '' -o a: -- "$@"; : }; f2() { f1 "$@" }; f2 -x +0:manual name with -n +?aaa: bad option: -x +?aaa: missing argument for option: -a +?bbb: bad option: -x +?ccc: bad option: -x +?ddd: bad option: -x |