File: _parse_usage.exp

package info (click to toggle)
bash-completion 1%3A2.8-6
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 8,860 kB
  • sloc: exp: 9,759; makefile: 1,104; sh: 261; perl: 56; python: 47; xml: 29; ansic: 7; ruby: 2
file content (64 lines) | stat: -rw-r--r-- 1,783 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
proc setup {} {
    save_env
}

proc teardown {} {
    assert_env_unmodified {
        /declare -f fn/d
        /PIPESTATUS=/d
    }
}

setup


set cmd {fn() { printf '%s\n' ""; }; _parse_usage fn}
assert_bash_list "" $cmd "empty"
sync_after_int

set cmd {fn() { printf '%s\n' "no dashes here"; }; _parse_usage fn}
assert_bash_list "" $cmd "no dashes"
sync_after_int

set cmd {fn() { printf '%s\n' "foo [-f]"; }; _parse_usage fn}
assert_bash_list "-f" $cmd "simple"
sync_after_int

set cmd {fn() { printf '%s\n' "bar [-aBcD] [-e X]"; }; _parse_usage fn}
assert_bash_list "-a -B -c -D -e" $cmd "bundled + separate 1 short"
sync_after_int

set cmd {fn() { printf '%s\n' "[-[XyZ]] [--long=arg]"; }; _parse_usage fn}
assert_bash_list "-X -y -Z --long=" $cmd "bundled in brackets + separate long"
sync_after_int

set cmd {fn() { printf '%s\n' "[-s|--long]"; }; _parse_usage fn}
assert_bash_list "--long" $cmd "short or long"
sync_after_int

set cmd {fn() { printf '%s\n' "[-s, --long=arg]"; }; _parse_usage fn}
assert_bash_list "--long=" $cmd "short or long with arg, comma"
sync_after_int

set cmd {fn() { printf '%s\n' "[--long/-s] [-S/--longer]"; }; _parse_usage fn}
assert_bash_list "--long\n--longer" $cmd "long or short, slash"
sync_after_int

set cmd {fn() { printf '%s\n' "[ -a ] [ -b foo ]"; }; _parse_usage fn}
assert_bash_list "-a\n-b" $cmd "whitespace in brackets"
sync_after_int

set cmd {fn() { printf '%s\n' "[ -a | --aa ]"; }; _parse_usage fn}
assert_bash_list "--aa" $cmd "whitespace in brackets 2"
sync_after_int

set cmd {fn() { printf '%s\n' "----\n---foo\n----- bar"; }; _parse_usage fn}
assert_bash_list "" $cmd "many dashes"
sync_after_int

set cmd { printf '%s\n' "[-duh]" | _parse_usage - }
assert_bash_list "-d -u -h" $cmd "from stdin"
sync_after_int


teardown