summaryrefslogtreecommitdiff
path: root/test/lib/completions/perl.exp
blob: f3a5184156e050963ca52f0f461498b55e313a43 (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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
proc setup {} {
    save_env
}


proc teardown {} {
    assert_env_unmodified
}


setup


assert_complete_any "perl "


sync_after_int


set test "Second argument should file complete"
set cmd "perl foo $::srcdir/fixtures/shared/default/f"
send "$cmd\t"
expect {
    -re "^$cmd\r\nfoo +foo.d/ *\r\n/@${cmd}oo$" { pass "$test" }
    -re /@ { unresolved "$test at prompt" }
    -re eof { unresolved "eof" }
}


sync_after_int


set test "-I without space should complete directories"
set cmd "perl -I$::srcdir/fixtures/shared/default/"
send "$cmd\t"
expect {
    -re "^$cmd\r\nbar bar.d/ +foo.d/ *\r\n/@$cmd$" { pass "$test" }
    -re /@ { unresolved "$test at prompt" }
    -re eof { unresolved "eof" }
}


sync_after_int


set test "-I with space should complete directories"
set cmd "perl -I $::srcdir/fixtures/shared/default/"
send "$cmd\t"
expect {
    -re "^$cmd\r\nbar bar.d/ +foo.d/ *\r\n/@$cmd$" { pass "$test" }
    -re /@ { unresolved "$test at prompt" }
    -re eof { unresolved "eof" }
}


sync_after_int


set test "-x without space should complete directories"
set cmd "perl -x$::srcdir/fixtures/shared/default/b"
send "$cmd\t"
expect {
    -re "^${cmd}ar\\\\ bar.d/ *$" { pass "$test" }
    -re /@ { unresolved "$test at prompt" }
    -re eof { unresolved "eof" }
}


sync_after_int


set test "-x with space should complete directories"
set cmd "perl -x $::srcdir/fixtures/shared/default/b"
send "$cmd\t"
expect {
    -re "^${cmd}ar\\\\ bar.d/ *$" { pass "$test" }
    -re /@ { unresolved "$test at prompt" }
    -re eof { unresolved "eof" }
}


sync_after_int


set test "- should complete options"
set options {
    -0 -a -c -C -d -D -e -F -h -i -I -l -m -M -n -p -P -s -S -T -u -U -v -V -w -W -x -X
}
assert_complete $options "perl -" $test


sync_after_int

assert_no_complete "perl -e "
sync_after_int

assert_complete_any "perl -V:install"
sync_after_int

assert_complete_any "perl -V::install"
sync_after_int

# Assuming that File::Spec and friends are always installed...

assert_complete_any "perl -MFile"
sync_after_int

assert_complete_any "perl -MFile::Sp"
sync_after_int

assert_complete_any "perl -MFile::Spec::Func"
sync_after_int

assert_complete_any "perl -M-File"
sync_after_int

assert_complete_any "perl -m-File::"
sync_after_int

teardown