[Bash-completion-commits] [SCM] bash-completion branch, master, updated. 567eb378023b1dad539c12507c4e3a4c3f4cd729
Freddy Vulto
fvulto at gmail.com
Fri Jul 31 10:21:57 UTC 2009
The following commit has been merged in the master branch:
commit 567eb378023b1dad539c12507c4e3a4c3f4cd729
Author: Freddy Vulto <fvulto at gmail.com>
Date: Fri Jul 31 12:20:51 2009 +0200
Reviewed tests s*
diff --git a/test/_completion_to_review/sbcl-mt.exp b/test/_completion_to_review/sbcl-mt.exp
deleted file mode 100644
index 393ec0a..0000000
--- a/test/_completion_to_review/sbcl-mt.exp
+++ /dev/null
@@ -1 +0,0 @@
-source "lib/completions/sbcl-mt.exp"
diff --git a/test/_completion_to_review/sbcl.exp b/test/_completion_to_review/sbcl.exp
deleted file mode 100644
index d4f0697..0000000
--- a/test/_completion_to_review/sbcl.exp
+++ /dev/null
@@ -1 +0,0 @@
-source "lib/completions/sbcl.exp"
diff --git a/test/_completion_to_review/scp.exp b/test/_completion_to_review/scp.exp
deleted file mode 100644
index 11d354c..0000000
--- a/test/_completion_to_review/scp.exp
+++ /dev/null
@@ -1 +0,0 @@
-source "lib/completions/scp.exp"
diff --git a/test/_completion_to_review/screen.exp b/test/_completion_to_review/screen.exp
deleted file mode 100644
index dd8f6a1..0000000
--- a/test/_completion_to_review/screen.exp
+++ /dev/null
@@ -1 +0,0 @@
-source "lib/completions/screen.exp"
diff --git a/test/_completion_to_review/sed.exp b/test/_completion_to_review/sed.exp
deleted file mode 100644
index e67e44e..0000000
--- a/test/_completion_to_review/sed.exp
+++ /dev/null
@@ -1 +0,0 @@
-source "lib/completions/sed.exp"
diff --git a/test/_completion_to_review/seq.exp b/test/_completion_to_review/seq.exp
deleted file mode 100644
index adcfca9..0000000
--- a/test/_completion_to_review/seq.exp
+++ /dev/null
@@ -1 +0,0 @@
-source "lib/completions/seq.exp"
diff --git a/test/_completion_to_review/service.exp b/test/_completion_to_review/service.exp
deleted file mode 100644
index 46156ac..0000000
--- a/test/_completion_to_review/service.exp
+++ /dev/null
@@ -1 +0,0 @@
-source "lib/completions/service.exp"
diff --git a/test/_completion_to_review/set.exp b/test/_completion_to_review/set.exp
deleted file mode 100644
index 5a1b1d0..0000000
--- a/test/_completion_to_review/set.exp
+++ /dev/null
@@ -1 +0,0 @@
-source "lib/completions/set.exp"
diff --git a/test/_completion_to_review/sha1sum.exp b/test/_completion_to_review/sha1sum.exp
deleted file mode 100644
index 9250b0b..0000000
--- a/test/_completion_to_review/sha1sum.exp
+++ /dev/null
@@ -1 +0,0 @@
-source "lib/completions/sha1sum.exp"
diff --git a/test/_completion_to_review/shar.exp b/test/_completion_to_review/shar.exp
deleted file mode 100644
index 693fef9..0000000
--- a/test/_completion_to_review/shar.exp
+++ /dev/null
@@ -1 +0,0 @@
-source "lib/completions/shar.exp"
diff --git a/test/_completion_to_review/sitecopy.exp b/test/_completion_to_review/sitecopy.exp
deleted file mode 100644
index e923dda..0000000
--- a/test/_completion_to_review/sitecopy.exp
+++ /dev/null
@@ -1 +0,0 @@
-source "lib/completions/sitecopy.exp"
diff --git a/test/_completion_to_review/snownews.exp b/test/_completion_to_review/snownews.exp
deleted file mode 100644
index a12bdfc..0000000
--- a/test/_completion_to_review/snownews.exp
+++ /dev/null
@@ -1 +0,0 @@
-source "lib/completions/snownews.exp"
diff --git a/test/_completion_to_review/sort.exp b/test/_completion_to_review/sort.exp
deleted file mode 100644
index 02e9bdd..0000000
--- a/test/_completion_to_review/sort.exp
+++ /dev/null
@@ -1 +0,0 @@
-source "lib/completions/sort.exp"
diff --git a/test/_completion_to_review/split.exp b/test/_completion_to_review/split.exp
deleted file mode 100644
index 99e0909..0000000
--- a/test/_completion_to_review/split.exp
+++ /dev/null
@@ -1 +0,0 @@
-source "lib/completions/split.exp"
diff --git a/test/_completion_to_review/spovray.exp b/test/_completion_to_review/spovray.exp
deleted file mode 100644
index 78e3fd9..0000000
--- a/test/_completion_to_review/spovray.exp
+++ /dev/null
@@ -1 +0,0 @@
-source "lib/completions/spovray.exp"
diff --git a/test/_completion_to_review/ssh.exp b/test/_completion_to_review/ssh.exp
deleted file mode 100644
index f38857d..0000000
--- a/test/_completion_to_review/ssh.exp
+++ /dev/null
@@ -1 +0,0 @@
-source "lib/completions/ssh.exp"
diff --git a/test/_completion_to_review/sshmitm.exp b/test/_completion_to_review/sshmitm.exp
deleted file mode 100644
index 985dbea..0000000
--- a/test/_completion_to_review/sshmitm.exp
+++ /dev/null
@@ -1 +0,0 @@
-source "lib/completions/sshmitm.exp"
diff --git a/test/_completion_to_review/sshow.exp b/test/_completion_to_review/sshow.exp
deleted file mode 100644
index 6c33d65..0000000
--- a/test/_completion_to_review/sshow.exp
+++ /dev/null
@@ -1 +0,0 @@
-source "lib/completions/sshow.exp"
diff --git a/test/_completion_to_review/strip.exp b/test/_completion_to_review/strip.exp
deleted file mode 100644
index 29ec81f..0000000
--- a/test/_completion_to_review/strip.exp
+++ /dev/null
@@ -1 +0,0 @@
-source "lib/completions/strip.exp"
diff --git a/test/_completion_to_review/sudo.exp b/test/_completion_to_review/sudo.exp
deleted file mode 100644
index 0d1d19e..0000000
--- a/test/_completion_to_review/sudo.exp
+++ /dev/null
@@ -1 +0,0 @@
-source "lib/completions/sudo.exp"
diff --git a/test/_completion_to_review/svk.exp b/test/_completion_to_review/svk.exp
deleted file mode 100644
index 70b0b1b..0000000
--- a/test/_completion_to_review/svk.exp
+++ /dev/null
@@ -1 +0,0 @@
-source "lib/completions/svk.exp"
diff --git a/test/_completion_to_review/svn.exp b/test/_completion_to_review/svn.exp
deleted file mode 100644
index 4252349..0000000
--- a/test/_completion_to_review/svn.exp
+++ /dev/null
@@ -1 +0,0 @@
-source "lib/completions/svn.exp"
diff --git a/test/_completion_to_review/svnadmin.exp b/test/_completion_to_review/svnadmin.exp
deleted file mode 100644
index a879092..0000000
--- a/test/_completion_to_review/svnadmin.exp
+++ /dev/null
@@ -1 +0,0 @@
-source "lib/completions/svnadmin.exp"
diff --git a/test/_completion_to_review/svnlook.exp b/test/_completion_to_review/svnlook.exp
deleted file mode 100644
index c866811..0000000
--- a/test/_completion_to_review/svnlook.exp
+++ /dev/null
@@ -1 +0,0 @@
-source "lib/completions/svnlook.exp"
diff --git a/test/_completion_to_review/sync_members.exp b/test/_completion_to_review/sync_members.exp
deleted file mode 100644
index 30e49fe..0000000
--- a/test/_completion_to_review/sync_members.exp
+++ /dev/null
@@ -1 +0,0 @@
-source "lib/completions/sync_members.exp"
diff --git a/test/_completion_to_review/sysctl.exp b/test/_completion_to_review/sysctl.exp
deleted file mode 100644
index c1b361a..0000000
--- a/test/_completion_to_review/sysctl.exp
+++ /dev/null
@@ -1 +0,0 @@
-source "lib/completions/sysctl.exp"
diff --git a/test/completion/sbcl-mt.exp b/test/completion/sbcl-mt.exp
new file mode 100644
index 0000000..bea489b
--- /dev/null
+++ b/test/completion/sbcl-mt.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type sbcl-mt]} {
+ source "lib/completions/sbcl-mt.exp"
+}; # if
diff --git a/test/completion/sbcl.exp b/test/completion/sbcl.exp
new file mode 100644
index 0000000..d10c6f8
--- /dev/null
+++ b/test/completion/sbcl.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type sbcl]} {
+ source "lib/completions/sbcl.exp"
+}; # if
diff --git a/test/completion/scp.exp b/test/completion/scp.exp
new file mode 100644
index 0000000..d100aa6
--- /dev/null
+++ b/test/completion/scp.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type scp]} {
+ source "lib/completions/scp.exp"
+}; # if
diff --git a/test/completion/screen.exp b/test/completion/screen.exp
new file mode 100644
index 0000000..f600972
--- /dev/null
+++ b/test/completion/screen.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type screen]} {
+ source "lib/completions/screen.exp"
+}; # if
diff --git a/test/completion/sed.exp b/test/completion/sed.exp
new file mode 100644
index 0000000..8a01461
--- /dev/null
+++ b/test/completion/sed.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type sed]} {
+ source "lib/completions/sed.exp"
+}; # if
diff --git a/test/completion/seq.exp b/test/completion/seq.exp
new file mode 100644
index 0000000..4dcd7bb
--- /dev/null
+++ b/test/completion/seq.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type seq]} {
+ source "lib/completions/seq.exp"
+}; # if
diff --git a/test/completion/service.exp b/test/completion/service.exp
new file mode 100644
index 0000000..b453423
--- /dev/null
+++ b/test/completion/service.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type service]} {
+ source "lib/completions/service.exp"
+}; # if
diff --git a/test/completion/set.exp b/test/completion/set.exp
new file mode 100644
index 0000000..6a882bd
--- /dev/null
+++ b/test/completion/set.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type set]} {
+ source "lib/completions/set.exp"
+}; # if
diff --git a/test/completion/sftp.exp b/test/completion/sftp.exp
new file mode 100644
index 0000000..4eb27e7
--- /dev/null
+++ b/test/completion/sftp.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type sftp]} {
+ source "lib/completions/sftp.exp"
+}; # if
diff --git a/test/completion/sha1sum.exp b/test/completion/sha1sum.exp
new file mode 100644
index 0000000..46a8e8c
--- /dev/null
+++ b/test/completion/sha1sum.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type sha1sum]} {
+ source "lib/completions/sha1sum.exp"
+}; # if
diff --git a/test/completion/shar.exp b/test/completion/shar.exp
new file mode 100644
index 0000000..1c6adb2
--- /dev/null
+++ b/test/completion/shar.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type shar]} {
+ source "lib/completions/shar.exp"
+}; # if
diff --git a/test/completion/sitecopy.exp b/test/completion/sitecopy.exp
new file mode 100644
index 0000000..8b41359
--- /dev/null
+++ b/test/completion/sitecopy.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type sitecopy]} {
+ source "lib/completions/sitecopy.exp"
+}; # if
diff --git a/test/_completion_to_review/smartctl.exp b/test/completion/smartctl.exp
similarity index 100%
rename from test/_completion_to_review/smartctl.exp
rename to test/completion/smartctl.exp
diff --git a/test/completion/snownews.exp b/test/completion/snownews.exp
new file mode 100644
index 0000000..4ed33e1
--- /dev/null
+++ b/test/completion/snownews.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type snownews]} {
+ source "lib/completions/snownews.exp"
+}; # if
diff --git a/test/completion/sort.exp b/test/completion/sort.exp
new file mode 100644
index 0000000..21c592f
--- /dev/null
+++ b/test/completion/sort.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type sort]} {
+ source "lib/completions/sort.exp"
+}; # if
diff --git a/test/completion/split.exp b/test/completion/split.exp
new file mode 100644
index 0000000..fca9bcb
--- /dev/null
+++ b/test/completion/split.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type split]} {
+ source "lib/completions/split.exp"
+}; # if
diff --git a/test/completion/spovray.exp b/test/completion/spovray.exp
new file mode 100644
index 0000000..cceac7d
--- /dev/null
+++ b/test/completion/spovray.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type spovray]} {
+ source "lib/completions/spovray.exp"
+}; # if
diff --git a/test/completion/ssh.exp b/test/completion/ssh.exp
index 5b14ce2..f95761b 100644
--- a/test/completion/ssh.exp
+++ b/test/completion/ssh.exp
@@ -1,6 +1,3 @@
-source "lib/completions/ssh.exp"
-
-# TODO: Dynamic loading of completions. After the tests have the first time and
-# real completion is installed, the tests can be run a second time.
-#
-# source "lib/completions/ssh.exp"
+if {[assert_bash_type {ssh}]} {
+ source "lib/completions/ssh.exp"
+}; # if
diff --git a/test/completion/sshmitm.exp b/test/completion/sshmitm.exp
new file mode 100644
index 0000000..e6dc76a
--- /dev/null
+++ b/test/completion/sshmitm.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type sshmitm]} {
+ source "lib/completions/sshmitm.exp"
+}; # if
diff --git a/test/completion/sshow.exp b/test/completion/sshow.exp
new file mode 100644
index 0000000..b0c68da
--- /dev/null
+++ b/test/completion/sshow.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type sshow]} {
+ source "lib/completions/sshow.exp"
+}; # if
diff --git a/test/completion/strip.exp b/test/completion/strip.exp
new file mode 100644
index 0000000..4ce3836
--- /dev/null
+++ b/test/completion/strip.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type strip]} {
+ source "lib/completions/strip.exp"
+}; # if
diff --git a/test/completion/sudo.exp b/test/completion/sudo.exp
new file mode 100644
index 0000000..d4369ef
--- /dev/null
+++ b/test/completion/sudo.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type {sudo}]} {
+ source "lib/completions/sudo.exp"
+}; # if
diff --git a/test/completion/svk.exp b/test/completion/svk.exp
new file mode 100644
index 0000000..2905814
--- /dev/null
+++ b/test/completion/svk.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type svk]} {
+ source "lib/completions/svk.exp"
+}; # if
diff --git a/test/completion/svn.exp b/test/completion/svn.exp
new file mode 100644
index 0000000..61aee59
--- /dev/null
+++ b/test/completion/svn.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type svn]} {
+ source "lib/completions/svn.exp"
+}; # if
diff --git a/test/completion/svnadmin.exp b/test/completion/svnadmin.exp
new file mode 100644
index 0000000..83e042a
--- /dev/null
+++ b/test/completion/svnadmin.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type svnadmin]} {
+ source "lib/completions/svnadmin.exp"
+}; # if
diff --git a/test/completion/svnlook.exp b/test/completion/svnlook.exp
new file mode 100644
index 0000000..1e003e5
--- /dev/null
+++ b/test/completion/svnlook.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type svnlook]} {
+ source "lib/completions/svnlook.exp"
+}; # if
diff --git a/test/completion/sync_members.exp b/test/completion/sync_members.exp
new file mode 100644
index 0000000..2327712
--- /dev/null
+++ b/test/completion/sync_members.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type sync_members]} {
+ source "lib/completions/sync_members.exp"
+}; # if
diff --git a/test/completion/sysctl.exp b/test/completion/sysctl.exp
new file mode 100644
index 0000000..debb8d6
--- /dev/null
+++ b/test/completion/sysctl.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type sysctl]} {
+ source "lib/completions/sysctl.exp"
+}; # if
diff --git a/test/fixtures/scp/config b/test/fixtures/scp/config
new file mode 100644
index 0000000..fea6620
--- /dev/null
+++ b/test/fixtures/scp/config
@@ -0,0 +1,6 @@
+UserKnownHostsFile known_hosts
+
+ # Unindented
+Host gee
+ # Indented, multiple hosts
+ HostName hus ike
diff --git a/test/fixtures/_known_hosts_real/known_hosts b/test/fixtures/scp/known_hosts
similarity index 100%
copy from test/fixtures/_known_hosts_real/known_hosts
copy to test/fixtures/scp/known_hosts
diff --git a/test/fixtures/scp/spaced conf b/test/fixtures/scp/spaced conf
new file mode 100644
index 0000000..7ad64bc
--- /dev/null
+++ b/test/fixtures/scp/spaced conf
@@ -0,0 +1,6 @@
+ UserKnownHostsFile known_hosts
+
+ # Unindented
+Host gee jar
+ # Indented, multiple hosts
+ HostName hus
diff --git a/test/fixtures/sftp/config b/test/fixtures/sftp/config
new file mode 100644
index 0000000..fea6620
--- /dev/null
+++ b/test/fixtures/sftp/config
@@ -0,0 +1,6 @@
+UserKnownHostsFile known_hosts
+
+ # Unindented
+Host gee
+ # Indented, multiple hosts
+ HostName hus ike
diff --git a/test/fixtures/_known_hosts_real/known_hosts b/test/fixtures/sftp/known_hosts
similarity index 100%
copy from test/fixtures/_known_hosts_real/known_hosts
copy to test/fixtures/sftp/known_hosts
diff --git a/test/fixtures/sftp/spaced conf b/test/fixtures/sftp/spaced conf
new file mode 100644
index 0000000..7ad64bc
--- /dev/null
+++ b/test/fixtures/sftp/spaced conf
@@ -0,0 +1,6 @@
+ UserKnownHostsFile known_hosts
+
+ # Unindented
+Host gee jar
+ # Indented, multiple hosts
+ HostName hus
diff --git a/test/fixtures/ssh/config b/test/fixtures/ssh/config
index ab30ce4..806f405 100644
--- a/test/fixtures/ssh/config
+++ b/test/fixtures/ssh/config
@@ -1 +1 @@
-UserKnownHostsFile fixtures/ssh/known_hosts
+UserKnownHostsFile known_hosts
diff --git a/test/fixtures/ssh/spaced conf b/test/fixtures/ssh/spaced conf
new file mode 100644
index 0000000..7ad64bc
--- /dev/null
+++ b/test/fixtures/ssh/spaced conf
@@ -0,0 +1,6 @@
+ UserKnownHostsFile known_hosts
+
+ # Unindented
+Host gee jar
+ # Indented, multiple hosts
+ HostName hus
diff --git a/test/lib/completions/sbcl-mt.exp b/test/lib/completions/sbcl-mt.exp
new file mode 100644
index 0000000..905a62c
--- /dev/null
+++ b/test/lib/completions/sbcl-mt.exp
@@ -0,0 +1,20 @@
+proc setup {} {
+ save_env
+}; # setup()
+
+
+proc teardown {} {
+ assert_env_unmodified
+}; # teardown()
+
+
+setup
+
+
+assert_complete_any "sbcl-mt "
+
+
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions/sbcl.exp b/test/lib/completions/sbcl.exp
new file mode 100644
index 0000000..2763332
--- /dev/null
+++ b/test/lib/completions/sbcl.exp
@@ -0,0 +1,20 @@
+proc setup {} {
+ save_env
+}; # setup()
+
+
+proc teardown {} {
+ assert_env_unmodified
+}; # teardown()
+
+
+setup
+
+
+assert_complete_any "sbcl "
+
+
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions/scp.exp b/test/lib/completions/scp.exp
new file mode 100644
index 0000000..d16741a
--- /dev/null
+++ b/test/lib/completions/scp.exp
@@ -0,0 +1,104 @@
+proc setup {} {
+ save_env
+}; # setup()
+
+
+proc teardown {} {
+ assert_env_unmodified {
+ /BASH_LINENO=/d
+ /BASH_SOURCE=/d
+ /OLDPWD=/d
+ }
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete remote pwd"
+set host bash_completion
+
+ # Retrieving home directory (host_pwd) from ssh-host `bash_completion'
+ # yields error?
+if {
+ [catch {
+ exec -- ssh -o "Batchmode yes" -o "ConnectTimeout 1" $host pwd 2>> /dev/null
+ } host_pwd]
+} {
+ # Yes, retrieving pwd from ssh yields error; reset `host_pwd'
+ # Indicate host pwd is unknown and test is unsupported
+ # NOTE: To support this test, set the hostname "bash_completion"
+ # in `$HOME/.ssh/config' or `/etc/ssh_config'
+ set host_pwd ""
+ unsupported $test
+}; # if
+
+
+ # Try completion
+set cmd "scp $host:"
+send "$cmd\t"
+sync_after_tab
+expect {
+ -re "^$cmd$host_pwd.*$" { pass "$test" }
+ -re /@ { unresolved "$test at prompt" }
+}; # expect
+
+
+sync_after_int
+
+
+set test "Tab should complete known-hosts"
+
+ # Build string list of expected completions
+ # Get hostnames and give them a colon (:) suffix
+ # Hosts `gee' and `hus' are defined in ./fixtures/scp/config
+ # Hosts `doo' and `ike' are defined in ./fixtures/scp/known_hosts
+set expected {}
+foreach host [get_hosts] {
+ lappend expected "$host:"
+}; # foreach
+lappend expected doo: gee: hus: ike:
+ # Append local filenames
+lappend expected config known_hosts "spaced\\\\ \\\\ conf"
+set dir fixtures/scp
+assert_complete_dir $expected "scp -F config " $dir
+
+
+sync_after_int
+
+
+set test "-F without space shouldn't error"
+ # Try completion
+set cmd "scp -F"
+send "$cmd\t "
+expect {
+ -re "^${cmd}bash: option requires an argument -- F" { fail "$test" }
+ -re "^$cmd\r\n.*\r\n/@" { pass "$test" }
+ -re /@ { unresolved "$test at prompt" }
+ default { unresolved "$test" }
+}; # expect
+
+
+sync_after_int
+
+
+set test "Config file containing space should work"
+ # Build string list of expected completions
+ # Get hostnames and give them a colon (:) suffix
+set expected {}
+foreach host [get_hosts] {
+ lappend expected "$host:"
+}; # foreach
+ # Hosts `gee', `hus' and `jar' are defined in "./fixtures/scp/spaced conf"
+ # Hosts `doo' and `ike' are defined in ./fixtures/scp/known_hosts
+lappend expected doo: gee: hus: ike: jar:
+ # Append local filenames
+lappend expected config known_hosts "spaced\\\\ \\\\ conf"
+set dir fixtures/scp
+assert_complete_dir $expected "scp -F 'spaced conf' " $dir
+
+
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions/screen.exp b/test/lib/completions/screen.exp
new file mode 100644
index 0000000..5d01871
--- /dev/null
+++ b/test/lib/completions/screen.exp
@@ -0,0 +1,44 @@
+proc setup {} {
+ save_env
+}; # setup()
+
+
+proc teardown {} {
+ assert_env_unmodified {/OLDPWD=/d}
+}; # teardown()
+
+
+setup
+
+
+assert_complete_any "screen -"
+
+
+sync_after_int
+
+
+set test "-c should complete files/dirs"
+set dir fixture1
+set prompt "/$dir/@"
+assert_bash_exec "cd $dir" "" $prompt
+set cmd "screen -c "
+set expected {bar {bar bar.d} foo {foo.d}}
+send "$cmd\t"
+expect -ex "$cmd"
+expect {
+ -re "bar\\s+bar\\\\ bar.d\\s+foo\\s+foo.d" { pass "$test" }
+ # _filedir works only if `-o filenames' is in effect, which isn't the
+ # case for `screen'
+ -re "bar\\s+bar bar.d\\s+foo\\s+foo.d" { xfail "$test" }
+ -re $prompt { unresolved "$test at prompt" }
+ default { unresolved "$test" }
+}; # expect
+sync_after_int $prompt
+assert_bash_exec "cd \$TESTDIR"
+
+
+
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions/sed.exp b/test/lib/completions/sed.exp
new file mode 100644
index 0000000..0584107
--- /dev/null
+++ b/test/lib/completions/sed.exp
@@ -0,0 +1,20 @@
+proc setup {} {
+ save_env
+}; # setup()
+
+
+proc teardown {} {
+ assert_env_unmodified
+}; # teardown()
+
+
+setup
+
+
+assert_complete_any "sed --"
+
+
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions/seq.exp b/test/lib/completions/seq.exp
new file mode 100644
index 0000000..b5333ef
--- /dev/null
+++ b/test/lib/completions/seq.exp
@@ -0,0 +1,20 @@
+proc setup {} {
+ save_env
+}; # setup()
+
+
+proc teardown {} {
+ assert_env_unmodified
+}; # teardown()
+
+
+setup
+
+
+assert_complete_any "seq --"
+
+
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions/service.exp b/test/lib/completions/service.exp
new file mode 100644
index 0000000..917c5dc
--- /dev/null
+++ b/test/lib/completions/service.exp
@@ -0,0 +1,20 @@
+proc setup {} {
+ save_env
+}; # setup()
+
+
+proc teardown {} {
+ assert_env_unmodified
+}; # teardown()
+
+
+setup
+
+
+assert_complete_any "service "
+
+
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions/set.exp b/test/lib/completions/set.exp
new file mode 100644
index 0000000..2b2d40e
--- /dev/null
+++ b/test/lib/completions/set.exp
@@ -0,0 +1,20 @@
+proc setup {} {
+ save_env
+}; # setup()
+
+
+proc teardown {} {
+ assert_env_unmodified
+}; # teardown()
+
+
+setup
+
+
+assert_complete_any "set no"
+
+
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions/sftp.exp b/test/lib/completions/sftp.exp
new file mode 100644
index 0000000..7cd89c0
--- /dev/null
+++ b/test/lib/completions/sftp.exp
@@ -0,0 +1,77 @@
+proc setup {} {
+ save_env
+}; # setup()
+
+
+proc teardown {} {
+ assert_env_unmodified {
+ /BASH_LINENO=/d
+ /BASH_SOURCE=/d
+ /OLDPWD=/d
+ }
+}; # teardown()
+
+
+setup
+
+
+ # Build string list of expected completions
+set expected [get_hosts]
+ # Hosts `gee' and `hus' are defined in ./fixtures/sftp/config
+ # Hosts `doo' and `ike' are defined in ./fixtures/sftp/known_hosts
+lappend expected doo gee hus ike
+set dir fixtures/scp
+assert_complete_dir $expected "sftp -F config " $dir
+
+
+sync_after_int
+
+
+set test "-F without space shouldn't error"
+ # Try completion
+set cmd "sftp -F"
+send "$cmd\t "
+expect {
+ -re "^${cmd}bash: option requires an argument -- F" { fail "$test" }
+ -re "^$cmd\r\n.*\r\n/@" { pass "$test" }
+ -re /@ { unresolved "$test at prompt" }
+ default { unresolved "$test" }
+}; # expect
+
+
+sync_after_int
+
+
+ # Build string list of expected completions
+ # Get hostnames and give them a colon (:) suffix
+set expected [get_hosts]
+ # Hosts `gee', `hus' and `jar' are defined in "./fixtures/scp/spaced conf"
+ # Hosts `doo' and `ike' are defined in ./fixtures/scp/known_hosts
+lappend expected doo gee hus ike jar
+set dir fixtures/scp
+assert_complete_dir $expected "sftp -F 'spaced conf' " $dir
+
+
+sync_after_int
+
+
+set test "-F should complete filename"
+set dir fixtures/sftp
+set prompt "/$dir/@"
+assert_bash_exec "cd $dir" "" $prompt
+set cmd "ssh -Fsp"
+send "$cmd\t"
+expect -ex "$cmd"
+expect {
+ -ex "aced\\ \\ conf" { pass "$test" }
+ # _filedir works only if `-o filenames' is in effect, which isn't the
+ # case for `sftp'
+ -re "aced conf" { xfail "$test" }
+ -re $prompt { unresolved "$test at prompt" }
+ default { unresolved "$test" }
+}; # expect
+sync_after_int $prompt
+assert_bash_exec "cd \$TESTDIR"
+
+
+teardown
diff --git a/test/lib/completions/sha1sum.exp b/test/lib/completions/sha1sum.exp
new file mode 100644
index 0000000..1751908
--- /dev/null
+++ b/test/lib/completions/sha1sum.exp
@@ -0,0 +1,20 @@
+proc setup {} {
+ save_env
+}; # setup()
+
+
+proc teardown {} {
+ assert_env_unmodified
+}; # teardown()
+
+
+setup
+
+
+assert_complete_any "sha1sum --"
+
+
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions/shar.exp b/test/lib/completions/shar.exp
new file mode 100644
index 0000000..7ace9d6
--- /dev/null
+++ b/test/lib/completions/shar.exp
@@ -0,0 +1,20 @@
+proc setup {} {
+ save_env
+}; # setup()
+
+
+proc teardown {} {
+ assert_env_unmodified
+}; # teardown()
+
+
+setup
+
+
+assert_complete_any "shar --"
+
+
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions/sitecopy.exp b/test/lib/completions/sitecopy.exp
new file mode 100644
index 0000000..49b7891
--- /dev/null
+++ b/test/lib/completions/sitecopy.exp
@@ -0,0 +1,20 @@
+proc setup {} {
+ save_env
+}; # setup()
+
+
+proc teardown {} {
+ assert_env_unmodified
+}; # teardown()
+
+
+setup
+
+
+assert_complete_any "sitecopy --"
+
+
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions/smartctl.exp b/test/lib/completions/smartctl.exp
new file mode 100644
index 0000000..a9eeb95
--- /dev/null
+++ b/test/lib/completions/smartctl.exp
@@ -0,0 +1,20 @@
+proc setup {} {
+ save_env
+}; # setup()
+
+
+proc teardown {} {
+ assert_env_unmodified
+}; # teardown()
+
+
+setup
+
+
+assert_complete_any "smartctl --"
+
+
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions/snownews.exp b/test/lib/completions/snownews.exp
new file mode 100644
index 0000000..7502e58
--- /dev/null
+++ b/test/lib/completions/snownews.exp
@@ -0,0 +1,20 @@
+proc setup {} {
+ save_env
+}; # setup()
+
+
+proc teardown {} {
+ assert_env_unmodified
+}; # teardown()
+
+
+setup
+
+
+assert_complete_any "snownews --"
+
+
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions/sort.exp b/test/lib/completions/sort.exp
new file mode 100644
index 0000000..20516cc
--- /dev/null
+++ b/test/lib/completions/sort.exp
@@ -0,0 +1,20 @@
+proc setup {} {
+ save_env
+}; # setup()
+
+
+proc teardown {} {
+ assert_env_unmodified
+}; # teardown()
+
+
+setup
+
+
+assert_complete_any "sort --"
+
+
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions/split.exp b/test/lib/completions/split.exp
new file mode 100644
index 0000000..249ff9b
--- /dev/null
+++ b/test/lib/completions/split.exp
@@ -0,0 +1,20 @@
+proc setup {} {
+ save_env
+}; # setup()
+
+
+proc teardown {} {
+ assert_env_unmodified
+}; # teardown()
+
+
+setup
+
+
+assert_complete_any "split --"
+
+
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions/spovray.exp b/test/lib/completions/spovray.exp
new file mode 100644
index 0000000..30d8185
--- /dev/null
+++ b/test/lib/completions/spovray.exp
@@ -0,0 +1,20 @@
+proc setup {} {
+ save_env
+}; # setup()
+
+
+proc teardown {} {
+ assert_env_unmodified
+}; # teardown()
+
+
+setup
+
+
+assert_complete_any "spovray "
+
+
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions/ssh.exp b/test/lib/completions/ssh.exp
index 81b88e4..6afd339 100644
--- a/test/lib/completions/ssh.exp
+++ b/test/lib/completions/ssh.exp
@@ -4,23 +4,32 @@ proc setup {} {
proc teardown {} {
- assert_env_unmodified
+ assert_env_unmodified {
+ /BASH_LINENO=/d
+ /BASH_SOURCE=/d
+ /OLDPWD=/d
+ }
}; # teardown()
setup
-set test "Tab should complete both commands and hostnames"
+set test "Tab should complete both commands and hostname"
# Try completion
-set cmd "ssh -F fixtures/ssh/config ls"
+set dir fixtures/ssh
+set prompt "/$dir/@"
+assert_bash_exec "cd $dir" "" $prompt
+set cmd "ssh -F config ls"
send "$cmd\t"
-set expected "^$cmd\r\n.*ls.*ls_known_host.*\r\n/@$cmd$"
+set expected "^$cmd\r\n.*ls.*ls_known_host.*\r\n$prompt$cmd$"
expect {
-re $expected { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
+ -re $prompt { unresolved "$test at prompt" }
default { unresolved "$test" }
}; # expect
+sync_after_int $prompt
+assert_bash_exec "cd \$TESTDIR"
sync_after_int
@@ -33,7 +42,7 @@ send "$cmd\t "
set expected "^$cmd $"
expect {
-re "^${cmd}bash: option requires an argument -- F" { fail "$test" }
- -re $expected { pass "$test" }
+ -re "^$cmd\r\n.*\r\n/@" { pass "$test" }
-re /@ { unresolved "$test at prompt" }
default { unresolved "$test" }
}; # expect
@@ -50,10 +59,13 @@ send "$cmd\t"
expect -ex "$cmd"
expect {
-timeout 1
- # In case multiple commands `bas*' are completed
+ # In case multiple commands `bas*' - besides `bash' - are completed
-re "^\r\n.*bash.*\r\n/@$cmd$" { fail "$test" }
# In case the single command `bash' is completed
-re "h $" { fail "$test" }
+ # In case the hostname `bash_completion' is completed.
+ # See `scp' tests in `lib/completions/scp.exp'
+ -re "h_completion $" { pass "$test" }
-re ".+" { unresolved "$test" }
timeout { pass "$test" }
}; # expect
@@ -62,8 +74,30 @@ expect {
sync_after_int
-set test "Tab should complete partial hostname"
-assert_complete_partial [get_hosts] "ssh"
+set test "First argument should complete partial hostname"
+assert_complete_partial [get_hosts] ssh
+
+
+sync_after_int
+
+
+set test "-F should complete filename"
+set dir fixtures/ssh
+set prompt "/$dir/@"
+assert_bash_exec "cd $dir" "" $prompt
+set cmd "ssh -Fsp"
+send "$cmd\t"
+expect -ex "$cmd"
+expect {
+ -ex "aced\\ \\ conf" { pass "$test" }
+ # _filedir works only if `-o filenames' is in effect, which isn't the
+ # case for `ssh'
+ -re "aced conf" { xfail "$test" }
+ -re $prompt { unresolved "$test at prompt" }
+ default { unresolved "$test" }
+}; # expect
+sync_after_int $prompt
+assert_bash_exec "cd \$TESTDIR"
sync_after_int
diff --git a/test/lib/completions/sshmitm.exp b/test/lib/completions/sshmitm.exp
new file mode 100644
index 0000000..b8f8a2c
--- /dev/null
+++ b/test/lib/completions/sshmitm.exp
@@ -0,0 +1,20 @@
+proc setup {} {
+ save_env
+}; # setup()
+
+
+proc teardown {} {
+ assert_env_unmodified
+}; # teardown()
+
+
+setup
+
+
+assert_complete_any "sshmitm -"
+
+
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions/sshow.exp b/test/lib/completions/sshow.exp
new file mode 100644
index 0000000..36a6cc2
--- /dev/null
+++ b/test/lib/completions/sshow.exp
@@ -0,0 +1,20 @@
+proc setup {} {
+ save_env
+}; # setup()
+
+
+proc teardown {} {
+ assert_env_unmodified
+}; # teardown()
+
+
+setup
+
+
+assert_complete_any "sshow -"
+
+
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions/strip.exp b/test/lib/completions/strip.exp
new file mode 100644
index 0000000..46d9f36
--- /dev/null
+++ b/test/lib/completions/strip.exp
@@ -0,0 +1,20 @@
+proc setup {} {
+ save_env
+}; # setup()
+
+
+proc teardown {} {
+ assert_env_unmodified
+}; # teardown()
+
+
+setup
+
+
+assert_complete_any "strip --"
+
+
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions/sudo.exp b/test/lib/completions/sudo.exp
new file mode 100644
index 0000000..3dc98da
--- /dev/null
+++ b/test/lib/completions/sudo.exp
@@ -0,0 +1,20 @@
+proc setup {} {
+ save_env
+}; # setup()
+
+
+proc teardown {} {
+ assert_env_unmodified
+}; # teardown()
+
+
+setup
+
+
+assert_complete "fixture1/foo.d/" "sudo cd fixture1/fo"
+
+
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions/svk.exp b/test/lib/completions/svk.exp
new file mode 100644
index 0000000..a08674d
--- /dev/null
+++ b/test/lib/completions/svk.exp
@@ -0,0 +1,20 @@
+proc setup {} {
+ save_env
+}; # setup()
+
+
+proc teardown {} {
+ assert_env_unmodified
+}; # teardown()
+
+
+setup
+
+
+assert_complete_any "svk "
+
+
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions/svn.exp b/test/lib/completions/svn.exp
new file mode 100644
index 0000000..fe40d6f
--- /dev/null
+++ b/test/lib/completions/svn.exp
@@ -0,0 +1,20 @@
+proc setup {} {
+ save_env
+}; # setup()
+
+
+proc teardown {} {
+ assert_env_unmodified
+}; # teardown()
+
+
+setup
+
+
+assert_complete_any "svn "
+
+
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions/svnadmin.exp b/test/lib/completions/svnadmin.exp
new file mode 100644
index 0000000..35e0702
--- /dev/null
+++ b/test/lib/completions/svnadmin.exp
@@ -0,0 +1,20 @@
+proc setup {} {
+ save_env
+}; # setup()
+
+
+proc teardown {} {
+ assert_env_unmodified
+}; # teardown()
+
+
+setup
+
+
+assert_complete_any "svnadmin "
+
+
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions/svnlook.exp b/test/lib/completions/svnlook.exp
new file mode 100644
index 0000000..33b6705
--- /dev/null
+++ b/test/lib/completions/svnlook.exp
@@ -0,0 +1,20 @@
+proc setup {} {
+ save_env
+}; # setup()
+
+
+proc teardown {} {
+ assert_env_unmodified
+}; # teardown()
+
+
+setup
+
+
+assert_complete_any "svnlook "
+
+
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions/sync_members.exp b/test/lib/completions/sync_members.exp
new file mode 100644
index 0000000..4cb84ad
--- /dev/null
+++ b/test/lib/completions/sync_members.exp
@@ -0,0 +1,20 @@
+proc setup {} {
+ save_env
+}; # setup()
+
+
+proc teardown {} {
+ assert_env_unmodified
+}; # teardown()
+
+
+setup
+
+
+assert_complete_any "sync_members --"
+
+
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions/sysctl.exp b/test/lib/completions/sysctl.exp
new file mode 100644
index 0000000..cd7e7e3
--- /dev/null
+++ b/test/lib/completions/sysctl.exp
@@ -0,0 +1,20 @@
+proc setup {} {
+ save_env
+}; # setup()
+
+
+proc teardown {} {
+ assert_env_unmodified
+}; # teardown()
+
+
+setup
+
+
+assert_complete_any "sysctl fs"
+
+
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions_to_review/sbcl-mt.exp b/test/lib/completions_to_review/sbcl-mt.exp
deleted file mode 100644
index 51e15ba..0000000
--- a/test/lib/completions_to_review/sbcl-mt.exp
+++ /dev/null
@@ -1,26 +0,0 @@
-proc setup {} {
-}; # setup()
-
-
-proc teardown {} {
-}; # teardown()
-
-
-setup
-
-
-set test "Tab should complete"
- # Try completion
-set cmd "sbcl-mt "
-send "$cmd\t"
-expect {
- -re "^$cmd\r\n.*$cmd$" { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- -re eof { unresolved "eof" }
-}; # expect
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions_to_review/sbcl.exp b/test/lib/completions_to_review/sbcl.exp
deleted file mode 100644
index 9f5561a..0000000
--- a/test/lib/completions_to_review/sbcl.exp
+++ /dev/null
@@ -1,26 +0,0 @@
-proc setup {} {
-}; # setup()
-
-
-proc teardown {} {
-}; # teardown()
-
-
-setup
-
-
-set test "Tab should complete"
- # Try completion
-set cmd "sbcl "
-send "$cmd\t"
-expect {
- -re "^$cmd\r\n.*$cmd$" { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- -re eof { unresolved "eof" }
-}; # expect
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions_to_review/scp.exp b/test/lib/completions_to_review/scp.exp
deleted file mode 100644
index d11af00..0000000
--- a/test/lib/completions_to_review/scp.exp
+++ /dev/null
@@ -1,119 +0,0 @@
-proc setup {} {
- set test setup
- set cmd "cd fixtures/scp"
- send "$cmd\r"
- expect -re "^$cmd\r\n/fixtures/scp/@"
-}; # setup()
-
-
-proc teardown {} {
- set test teardown
- set cmd "cd ../.."
- send "$cmd\r"
- expect -re "^$cmd\r\n/@"
-}; # teardown()
-
-
-setup
-
-
-set test "Tab should complete remote pwd"
-
- # Retrieving `host_pwd' from ssh-host `bash_completion_lib' yields error?
- # NOTE: The host should be set in e.g. .ssh/config or /etc/ssh_config
-if {
- [catch {
- exec -- ssh -o "Batchmode yes" bash_completion_lib pwd 2>> /dev/null
- } host_pwd]
-} {
- # Yes, retrieving pwd from ssh yields error; reset `host_pwd'
- set host_pwd ""
-}
-
- # Try completion
-set cmd "scp bash_completion_lib:"
-send "$cmd\t"
-sync_after_tab
-expect {
- -re "^$cmd$host_pwd.*$" { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
-}; # expect
-
-
-sleep .5
-sync_after_int
-
-
-set test "Tab should complete scp known-hosts"
-
- # Build string list of completions, separated by regexp whitespace marker (\s+).
- # Example string: comp1\s+comp2\s+comp3
-
- # Get hostnames
-set comps [exec bash -c "compgen -A hostname"]
- # Hosts `gee' and `hus' are defined in ./fixtures/scp/config
- # Hosts `doo' and `ike' are defined in ./fixtures/scp/known_hosts
-lappend comps doo gee hus ike
- # Append filenames `config' and `known_hosts'
-lappend comps config known_hosts "spaced\\\\ \\\\ conf"
-set comps [lsort -ascii $comps]
-set comps [join $comps ":{0,1}\\s+"]
- # Try completion
-set cmd "scp -F config "
-send "$cmd\t"
-set expected "^${cmd}\r\n$comps:{0,1}\\s*/fixtures/scp/@$cmd$"
-expect {
- -re $expected { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- default { unresolved "$test" }
-}; # expect
-
-
-sync_after_int
-
-
-set test "-F without space shouldn't error"
- # Try completion
-set cmd "scp -F"
-send "$cmd\t "
-set expected "^$cmd $"
-expect {
- -re "^${cmd}bash: option requires an argument -- F" { fail "$test" }
- -re $expected { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- default { unresolved "$test" }
-}; # expect
-
-
-sync_after_int
-
-
-set test "Config file containing space should work"
-
- # Build string list of completions, separated by regexp whitespace marker (\s+).
- # Example string: comp1\s+comp2\s+comp3
-
- # Get hostnames
-set comps [exec bash -c "compgen -A hostname"]
- # Hosts `gee' and `hus' are defined in ./fixtures/scp/config
- # Hosts `doo' and `ike' are defined in ./fixtures/scp/known_hosts
-lappend comps doo gee hus ike
- # Append filenames `config' and `known_hosts'
-lappend comps config known_hosts "spaced\\\\ \\\\ conf"
-set comps [lsort -ascii $comps]
-set comps [join $comps ":{0,1}\\s+"]
- # Try completion
-set cmd "scp -F 'spaced conf' "
-send "$cmd\t"
-set expected "^${cmd}\r\n$comps:{0,1}\\s*/fixtures/scp/@$cmd$"
-expect {
- -re $expected { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- default { unresolved "$test" }
-}; # expect
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions_to_review/screen.exp b/test/lib/completions_to_review/screen.exp
deleted file mode 100644
index ee27326..0000000
--- a/test/lib/completions_to_review/screen.exp
+++ /dev/null
@@ -1,26 +0,0 @@
-proc setup {} {
-}; # setup()
-
-
-proc teardown {} {
-}; # teardown()
-
-
-setup
-
-
-set test "Tab should complete"
- # Try completion
-set cmd "screen -s /"
-send "$cmd\t"
-expect {
- -re "^${cmd}(grep: /etc/shells: No such file or directory|)\r\n.*$cmd$" { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- -re eof { unresolved "eof" }
-}; # expect
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions_to_review/sed.exp b/test/lib/completions_to_review/sed.exp
deleted file mode 100644
index 91be8ad..0000000
--- a/test/lib/completions_to_review/sed.exp
+++ /dev/null
@@ -1,27 +0,0 @@
-proc setup {} {
-}; # setup()
-
-
-proc teardown {} {
-}; # teardown()
-
-
-setup
-
-
-set test "Tab should complete"
- # Try completion
-set cmd "sed "
-send "$cmd\t"
-sync_after_tab
-expect {
- -re "^$cmd\r\n.*$cmd$" { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- -re eof { unresolved "eof" }
-}; # expect
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions_to_review/seq.exp b/test/lib/completions_to_review/seq.exp
deleted file mode 100644
index c2bda8b..0000000
--- a/test/lib/completions_to_review/seq.exp
+++ /dev/null
@@ -1,26 +0,0 @@
-proc setup {} {
-}; # setup()
-
-
-proc teardown {} {
-}; # teardown()
-
-
-setup
-
-
-set test "Tab should complete"
- # Try completion
-set cmd "seq "
-send "$cmd\t"
-expect {
- -re "^$cmd\r\n.*$cmd$" { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- -re eof { unresolved "eof" }
-}; # expect
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions_to_review/service.exp b/test/lib/completions_to_review/service.exp
deleted file mode 100644
index 3095725..0000000
--- a/test/lib/completions_to_review/service.exp
+++ /dev/null
@@ -1,26 +0,0 @@
-proc setup {} {
-}; # setup()
-
-
-proc teardown {} {
-}; # teardown()
-
-
-setup
-
-
-set test "Tab should show completions"
- # Try completion
-set cmd "service "
-send "$cmd\t"
-expect {
- -re "$cmd\r\n.*$cmd$" { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- -re eof { unresolved "eof" }
-}; # expect
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions_to_review/set.exp b/test/lib/completions_to_review/set.exp
deleted file mode 100644
index 39e70b0..0000000
--- a/test/lib/completions_to_review/set.exp
+++ /dev/null
@@ -1,26 +0,0 @@
-proc setup {} {
-}; # setup()
-
-
-proc teardown {} {
-}; # teardown()
-
-
-setup
-
-
-set test "Tab should complete"
- # Try completion
-set cmd "set no"
-send "$cmd\t"
-expect {
- -re "^$cmd\r\n.*$cmd$" { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- -re eof { unresolved "eof" }
-}; # expect
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions_to_review/sha1sum.exp b/test/lib/completions_to_review/sha1sum.exp
deleted file mode 100644
index 6f8bb60..0000000
--- a/test/lib/completions_to_review/sha1sum.exp
+++ /dev/null
@@ -1,26 +0,0 @@
-proc setup {} {
-}; # setup()
-
-
-proc teardown {} {
-}; # teardown()
-
-
-setup
-
-
-set test "Tab should complete"
- # Try completion
-set cmd "sha1sum "
-send "$cmd\t"
-expect {
- -re "^$cmd\r\n.*$cmd$" { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- -re eof { unresolved "eof" }
-}; # expect
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions_to_review/shar.exp b/test/lib/completions_to_review/shar.exp
deleted file mode 100644
index 08ef458..0000000
--- a/test/lib/completions_to_review/shar.exp
+++ /dev/null
@@ -1,26 +0,0 @@
-proc setup {} {
-}; # setup()
-
-
-proc teardown {} {
-}; # teardown()
-
-
-setup
-
-
-set test "Tab should complete"
- # Try completion
-set cmd "shar "
-send "$cmd\t"
-expect {
- -re "^$cmd\r\n.*$cmd$" { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- -re eof { unresolved "eof" }
-}; # expect
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions_to_review/sitecopy.exp b/test/lib/completions_to_review/sitecopy.exp
deleted file mode 100644
index 8d0d2af..0000000
--- a/test/lib/completions_to_review/sitecopy.exp
+++ /dev/null
@@ -1,26 +0,0 @@
-proc setup {} {
-}; # setup()
-
-
-proc teardown {} {
-}; # teardown()
-
-
-setup
-
-
-set test "Tab should complete"
- # Try completion
-set cmd "sitecopy "
-send "$cmd\t"
-expect {
- -re "^$cmd\r\n.*$cmd$" { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- -re eof { unresolved "eof" }
-}; # expect
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions_to_review/smartctl.exp b/test/lib/completions_to_review/smartctl.exp
deleted file mode 100644
index e45b9f6..0000000
--- a/test/lib/completions_to_review/smartctl.exp
+++ /dev/null
@@ -1,26 +0,0 @@
-proc setup {} {
-}; # setup()
-
-
-proc teardown {} {
-}; # teardown()
-
-
-setup
-
-
-set test "Tab should complete"
- # Try completion
-set cmd "smartctl --"
-send "$cmd\t"
-expect {
- -re "^$cmd\r\n.*$cmd$" { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- -re eof { unresolved "eof" }
-}; # expect
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions_to_review/snownews.exp b/test/lib/completions_to_review/snownews.exp
deleted file mode 100644
index 3b7eccf..0000000
--- a/test/lib/completions_to_review/snownews.exp
+++ /dev/null
@@ -1,26 +0,0 @@
-proc setup {} {
-}; # setup()
-
-
-proc teardown {} {
-}; # teardown()
-
-
-setup
-
-
-set test "Tab should complete"
- # Try completion
-set cmd "snownews --"
-send "$cmd\t"
-expect {
- -re "^$cmd\r\n.*$cmd$" { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- -re eof { unresolved "eof" }
-}; # expect
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions_to_review/sort.exp b/test/lib/completions_to_review/sort.exp
deleted file mode 100644
index 6db7aa6..0000000
--- a/test/lib/completions_to_review/sort.exp
+++ /dev/null
@@ -1,26 +0,0 @@
-proc setup {} {
-}; # setup()
-
-
-proc teardown {} {
-}; # teardown()
-
-
-setup
-
-
-set test "Tab should complete"
- # Try completion
-set cmd "sort "
-send "$cmd\t"
-expect {
- -re "^$cmd\r\n.*$cmd$" { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- -re eof { unresolved "eof" }
-}; # expect
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions_to_review/split.exp b/test/lib/completions_to_review/split.exp
deleted file mode 100644
index f907794..0000000
--- a/test/lib/completions_to_review/split.exp
+++ /dev/null
@@ -1,26 +0,0 @@
-proc setup {} {
-}; # setup()
-
-
-proc teardown {} {
-}; # teardown()
-
-
-setup
-
-
-set test "Tab should complete"
- # Try completion
-set cmd "split "
-send "$cmd\t"
-expect {
- -re "^$cmd\r\n.*$cmd$" { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- -re eof { unresolved "eof" }
-}; # expect
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions_to_review/spovray.exp b/test/lib/completions_to_review/spovray.exp
deleted file mode 100644
index 85f5923..0000000
--- a/test/lib/completions_to_review/spovray.exp
+++ /dev/null
@@ -1,26 +0,0 @@
-proc setup {} {
-}; # setup()
-
-
-proc teardown {} {
-}; # teardown()
-
-
-setup
-
-
-set test "Tab should complete"
- # Try completion
-set cmd "spovray "
-send "$cmd\t"
-expect {
- -re "^$cmd\r\n.*$cmd$" { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- -re eof { unresolved "eof" }
-}; # expect
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions_to_review/ssh.exp b/test/lib/completions_to_review/ssh.exp
deleted file mode 100644
index 5b98d87..0000000
--- a/test/lib/completions_to_review/ssh.exp
+++ /dev/null
@@ -1,75 +0,0 @@
-proc setup {} {
-}; # setup()
-
-
-proc teardown {} {
-}; # teardown()
-
-
-setup
-
-
-set test "Tab should complete ssh known-hosts"
- # Build string list of hostnames, separated by regexp whitespace marker (\s+).
- # Example string: host1\s+host2\s+host3
-set hosts [exec bash -c "compgen -A hostname"]
- # Hosts `gee' and `hus' are defined in ./fixtures/ssh/config
- # Hosts `doo' and `ike' are defined in ./fixtures/ssh/known_hosts
-lappend hosts doo gee hus ike
-set hosts [lsort -ascii $hosts]
-set hosts [join $hosts "\\s+"]
- # Try completion
-set cmd "ssh -F fixtures/ssh/config "
-send "$cmd\t"
-set expected "^$cmd\r\n$hosts\r\n/@$cmd$"
-expect {
- -re $expected { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- default { unresolved "$test" }
-}; # expect
-
-
-sync_after_int
-
-
-set test "-F without space shouldn't error"
- # Try completion
-set cmd "ssh -F"
-send "$cmd\t "
-set expected "^$cmd $"
-expect {
- -re "^${cmd}bash: option requires an argument -- F" { fail "$test" }
- -re $expected { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- default { unresolved "$test" }
-}; # expect
-
-
-sync_after_int
-
-
-set test "Config file containing space should work"
- # Build string list of hostnames, separated by regexp whitespace marker (\s+).
- # Example string: host1\s+host2\s+host3
-set hosts [exec bash -c "compgen -A hostname"]
- # Hosts `gee' and `hus' are defined in ./fixtures/ssh/config
- # Hosts `doo' and `ike' are defined in ./fixtures/ssh/known_hosts
- # Host `two' is defined in ./fixtures/ssh/known_hosts2
-lappend hosts doo gee hus ike two
-set hosts [lsort -ascii $hosts]
-set hosts [join $hosts "\\s+"]
- # Try completion
-set cmd "ssh -F 'fixtures/ssh/spaced conf' "
-send "$cmd\t"
-set expected "^$cmd\r\n$hosts\r\n/@$cmd$"
-expect {
- -re $expected { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- default { unresolved "$test" }
-}; # expect
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions_to_review/sshmitm.exp b/test/lib/completions_to_review/sshmitm.exp
deleted file mode 100644
index 6fbfa48..0000000
--- a/test/lib/completions_to_review/sshmitm.exp
+++ /dev/null
@@ -1,26 +0,0 @@
-proc setup {} {
-}; # setup()
-
-
-proc teardown {} {
-}; # teardown()
-
-
-setup
-
-
-set test "Tab should complete"
- # Try completion
-set cmd "sshmitm -"
-send "$cmd\t"
-expect {
- -re "^$cmd\r\n.*$cmd$" { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- -re eof { unresolved "eof" }
-}; # expect
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions_to_review/sshow.exp b/test/lib/completions_to_review/sshow.exp
deleted file mode 100644
index 683a924..0000000
--- a/test/lib/completions_to_review/sshow.exp
+++ /dev/null
@@ -1,26 +0,0 @@
-proc setup {} {
-}; # setup()
-
-
-proc teardown {} {
-}; # teardown()
-
-
-setup
-
-
-set test "Tab should complete"
- # Try completion
-set cmd "sshow -"
-send "$cmd\t"
-expect {
- -re "^$cmd\r\n.*$cmd$" { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- -re eof { unresolved "eof" }
-}; # expect
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions_to_review/strip.exp b/test/lib/completions_to_review/strip.exp
deleted file mode 100644
index ad73514..0000000
--- a/test/lib/completions_to_review/strip.exp
+++ /dev/null
@@ -1,26 +0,0 @@
-proc setup {} {
-}; # setup()
-
-
-proc teardown {} {
-}; # teardown()
-
-
-setup
-
-
-set test "Tab should complete"
- # Try completion
-set cmd "strip "
-send "$cmd\t"
-expect {
- -re "^$cmd\r\n.*$cmd$" { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- -re eof { unresolved "eof" }
-}; # expect
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions_to_review/sudo.exp b/test/lib/completions_to_review/sudo.exp
deleted file mode 100644
index e0799fb..0000000
--- a/test/lib/completions_to_review/sudo.exp
+++ /dev/null
@@ -1,25 +0,0 @@
-proc setup {} {
-}; # setup()
-
-
-proc teardown {} {
-}; # teardown()
-
-
-setup
-
-
-set test "Tab should complete"
- # Try completion
-set cmd "sudo cd fixture1/fo"
-send "$cmd\t"
-expect {
- -re "^sudo cd fixture1/foo.d/$" { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- -re eof { unresolved "eof" }
-}; # expect
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions_to_review/svk.exp b/test/lib/completions_to_review/svk.exp
deleted file mode 100644
index c4bd3e7..0000000
--- a/test/lib/completions_to_review/svk.exp
+++ /dev/null
@@ -1,26 +0,0 @@
-proc setup {} {
-}; # setup()
-
-
-proc teardown {} {
-}; # teardown()
-
-
-setup
-
-
-set test "Tab should complete"
- # Try completion
-set cmd "svk "
-send "$cmd\t"
-expect {
- -re "^$cmd\r\n.*$cmd$" { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- -re eof { unresolved "eof" }
-}; # expect
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions_to_review/svn.exp b/test/lib/completions_to_review/svn.exp
deleted file mode 100644
index bef9c05..0000000
--- a/test/lib/completions_to_review/svn.exp
+++ /dev/null
@@ -1,41 +0,0 @@
-proc setup {} {
-}; # setup()
-
-
-proc teardown {} {
-}; # teardown()
-
-
-setup
-
-
-set test "Tab should complete"
- # Try completion
-set cmd "svn "
-send "$cmd\t"
-expect {
- -re "^$cmd\r\n.*$cmd$" { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- -re eof { unresolved "eof" }
-}; # expect
-
-
-sync_after_int
-
-
-set test "Completing --editor-cmd should invoke _command"
- # Try completion
-set cmd "svn commit --editor-cmd vim"
-send "$cmd\t"
-expect {
- -re "^$cmd\r\n.*$cmd$" { pass "$test" }
- -re "^$cmd\r\n.*$cmd$" { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- -re eof { unresolved "eof" }
-}; # expect
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions_to_review/svnadmin.exp b/test/lib/completions_to_review/svnadmin.exp
deleted file mode 100644
index fabf5c9..0000000
--- a/test/lib/completions_to_review/svnadmin.exp
+++ /dev/null
@@ -1,26 +0,0 @@
-proc setup {} {
-}; # setup()
-
-
-proc teardown {} {
-}; # teardown()
-
-
-setup
-
-
-set test "Tab should complete"
- # Try completion
-set cmd "svnadmin "
-send "$cmd\t"
-expect {
- -re "^$cmd\r\n.*$cmd$" { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- -re eof { unresolved "eof" }
-}; # expect
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions_to_review/svnlook.exp b/test/lib/completions_to_review/svnlook.exp
deleted file mode 100644
index ab4adf3..0000000
--- a/test/lib/completions_to_review/svnlook.exp
+++ /dev/null
@@ -1,26 +0,0 @@
-proc setup {} {
-}; # setup()
-
-
-proc teardown {} {
-}; # teardown()
-
-
-setup
-
-
-set test "Tab should complete"
- # Try completion
-set cmd "svnlook "
-send "$cmd\t"
-expect {
- -re "^$cmd\r\n.*$cmd$" { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- -re eof { unresolved "eof" }
-}; # expect
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions_to_review/sync_members.exp b/test/lib/completions_to_review/sync_members.exp
deleted file mode 100644
index 370709a..0000000
--- a/test/lib/completions_to_review/sync_members.exp
+++ /dev/null
@@ -1,26 +0,0 @@
-proc setup {} {
-}; # setup()
-
-
-proc teardown {} {
-}; # teardown()
-
-
-setup
-
-
-set test "Tab should complete"
- # Try completion
-set cmd "sync_members --"
-send "$cmd\t"
-expect {
- -re "^$cmd\r\n.*$cmd$" { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- -re eof { unresolved "eof" }
-}; # expect
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions_to_review/sysctl.exp b/test/lib/completions_to_review/sysctl.exp
deleted file mode 100644
index 6793cf2..0000000
--- a/test/lib/completions_to_review/sysctl.exp
+++ /dev/null
@@ -1,29 +0,0 @@
-proc setup {} {
-}; # setup()
-
-
-proc teardown {} {
-}; # teardown()
-
-
-setup
-
-
-set test "Tab should complete"
- # Try completion
-set cmd "sysctl "
-send "$cmd\t"
- # NOTE: Wait in case `sysctl' returns nothing, so that "^$cdm.*$" doesn't match
- # too early -- before comp_install has finished
-sleep 1
-expect {
- -re "^$cmd\.*$" { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- -re eof { unresolved "eof" }
-}; # expect
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/library.exp b/test/lib/library.exp
index 968c432..3299ccb 100644
--- a/test/lib/library.exp
+++ b/test/lib/library.exp
@@ -65,8 +65,12 @@ proc assert_complete {expected cmd {test ""} {prompt /@} {size 20}} {
send "$cmd\t"
if {[llength $expected] == 1} {
expect -ex "$cmd"
- # Assume second word is word to complete on.
- set cur [lindex [split $cmd] 1]
+ set cmds [split $cmd]
+ set cur ""; # Default to empty word to complete on
+ if {[llength $cmds] > 1} {
+ # Assume last word of `$cmd' is word to complete on.
+ set cur [lindex $cmds [expr [llength $cmds] - 1]]
+ }; # if
# Remove second word from beginning of single item $expected
if {[string first $cur $expected] == 0} {
set expected [string range $expected [string length $cur] end]
@@ -181,7 +185,7 @@ proc assert_complete_partial {expected cmd {partial ""} {test ""} {prompt /@} {s
# # Replace `COMP_PATH=.*' with `COMP_PATH=PATH'
# assert_env_unmodified {s/COMP_PATH=.*/COMP_PATH=PATH/}
#
-# # Remove lines containing with `OLDPWD='
+# # Remove lines containing `OLDPWD='
# assert_env_unmodified {/OLDPWD=/d}
#
# @param string $file Filename to generate environment save file from. See
@@ -277,7 +281,7 @@ proc get_hosts {} {
type avahi-browse >&/dev/null && [ -n "$(pidof avahi-daemon)" ]
avahi-browse -cpr _workstation._tcp | grep ^= | cut -d\; -f7 | sort -u
}]
- if {[llength $avahi_hosts] > 1} {
+ if {[llength $avahi_hosts] > 0} {
lappend hosts $avahi_hosts
}; # if
return $hosts
@@ -342,7 +346,6 @@ proc match_items {items test {size 20}} {
# Get real command.
# - arg: $1 Command
-# - stdout: Filename of command in PATH with possible symbolic links resolved.
# - return: Command found, empty string if not found
proc realcommand {cmd} {
set result ""
diff --git a/test/lib/library.sh b/test/lib/library.sh
index e9b4d43..df683c6 100644
--- a/test/lib/library.sh
+++ b/test/lib/library.sh
@@ -10,7 +10,7 @@
# @param $1 Additional sed script
diff_env() {
diff "$1" "$2" | sed -e "
- /^[0-9]\+[acd]/d # Remove diff line indicators
+ /^[0-9,]\+[acd]/d # Remove diff line indicators
/---/d # Remove diff block separators
/[<>] _=/d # Remove underscore variable
/[<>] PPID=/d # Remove PPID bash variable
--
bash-completion
More information about the Bash-completion-commits
mailing list