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