Added long opt parsing, now understands -- and parses non-option elements into cmdarg_argv. Docs updated.
This commit is contained in:
31
tests/test_longopt.sh
Normal file
31
tests/test_longopt.sh
Normal file
@@ -0,0 +1,31 @@
|
||||
#!/usr/bin/bash4
|
||||
|
||||
source $(dirname ${BASH_SOURCE[0]})/../cmdarg.sh
|
||||
|
||||
function shunittest_longopt
|
||||
{
|
||||
cmdarg_purge
|
||||
cmdarg 'l:' 'long-required-opt' 'Some long opt that requires a value'
|
||||
cmdarg 'o' 'long-boolean-opt' 'Some long option that is boolean'
|
||||
cmdarg 'L:' 'long-required-default-opt' 'Some long opt that requires a value but has a default' '(nil)'
|
||||
|
||||
cmdarg_parse --long-required-opt hooha --long-boolean-opt
|
||||
|
||||
[[ "${cmdarg_cfg['long-required-opt']}" == "hooha" ]] || return 1
|
||||
[[ "${cmdarg_cfg['long-boolean-opt']}" == "true" ]] || return 1
|
||||
[[ "${cmdarg_cfg['long-required-default-opt']}" == "(nil)" ]] || return 1
|
||||
}
|
||||
|
||||
function shunittest_longopt_shortopts_still_work
|
||||
{
|
||||
cmdarg_purge
|
||||
cmdarg 'l:' 'long-required-opt' 'Some long opt that requires a value'
|
||||
cmdarg 'o' 'long-boolean-opt' 'Some long option that is boolean'
|
||||
cmdarg 'L:' 'long-required-default-opt' 'Some long opt that requires a value but has a default' '(nil)'
|
||||
|
||||
cmdarg_parse -l hooha -o
|
||||
|
||||
[[ "${cmdarg_cfg['long-required-opt']}" == "hooha" ]] || return 1
|
||||
[[ "${cmdarg_cfg['long-boolean-opt']}" == "true" ]] || return 1
|
||||
[[ "${cmdarg_cfg['long-required-default-opt']}" == "(nil)" ]] || return 1
|
||||
}
|
||||
Reference in New Issue
Block a user