File: _expand.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 (42 lines) | stat: -rw-r--r-- 1,068 bytes parent folder | download
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
proc setup {home user} {
    upvar $home _home
    upvar $user _user
    save_env
    assert_bash_exec {echo "$HOME"} {} /@ _home
    set _home [string trim $_home]
    assert_bash_exec {id -un 2>/dev/null || echo "$USER"} {} /@ _user
    set _user [string trim $_user]
}

proc teardown {} {
    assert_env_unmodified {
        /COMPREPLY=/d
        /cur=/d
    }
}


setup home user


set test "function should run without errors"
assert_bash_exec {_expand > /dev/null} $test
sync_after_int

set test "function should not pollute environment"
# NOTE: A possible environment pollution is detected by assert_env_modified() in teardown()
assert_bash_exec {foo() { _expand; }; foo; unset foo} $test
sync_after_int

set test "~$user should set $home to COMPREPLY"
set cmd [format {cur="~%s" ; _expand ; printf "%%s\n" "$COMPREPLY"} $user]
assert_bash_list "$home" $cmd $test
sync_after_int

set test "~$user/a should set $home/a to cur"
set cmd [format {cur="~%s/a" ; _expand ; printf "%%s\n" "$cur"} $user]
assert_bash_list "$home/a" $cmd $test
sync_after_int


teardown