bash-completion/test/unit/_parse_help.exp
2011-04-27 23:22:03 +03:00

90 lines
2.6 KiB
Plaintext

# By Stephen Gildea, October 2010.
proc setup {} {
save_env
}
proc teardown {} {
assert_env_unmodified {
/declare -f fn/d
}
}
setup
set cmd {fn() { printf '%s\n' ""; }; _parse_help fn}
assert_bash_list "" $cmd "empty"
sync_after_int
set cmd {fn() { printf '%s\n' "no dashes here"; }; _parse_help fn}
assert_bash_list "" $cmd "no dashes"
sync_after_int
set cmd {fn() { printf '%s\n' "internal-dash"; }; _parse_help fn}
assert_bash_list "" $cmd "internal dash 1"
sync_after_int
set cmd {fn() { printf '%s\n' "no -leading-dashes"; }; _parse_help fn}
assert_bash_list "" $cmd "no leading dash"
sync_after_int
set cmd {fn() { printf '%s\n' "-one dash"; }; _parse_help fn}
assert_bash_list "-one" $cmd "one dash"
sync_after_int
set cmd {fn() { printf '%s\n' " -space dash"; }; _parse_help fn}
assert_bash_list "-space" $cmd "one dash after space"
sync_after_int
set cmd {fn() { printf '%s\n' "-one -two dashes"; }; _parse_help fn}
assert_bash_list "-one" $cmd "two dashes, space-separated"
sync_after_int
set cmd {fn() { printf '%s\n' "-one,-t dashes"; }; _parse_help fn}
assert_bash_list "-one" $cmd "two dashes, comma-separated"
sync_after_int
set cmd {fn() { printf '%s\n' "-one dash-inside"; }; _parse_help fn}
assert_bash_list "-one" $cmd "internal dash 2"
sync_after_int
set cmd {fn() { printf '%s\n' "--long-arg=value"; }; _parse_help fn}
assert_bash_list "--long-arg" $cmd "value stripped"
sync_after_int
set cmd {fn() { printf '%s\n' "--long-arg=-value"; }; _parse_help fn}
assert_bash_list "--long-arg" $cmd "value not seen as option"
sync_after_int
set cmd {fn() { printf '%s\n' "--long-arg=-value,--opt2=val"; }; _parse_help fn}
assert_bash_list "--long-arg" $cmd "two options with values"
sync_after_int
set cmd {fn() { printf '%s\n' "-m,--mirror"; }; _parse_help fn}
assert_bash_list "--mirror" $cmd "short + long"
sync_after_int
set cmd {fn() { printf '%s\n' "-T/--upload-file"; }; _parse_help fn}
assert_bash_list "--upload-file" $cmd "short + long, slash separated"
sync_after_int
set cmd {fn() { printf '%s\n' "-T|--upload-file"; }; _parse_help fn}
assert_bash_list "--upload-file" $cmd "pipe separated"
sync_after_int
set cmd {fn() { printf '%s\n' "-f, -F, --foo"; }; _parse_help fn}
assert_bash_list "--foo" $cmd "short + short + long"
sync_after_int
set cmd {fn() { printf '%s\n' "--foo[=bar]"; }; _parse_help fn}
assert_bash_list "--foo" $cmd "long with value and eq sign in brackets"
sync_after_int
set cmd {fn() { printf '%s\n' "--foo=<bar>"; }; _parse_help fn}
assert_bash_list "--foo" $cmd "long with value in angle brackets"
sync_after_int
teardown