blob: 3a92a6b9b0800de7bab6cf2301654b158414a768 (
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
121
122
123
124
125
126
127
128
129
130
131
|
proc setup {} {
save_env
}
proc teardown {} {
assert_env_unmodified {/PERL5LIB=/d}
}
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
# Make sure at least our mock Devel::* module is around
assert_bash_exec {OLDPERL5LIB=$PERL5LIB; export PERL5LIB=$TESTDIR/fixtures/perl}
assert_complete_any "perl -d:"
sync_after_int
assert_complete_any "perl -dt:"
sync_after_int
assert_bash_exec {export PERL5LIB=$OLDPERL5LIB; unset -v OLDPERL5LIB}
teardown
|