summaryrefslogtreecommitdiff
path: root/test/lib/completions/make.exp
blob: 0c188dbafbd7717b981073a91fb240a1e5e09eb9 (plain)
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
65
66
67
68
69
70
71
72
73
74
75
76
77
proc setup {} {
    save_env
}


proc teardown {} {
    assert_env_unmodified {/OLDPWD=/d}
}


setup


set test "-f Ma<TAB> should complete \"Makefile\""
set dir $::srcdir/fixtures/make
assert_complete_dir "Makefile" "make -f Ma" $dir $test


sync_after_int

set test "\"make <TAB>\" should complete targets"
set dir $::srcdir/fixtures/make
set targets "all sample install clean extra_makefile"
file delete $dir/extra_makefile
assert_complete_dir $targets "make " $dir $test


sync_after_int


set test "\"make .<TAB>\" should complete hidden targets"
set dir $::srcdir/fixtures/make
set targets ".test_passes .cache/"
assert_complete_dir $targets "make ." $dir $test


sync_after_int


set test "\"make .cache/<TAB>\" should complete targets"
set dir $::srcdir/fixtures/make
set targets "1 2"
assert_complete_dir $targets "make .cache/" $dir $test


sync_after_int


# FIXME: for some reason this fails in centos6, even though the behavior
# appears to be correct; skip in CI for now.
set test "\"make .cache/.<TAB>\" should complete hidden targets"
if {[info exists ::env(CI)] && [info exists ::env(DIST)] && $::env(DIST) == "centos6"} {
    xfail $test
} else {
    set dir $::srcdir/fixtures/make
    set targets ".1 .2"
    assert_complete_dir $targets "make .cache/." $dir $test \
        -expect-cmd-minus "."
    sync_after_int
}


set test "\"make <TAB>\" should not show anything in directory without makefile"
set dir $::srcdir/fixtures/shared/empty_dir
assert_complete_dir "" "make " $dir $test


sync_after_int


assert_complete_any "make -j "


sync_after_int


teardown