[Bash-completion-commits] [SCM] bash-completion branch, master, updated. ad123d1b63a23d0cde94c21fc204276e3f6e8b81

Freddy Vulto (none) freddy at rebase.
Tue Jun 9 21:06:49 UTC 2009


The following commit has been merged in the master branch:
commit ad123d1b63a23d0cde94c21fc204276e3f6e8b81
Author: Freddy Vulto <freddy at rebase.(none)>
Date:   Tue Jun 9 23:04:43 2009 +0200

    Test suite files of bash-completion-lib
    They need minor modifications/upgrading and can then be moved to the
    directory without the '_to_review' suffix.

diff --git a/test/completion_to_review/a2ps.exp b/test/completion_to_review/a2ps.exp
new file mode 100644
index 0000000..bc3b92b
--- /dev/null
+++ b/test/completion_to_review/a2ps.exp
@@ -0,0 +1 @@
+source "lib/completions/a2ps.exp"
diff --git a/test/completion_to_review/acroread.exp b/test/completion_to_review/acroread.exp
new file mode 100644
index 0000000..c3635ae
--- /dev/null
+++ b/test/completion_to_review/acroread.exp
@@ -0,0 +1,12 @@
+set test "Completion via _filedir_xspec() should be installed"
+set cmd "complete -p acroread"
+send "$cmd\r"
+
+set expected "^$cmd\r\ncomplete -o filenames -F _filedir_xspec acroread\r\n/@$"
+expect {
+    -re $expected  { pass "$test" }
+    -re /@ { fail "$test at prompt" }
+}; # expect
+
+
+source "lib/completions/acroread.exp"
diff --git a/test/completion_to_review/add_members.exp b/test/completion_to_review/add_members.exp
new file mode 100644
index 0000000..756d699
--- /dev/null
+++ b/test/completion_to_review/add_members.exp
@@ -0,0 +1 @@
+source "lib/completions/add_members.exp"
diff --git a/test/completion_to_review/alias.exp b/test/completion_to_review/alias.exp
new file mode 100644
index 0000000..1f2a214
--- /dev/null
+++ b/test/completion_to_review/alias.exp
@@ -0,0 +1 @@
+source "lib/completions/alias.exp"
diff --git a/test/completion_to_review/animate.exp b/test/completion_to_review/animate.exp
new file mode 100644
index 0000000..0eaf41c
--- /dev/null
+++ b/test/completion_to_review/animate.exp
@@ -0,0 +1 @@
+source "lib/completions/animate.exp"
diff --git a/test/completion_to_review/ant.exp b/test/completion_to_review/ant.exp
new file mode 100644
index 0000000..d725a80
--- /dev/null
+++ b/test/completion_to_review/ant.exp
@@ -0,0 +1 @@
+source "lib/completions/ant.exp"
diff --git a/test/completion_to_review/apt-build.exp b/test/completion_to_review/apt-build.exp
new file mode 100644
index 0000000..5c47437
--- /dev/null
+++ b/test/completion_to_review/apt-build.exp
@@ -0,0 +1 @@
+source "lib/completions/apt-build.exp"
diff --git a/test/completion_to_review/apt-cache.exp b/test/completion_to_review/apt-cache.exp
new file mode 100644
index 0000000..1c071a9
--- /dev/null
+++ b/test/completion_to_review/apt-cache.exp
@@ -0,0 +1 @@
+source "lib/completions/apt-cache.exp"
diff --git a/test/completion_to_review/apt-get.exp b/test/completion_to_review/apt-get.exp
new file mode 100644
index 0000000..f902096
--- /dev/null
+++ b/test/completion_to_review/apt-get.exp
@@ -0,0 +1 @@
+source "lib/completions/apt-get.exp"
diff --git a/test/completion_to_review/aptitude.exp b/test/completion_to_review/aptitude.exp
new file mode 100644
index 0000000..3b8a5b2
--- /dev/null
+++ b/test/completion_to_review/aptitude.exp
@@ -0,0 +1 @@
+source "lib/completions/aptitude.exp"
diff --git a/test/completion_to_review/arch.exp b/test/completion_to_review/arch.exp
new file mode 100644
index 0000000..000153a
--- /dev/null
+++ b/test/completion_to_review/arch.exp
@@ -0,0 +1 @@
+source "lib/completions/arch.exp"
diff --git a/test/completion_to_review/arpspoof.exp b/test/completion_to_review/arpspoof.exp
new file mode 100644
index 0000000..8da3ef7
--- /dev/null
+++ b/test/completion_to_review/arpspoof.exp
@@ -0,0 +1 @@
+source "lib/completions/arpspoof.exp"
diff --git a/test/completion_to_review/aspell.exp b/test/completion_to_review/aspell.exp
new file mode 100644
index 0000000..6937f59
--- /dev/null
+++ b/test/completion_to_review/aspell.exp
@@ -0,0 +1 @@
+source "lib/completions/aspell.exp"
diff --git a/test/completion_to_review/autoconf.exp b/test/completion_to_review/autoconf.exp
new file mode 100644
index 0000000..006abf0
--- /dev/null
+++ b/test/completion_to_review/autoconf.exp
@@ -0,0 +1 @@
+source "lib/completions/autoconf.exp"
diff --git a/test/completion_to_review/automake.exp b/test/completion_to_review/automake.exp
new file mode 100644
index 0000000..fceb7a5
--- /dev/null
+++ b/test/completion_to_review/automake.exp
@@ -0,0 +1 @@
+source "lib/completions/automake.exp"
diff --git a/test/completion_to_review/awk.exp b/test/completion_to_review/awk.exp
new file mode 100644
index 0000000..851e038
--- /dev/null
+++ b/test/completion_to_review/awk.exp
@@ -0,0 +1 @@
+source "lib/completions/awk.exp"
diff --git a/test/completion_to_review/bash.exp b/test/completion_to_review/bash.exp
new file mode 100644
index 0000000..ed373f8
--- /dev/null
+++ b/test/completion_to_review/bash.exp
@@ -0,0 +1 @@
+source "lib/completions/bash.exp"
diff --git a/test/completion_to_review/bc.exp b/test/completion_to_review/bc.exp
new file mode 100644
index 0000000..69b21af
--- /dev/null
+++ b/test/completion_to_review/bc.exp
@@ -0,0 +1 @@
+source "lib/completions/bc.exp"
diff --git a/test/completion_to_review/bison.exp b/test/completion_to_review/bison.exp
new file mode 100644
index 0000000..159f50c
--- /dev/null
+++ b/test/completion_to_review/bison.exp
@@ -0,0 +1 @@
+source "lib/completions/bison.exp"
diff --git a/test/completion_to_review/bk.exp b/test/completion_to_review/bk.exp
new file mode 100644
index 0000000..2a0da51
--- /dev/null
+++ b/test/completion_to_review/bk.exp
@@ -0,0 +1 @@
+source "lib/completions/bk.exp"
diff --git a/test/completion_to_review/btdownloadcurses.py.exp b/test/completion_to_review/btdownloadcurses.py.exp
new file mode 100644
index 0000000..9e61174
--- /dev/null
+++ b/test/completion_to_review/btdownloadcurses.py.exp
@@ -0,0 +1 @@
+source "lib/completions/btdownloadcurses.py.exp"
diff --git a/test/completion_to_review/btdownloadgui.py.exp b/test/completion_to_review/btdownloadgui.py.exp
new file mode 100644
index 0000000..9cbb959
--- /dev/null
+++ b/test/completion_to_review/btdownloadgui.py.exp
@@ -0,0 +1 @@
+source "lib/completions/btdownloadgui.py.exp"
diff --git a/test/completion_to_review/btdownloadheadless.py.exp b/test/completion_to_review/btdownloadheadless.py.exp
new file mode 100644
index 0000000..14c568f
--- /dev/null
+++ b/test/completion_to_review/btdownloadheadless.py.exp
@@ -0,0 +1 @@
+source "lib/completions/btdownloadheadless.py.exp"
diff --git a/test/completion_to_review/c++.exp b/test/completion_to_review/c++.exp
new file mode 100644
index 0000000..0b3ff2c
--- /dev/null
+++ b/test/completion_to_review/c++.exp
@@ -0,0 +1 @@
+source "lib/completions/c++.exp"
diff --git a/test/completion_to_review/cancel.exp b/test/completion_to_review/cancel.exp
new file mode 100644
index 0000000..2e339cf
--- /dev/null
+++ b/test/completion_to_review/cancel.exp
@@ -0,0 +1 @@
+source "lib/completions/cancel.exp"
diff --git a/test/completion_to_review/cardctl.exp b/test/completion_to_review/cardctl.exp
new file mode 100644
index 0000000..9243c80
--- /dev/null
+++ b/test/completion_to_review/cardctl.exp
@@ -0,0 +1 @@
+source "lib/completions/cardctl.exp"
diff --git a/test/completion_to_review/cat.exp b/test/completion_to_review/cat.exp
new file mode 100644
index 0000000..b889d0e
--- /dev/null
+++ b/test/completion_to_review/cat.exp
@@ -0,0 +1 @@
+source "lib/completions/cat.exp"
diff --git a/test/completion_to_review/cc.exp b/test/completion_to_review/cc.exp
new file mode 100644
index 0000000..f206d99
--- /dev/null
+++ b/test/completion_to_review/cc.exp
@@ -0,0 +1 @@
+source "lib/completions/cc.exp"
diff --git a/test/completion_to_review/cd.exp b/test/completion_to_review/cd.exp
new file mode 100644
index 0000000..bb39554
--- /dev/null
+++ b/test/completion_to_review/cd.exp
@@ -0,0 +1 @@
+source "lib/completions/cd.exp"
diff --git a/test/completion_to_review/cdrecord.exp b/test/completion_to_review/cdrecord.exp
new file mode 100644
index 0000000..692305f
--- /dev/null
+++ b/test/completion_to_review/cdrecord.exp
@@ -0,0 +1 @@
+source "lib/completions/cdrecord.exp"
diff --git a/test/completion_to_review/change_pw.exp b/test/completion_to_review/change_pw.exp
new file mode 100644
index 0000000..c1a996b
--- /dev/null
+++ b/test/completion_to_review/change_pw.exp
@@ -0,0 +1 @@
+source "lib/completions/change_pw.exp"
diff --git a/test/completion_to_review/check_db.exp b/test/completion_to_review/check_db.exp
new file mode 100644
index 0000000..19bc9fc
--- /dev/null
+++ b/test/completion_to_review/check_db.exp
@@ -0,0 +1 @@
+source "lib/completions/check_db.exp"
diff --git a/test/completion_to_review/check_perms.exp b/test/completion_to_review/check_perms.exp
new file mode 100644
index 0000000..e664246
--- /dev/null
+++ b/test/completion_to_review/check_perms.exp
@@ -0,0 +1 @@
+source "lib/completions/check_perms.exp"
diff --git a/test/completion_to_review/chkconfig.exp b/test/completion_to_review/chkconfig.exp
new file mode 100644
index 0000000..da12ed4
--- /dev/null
+++ b/test/completion_to_review/chkconfig.exp
@@ -0,0 +1 @@
+source "lib/completions/chkconfig.exp"
diff --git a/test/completion_to_review/ci.exp b/test/completion_to_review/ci.exp
new file mode 100644
index 0000000..cec19b3
--- /dev/null
+++ b/test/completion_to_review/ci.exp
@@ -0,0 +1 @@
+source "lib/completions/ci.exp"
diff --git a/test/completion_to_review/civclient.exp b/test/completion_to_review/civclient.exp
new file mode 100644
index 0000000..933ec8e
--- /dev/null
+++ b/test/completion_to_review/civclient.exp
@@ -0,0 +1 @@
+source "lib/completions/civclient.exp"
diff --git a/test/completion_to_review/civserver.exp b/test/completion_to_review/civserver.exp
new file mode 100644
index 0000000..a3eb4a5
--- /dev/null
+++ b/test/completion_to_review/civserver.exp
@@ -0,0 +1 @@
+source "lib/completions/civserver.exp"
diff --git a/test/completion_to_review/cksfv.exp b/test/completion_to_review/cksfv.exp
new file mode 100644
index 0000000..12e398e
--- /dev/null
+++ b/test/completion_to_review/cksfv.exp
@@ -0,0 +1 @@
+source "lib/completions/cksfv.exp"
diff --git a/test/completion_to_review/cleanarch.exp b/test/completion_to_review/cleanarch.exp
new file mode 100644
index 0000000..e7efa8b
--- /dev/null
+++ b/test/completion_to_review/cleanarch.exp
@@ -0,0 +1 @@
+source "lib/completions/cleanarch.exp"
diff --git a/test/completion_to_review/clisp.exp b/test/completion_to_review/clisp.exp
new file mode 100644
index 0000000..d4a3525
--- /dev/null
+++ b/test/completion_to_review/clisp.exp
@@ -0,0 +1 @@
+source "lib/completions/clisp.exp"
diff --git a/test/completion_to_review/clone_member.exp b/test/completion_to_review/clone_member.exp
new file mode 100644
index 0000000..f2c7fa0
--- /dev/null
+++ b/test/completion_to_review/clone_member.exp
@@ -0,0 +1 @@
+source "lib/completions/clone_member.exp"
diff --git a/test/completion_to_review/co.exp b/test/completion_to_review/co.exp
new file mode 100644
index 0000000..6603ca4
--- /dev/null
+++ b/test/completion_to_review/co.exp
@@ -0,0 +1 @@
+source "lib/completions/co.exp"
diff --git a/test/completion_to_review/composite.exp b/test/completion_to_review/composite.exp
new file mode 100644
index 0000000..e70c482
--- /dev/null
+++ b/test/completion_to_review/composite.exp
@@ -0,0 +1 @@
+source "lib/completions/composite.exp"
diff --git a/test/completion_to_review/config_list.exp b/test/completion_to_review/config_list.exp
new file mode 100644
index 0000000..d014f57
--- /dev/null
+++ b/test/completion_to_review/config_list.exp
@@ -0,0 +1 @@
+source "lib/completions/config_list.exp"
diff --git a/test/completion_to_review/configure.exp b/test/completion_to_review/configure.exp
new file mode 100644
index 0000000..4b0c496
--- /dev/null
+++ b/test/completion_to_review/configure.exp
@@ -0,0 +1 @@
+source "lib/completions/configure.exp"
diff --git a/test/completion_to_review/convert.exp b/test/completion_to_review/convert.exp
new file mode 100644
index 0000000..90c2cbf
--- /dev/null
+++ b/test/completion_to_review/convert.exp
@@ -0,0 +1 @@
+source "lib/completions/convert.exp"
diff --git a/test/completion_to_review/cp.exp b/test/completion_to_review/cp.exp
new file mode 100644
index 0000000..7f532c1
--- /dev/null
+++ b/test/completion_to_review/cp.exp
@@ -0,0 +1 @@
+source "lib/completions/cp.exp"
diff --git a/test/completion_to_review/cpio.exp b/test/completion_to_review/cpio.exp
new file mode 100644
index 0000000..544fe0b
--- /dev/null
+++ b/test/completion_to_review/cpio.exp
@@ -0,0 +1 @@
+source "lib/completions/cpio.exp"
diff --git a/test/completion_to_review/createdb.exp b/test/completion_to_review/createdb.exp
new file mode 100644
index 0000000..90ebe30
--- /dev/null
+++ b/test/completion_to_review/createdb.exp
@@ -0,0 +1 @@
+source "lib/completions/createdb.exp"
diff --git a/test/completion_to_review/csplit.exp b/test/completion_to_review/csplit.exp
new file mode 100644
index 0000000..f4c0bd7
--- /dev/null
+++ b/test/completion_to_review/csplit.exp
@@ -0,0 +1 @@
+source "lib/completions/csplit.exp"
diff --git a/test/completion_to_review/cut.exp b/test/completion_to_review/cut.exp
new file mode 100644
index 0000000..3458062
--- /dev/null
+++ b/test/completion_to_review/cut.exp
@@ -0,0 +1 @@
+source "lib/completions/cut.exp"
diff --git a/test/completion_to_review/date.exp b/test/completion_to_review/date.exp
new file mode 100644
index 0000000..cab1d1c
--- /dev/null
+++ b/test/completion_to_review/date.exp
@@ -0,0 +1 @@
+source "lib/completions/date.exp"
diff --git a/test/completion_to_review/dcop.exp b/test/completion_to_review/dcop.exp
new file mode 100644
index 0000000..8b4d7b4
--- /dev/null
+++ b/test/completion_to_review/dcop.exp
@@ -0,0 +1 @@
+source "lib/completions/dcop.exp"
diff --git a/test/completion_to_review/dd.exp b/test/completion_to_review/dd.exp
new file mode 100644
index 0000000..1d322f3
--- /dev/null
+++ b/test/completion_to_review/dd.exp
@@ -0,0 +1 @@
+source "lib/completions/dd.exp"
diff --git a/test/completion_to_review/df.exp b/test/completion_to_review/df.exp
new file mode 100644
index 0000000..1e1241e
--- /dev/null
+++ b/test/completion_to_review/df.exp
@@ -0,0 +1 @@
+source "lib/completions/df.exp"
diff --git a/test/completion_to_review/dhclient.exp b/test/completion_to_review/dhclient.exp
new file mode 100644
index 0000000..d4a424c
--- /dev/null
+++ b/test/completion_to_review/dhclient.exp
@@ -0,0 +1 @@
+source "lib/completions/dhclient.exp"
diff --git a/test/completion_to_review/dict.exp b/test/completion_to_review/dict.exp
new file mode 100644
index 0000000..3b08a1e
--- /dev/null
+++ b/test/completion_to_review/dict.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type dict]} {
+    source "lib/completions/dict.exp"
+}; # if
diff --git a/test/completion_to_review/diff.exp b/test/completion_to_review/diff.exp
new file mode 100644
index 0000000..31b3ee4
--- /dev/null
+++ b/test/completion_to_review/diff.exp
@@ -0,0 +1 @@
+source "lib/completions/diff.exp"
diff --git a/test/completion_to_review/dir.exp b/test/completion_to_review/dir.exp
new file mode 100644
index 0000000..bcaefb5
--- /dev/null
+++ b/test/completion_to_review/dir.exp
@@ -0,0 +1 @@
+source "lib/completions/dir.exp"
diff --git a/test/completion_to_review/display.exp b/test/completion_to_review/display.exp
new file mode 100644
index 0000000..3275cef
--- /dev/null
+++ b/test/completion_to_review/display.exp
@@ -0,0 +1 @@
+source "lib/completions/display.exp"
diff --git a/test/completion_to_review/dnsspoof.exp b/test/completion_to_review/dnsspoof.exp
new file mode 100644
index 0000000..6083fe1
--- /dev/null
+++ b/test/completion_to_review/dnsspoof.exp
@@ -0,0 +1 @@
+source "lib/completions/dnsspoof.exp"
diff --git a/test/completion_to_review/dpkg-deb.exp b/test/completion_to_review/dpkg-deb.exp
new file mode 100644
index 0000000..d070ce3
--- /dev/null
+++ b/test/completion_to_review/dpkg-deb.exp
@@ -0,0 +1 @@
+source "lib/completions/dpkg-deb.exp"
diff --git a/test/completion_to_review/dpkg-reconfigure.exp b/test/completion_to_review/dpkg-reconfigure.exp
new file mode 100644
index 0000000..68fddbb
--- /dev/null
+++ b/test/completion_to_review/dpkg-reconfigure.exp
@@ -0,0 +1 @@
+source "lib/completions/dpkg-reconfigure.exp"
diff --git a/test/completion_to_review/dpkg-source.exp b/test/completion_to_review/dpkg-source.exp
new file mode 100644
index 0000000..15ee19b
--- /dev/null
+++ b/test/completion_to_review/dpkg-source.exp
@@ -0,0 +1 @@
+source "lib/completions/dpkg-source.exp"
diff --git a/test/completion_to_review/dpkg.exp b/test/completion_to_review/dpkg.exp
new file mode 100644
index 0000000..b944836
--- /dev/null
+++ b/test/completion_to_review/dpkg.exp
@@ -0,0 +1 @@
+source "lib/completions/dpkg.exp"
diff --git a/test/completion_to_review/dropdb.exp b/test/completion_to_review/dropdb.exp
new file mode 100644
index 0000000..01dc83c
--- /dev/null
+++ b/test/completion_to_review/dropdb.exp
@@ -0,0 +1 @@
+source "lib/completions/dropdb.exp"
diff --git a/test/completion_to_review/dselect.exp b/test/completion_to_review/dselect.exp
new file mode 100644
index 0000000..6d01496
--- /dev/null
+++ b/test/completion_to_review/dselect.exp
@@ -0,0 +1 @@
+source "lib/completions/dselect.exp"
diff --git a/test/completion_to_review/dsniff.exp b/test/completion_to_review/dsniff.exp
new file mode 100644
index 0000000..32368b3
--- /dev/null
+++ b/test/completion_to_review/dsniff.exp
@@ -0,0 +1 @@
+source "lib/completions/dsniff.exp"
diff --git a/test/completion_to_review/du.exp b/test/completion_to_review/du.exp
new file mode 100644
index 0000000..277b517
--- /dev/null
+++ b/test/completion_to_review/du.exp
@@ -0,0 +1 @@
+source "lib/completions/du.exp"
diff --git a/test/completion_to_review/dumpdb.exp b/test/completion_to_review/dumpdb.exp
new file mode 100644
index 0000000..8d73b39
--- /dev/null
+++ b/test/completion_to_review/dumpdb.exp
@@ -0,0 +1 @@
+source "lib/completions/dumpdb.exp"
diff --git a/test/completion_to_review/enscript.exp b/test/completion_to_review/enscript.exp
new file mode 100644
index 0000000..b10236b
--- /dev/null
+++ b/test/completion_to_review/enscript.exp
@@ -0,0 +1 @@
+source "lib/completions/enscript.exp"
diff --git a/test/completion_to_review/env.exp b/test/completion_to_review/env.exp
new file mode 100644
index 0000000..cc47ea1
--- /dev/null
+++ b/test/completion_to_review/env.exp
@@ -0,0 +1 @@
+source "lib/completions/env.exp"
diff --git a/test/completion_to_review/evince.exp b/test/completion_to_review/evince.exp
new file mode 100644
index 0000000..3df860e
--- /dev/null
+++ b/test/completion_to_review/evince.exp
@@ -0,0 +1,12 @@
+set test "Completion via _filedir_xspec() should be installed"
+set cmd "complete -p evince"
+send "$cmd\r"
+
+set expected "^$cmd\r\ncomplete -o filenames -F _filedir_xspec evince\r\n/@$"
+expect {
+    -re $expected  { pass "$test" }
+    -re /@ { fail "$test at prompt" }
+}; # expect
+
+
+source "lib/completions/evince.exp"
diff --git a/test/completion_to_review/expand.exp b/test/completion_to_review/expand.exp
new file mode 100644
index 0000000..55eec5a
--- /dev/null
+++ b/test/completion_to_review/expand.exp
@@ -0,0 +1 @@
+source "lib/completions/expand.exp"
diff --git a/test/completion_to_review/filesnarf.exp b/test/completion_to_review/filesnarf.exp
new file mode 100644
index 0000000..74dd80a
--- /dev/null
+++ b/test/completion_to_review/filesnarf.exp
@@ -0,0 +1 @@
+source "lib/completions/filesnarf.exp"
diff --git a/test/completion_to_review/find.exp b/test/completion_to_review/find.exp
new file mode 100644
index 0000000..0733f47
--- /dev/null
+++ b/test/completion_to_review/find.exp
@@ -0,0 +1 @@
+source "lib/completions/find.exp"
diff --git a/test/completion_to_review/find_member.exp b/test/completion_to_review/find_member.exp
new file mode 100644
index 0000000..dd0ee8b
--- /dev/null
+++ b/test/completion_to_review/find_member.exp
@@ -0,0 +1 @@
+source "lib/completions/find_member.exp"
diff --git a/test/completion_to_review/fmt.exp b/test/completion_to_review/fmt.exp
new file mode 100644
index 0000000..c81bb3c
--- /dev/null
+++ b/test/completion_to_review/fmt.exp
@@ -0,0 +1 @@
+source "lib/completions/fmt.exp"
diff --git a/test/completion_to_review/fold.exp b/test/completion_to_review/fold.exp
new file mode 100644
index 0000000..82d0f9d
--- /dev/null
+++ b/test/completion_to_review/fold.exp
@@ -0,0 +1 @@
+source "lib/completions/fold.exp"
diff --git a/test/completion_to_review/g++.exp b/test/completion_to_review/g++.exp
new file mode 100644
index 0000000..abf5833
--- /dev/null
+++ b/test/completion_to_review/g++.exp
@@ -0,0 +1 @@
+source "lib/completions/g++.exp"
diff --git a/test/completion_to_review/g4.exp b/test/completion_to_review/g4.exp
new file mode 100644
index 0000000..6ef80a2
--- /dev/null
+++ b/test/completion_to_review/g4.exp
@@ -0,0 +1 @@
+source "lib/completions/g4.exp"
diff --git a/test/completion_to_review/g77.exp b/test/completion_to_review/g77.exp
new file mode 100644
index 0000000..681fd23
--- /dev/null
+++ b/test/completion_to_review/g77.exp
@@ -0,0 +1 @@
+source "lib/completions/g77.exp"
diff --git a/test/completion_to_review/gcc.exp b/test/completion_to_review/gcc.exp
new file mode 100644
index 0000000..3df34f2
--- /dev/null
+++ b/test/completion_to_review/gcc.exp
@@ -0,0 +1 @@
+source "lib/completions/gcc.exp"
diff --git a/test/completion_to_review/gcj.exp b/test/completion_to_review/gcj.exp
new file mode 100644
index 0000000..773c4fa
--- /dev/null
+++ b/test/completion_to_review/gcj.exp
@@ -0,0 +1 @@
+source "lib/completions/gcj.exp"
diff --git a/test/completion_to_review/gcl.exp b/test/completion_to_review/gcl.exp
new file mode 100644
index 0000000..58f0182
--- /dev/null
+++ b/test/completion_to_review/gcl.exp
@@ -0,0 +1 @@
+source "lib/completions/gcl.exp"
diff --git a/test/completion_to_review/gdb.exp b/test/completion_to_review/gdb.exp
new file mode 100644
index 0000000..e721f51
--- /dev/null
+++ b/test/completion_to_review/gdb.exp
@@ -0,0 +1 @@
+source "lib/completions/gdb.exp"
diff --git a/test/completion_to_review/genaliases.exp b/test/completion_to_review/genaliases.exp
new file mode 100644
index 0000000..2436701
--- /dev/null
+++ b/test/completion_to_review/genaliases.exp
@@ -0,0 +1 @@
+source "lib/completions/genaliases.exp"
diff --git a/test/completion_to_review/getent.exp b/test/completion_to_review/getent.exp
new file mode 100644
index 0000000..fde2b0e
--- /dev/null
+++ b/test/completion_to_review/getent.exp
@@ -0,0 +1 @@
+source "lib/completions/getent.exp"
diff --git a/test/completion_to_review/gkrellm.exp b/test/completion_to_review/gkrellm.exp
new file mode 100644
index 0000000..4005b0e
--- /dev/null
+++ b/test/completion_to_review/gkrellm.exp
@@ -0,0 +1 @@
+source "lib/completions/gkrellm.exp"
diff --git a/test/completion_to_review/gmplayer.exp b/test/completion_to_review/gmplayer.exp
new file mode 100644
index 0000000..4b97aa4
--- /dev/null
+++ b/test/completion_to_review/gmplayer.exp
@@ -0,0 +1 @@
+source "lib/completions/gmplayer.exp"
diff --git a/test/completion_to_review/gnatmake.exp b/test/completion_to_review/gnatmake.exp
new file mode 100644
index 0000000..b70183b
--- /dev/null
+++ b/test/completion_to_review/gnatmake.exp
@@ -0,0 +1 @@
+source "lib/completions/gnatmake.exp"
diff --git a/test/completion_to_review/gpc.exp b/test/completion_to_review/gpc.exp
new file mode 100644
index 0000000..b5c8ca4
--- /dev/null
+++ b/test/completion_to_review/gpc.exp
@@ -0,0 +1 @@
+source "lib/completions/gpc.exp"
diff --git a/test/completion_to_review/gperf.exp b/test/completion_to_review/gperf.exp
new file mode 100644
index 0000000..ec562d8
--- /dev/null
+++ b/test/completion_to_review/gperf.exp
@@ -0,0 +1 @@
+source "lib/completions/gperf.exp"
diff --git a/test/completion_to_review/gpg.exp b/test/completion_to_review/gpg.exp
new file mode 100644
index 0000000..b09f392
--- /dev/null
+++ b/test/completion_to_review/gpg.exp
@@ -0,0 +1 @@
+source "lib/completions/gpg.exp"
diff --git a/test/completion_to_review/gprof.exp b/test/completion_to_review/gprof.exp
new file mode 100644
index 0000000..d893608
--- /dev/null
+++ b/test/completion_to_review/gprof.exp
@@ -0,0 +1 @@
+source "lib/completions/gprof.exp"
diff --git a/test/completion_to_review/grep.exp b/test/completion_to_review/grep.exp
new file mode 100644
index 0000000..838c9f7
--- /dev/null
+++ b/test/completion_to_review/grep.exp
@@ -0,0 +1 @@
+source "lib/completions/grep.exp"
diff --git a/test/completion_to_review/grub.exp b/test/completion_to_review/grub.exp
new file mode 100644
index 0000000..be43580
--- /dev/null
+++ b/test/completion_to_review/grub.exp
@@ -0,0 +1 @@
+source "lib/completions/grub.exp"
diff --git a/test/completion_to_review/head.exp b/test/completion_to_review/head.exp
new file mode 100644
index 0000000..6f38543
--- /dev/null
+++ b/test/completion_to_review/head.exp
@@ -0,0 +1 @@
+source "lib/completions/head.exp"
diff --git a/test/completion_to_review/hg.exp b/test/completion_to_review/hg.exp
new file mode 100644
index 0000000..0c6aae1
--- /dev/null
+++ b/test/completion_to_review/hg.exp
@@ -0,0 +1 @@
+source "lib/completions/hg.exp"
diff --git a/test/completion_to_review/iconv.exp b/test/completion_to_review/iconv.exp
new file mode 100644
index 0000000..5c2cfbd
--- /dev/null
+++ b/test/completion_to_review/iconv.exp
@@ -0,0 +1 @@
+source "lib/completions/iconv.exp"
diff --git a/test/completion_to_review/id.exp b/test/completion_to_review/id.exp
new file mode 100644
index 0000000..2aca482
--- /dev/null
+++ b/test/completion_to_review/id.exp
@@ -0,0 +1 @@
+source "lib/completions/id.exp"
diff --git a/test/completion_to_review/identify.exp b/test/completion_to_review/identify.exp
new file mode 100644
index 0000000..0bbbacf
--- /dev/null
+++ b/test/completion_to_review/identify.exp
@@ -0,0 +1 @@
+source "lib/completions/identify.exp"
diff --git a/test/completion_to_review/ifdown.exp b/test/completion_to_review/ifdown.exp
new file mode 100644
index 0000000..b2776e2
--- /dev/null
+++ b/test/completion_to_review/ifdown.exp
@@ -0,0 +1 @@
+source "lib/completions/ifdown.exp"
diff --git a/test/completion_to_review/ifup.exp b/test/completion_to_review/ifup.exp
new file mode 100644
index 0000000..fc1957a
--- /dev/null
+++ b/test/completion_to_review/ifup.exp
@@ -0,0 +1 @@
+source "lib/completions/ifup.exp"
diff --git a/test/completion_to_review/indent.exp b/test/completion_to_review/indent.exp
new file mode 100644
index 0000000..db4cde2
--- /dev/null
+++ b/test/completion_to_review/indent.exp
@@ -0,0 +1 @@
+source "lib/completions/indent.exp"
diff --git a/test/completion_to_review/info.exp b/test/completion_to_review/info.exp
new file mode 100644
index 0000000..32429d9
--- /dev/null
+++ b/test/completion_to_review/info.exp
@@ -0,0 +1 @@
+source "lib/completions/info.exp"
diff --git a/test/completion_to_review/inject.exp b/test/completion_to_review/inject.exp
new file mode 100644
index 0000000..cf3c195
--- /dev/null
+++ b/test/completion_to_review/inject.exp
@@ -0,0 +1 @@
+source "lib/completions/inject.exp"
diff --git a/test/completion_to_review/insmod.exp b/test/completion_to_review/insmod.exp
new file mode 100644
index 0000000..da1aab8
--- /dev/null
+++ b/test/completion_to_review/insmod.exp
@@ -0,0 +1 @@
+source "lib/completions/insmod.exp"
diff --git a/test/completion_to_review/invoke-rc.d.exp b/test/completion_to_review/invoke-rc.d.exp
new file mode 100644
index 0000000..5093383
--- /dev/null
+++ b/test/completion_to_review/invoke-rc.d.exp
@@ -0,0 +1 @@
+source "lib/completions/invoke-rc.d.exp"
diff --git a/test/completion_to_review/irb.exp b/test/completion_to_review/irb.exp
new file mode 100644
index 0000000..e598d86
--- /dev/null
+++ b/test/completion_to_review/irb.exp
@@ -0,0 +1 @@
+source "lib/completions/irb.exp"
diff --git a/test/completion_to_review/isql.exp b/test/completion_to_review/isql.exp
new file mode 100644
index 0000000..b324b1a
--- /dev/null
+++ b/test/completion_to_review/isql.exp
@@ -0,0 +1 @@
+source "lib/completions/isql.exp"
diff --git a/test/completion_to_review/iwconfig.exp b/test/completion_to_review/iwconfig.exp
new file mode 100644
index 0000000..8530e05
--- /dev/null
+++ b/test/completion_to_review/iwconfig.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type iwconfig]} {
+    source "lib/completions/iwconfig.exp"
+}; # if
diff --git a/test/completion_to_review/iwlist.exp b/test/completion_to_review/iwlist.exp
new file mode 100644
index 0000000..e5386fa
--- /dev/null
+++ b/test/completion_to_review/iwlist.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type iwlist]} {
+    source "lib/completions/iwlist.exp"
+}; # if
diff --git a/test/completion_to_review/iwpriv.exp b/test/completion_to_review/iwpriv.exp
new file mode 100644
index 0000000..4234394
--- /dev/null
+++ b/test/completion_to_review/iwpriv.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type iwpriv]} {
+    source "lib/completions/iwpriv.exp"
+}; # if
diff --git a/test/completion_to_review/iwspy.exp b/test/completion_to_review/iwspy.exp
new file mode 100644
index 0000000..31e361d
--- /dev/null
+++ b/test/completion_to_review/iwspy.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type iwspy]} {
+    source "lib/completions/iwspy.exp"
+}; # if
diff --git a/test/completion_to_review/java.exp b/test/completion_to_review/java.exp
new file mode 100644
index 0000000..4e412da
--- /dev/null
+++ b/test/completion_to_review/java.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type java]} {
+    source "lib/completions/java.exp"
+}; # if
diff --git a/test/completion_to_review/javac.exp b/test/completion_to_review/javac.exp
new file mode 100644
index 0000000..21516c7
--- /dev/null
+++ b/test/completion_to_review/javac.exp
@@ -0,0 +1 @@
+source "lib/completions/javac.exp"
diff --git a/test/completion_to_review/javadoc.exp b/test/completion_to_review/javadoc.exp
new file mode 100644
index 0000000..b89b8fc
--- /dev/null
+++ b/test/completion_to_review/javadoc.exp
@@ -0,0 +1 @@
+source "lib/completions/javadoc.exp"
diff --git a/test/completion_to_review/kill.exp b/test/completion_to_review/kill.exp
new file mode 100644
index 0000000..6c5b5a3
--- /dev/null
+++ b/test/completion_to_review/kill.exp
@@ -0,0 +1 @@
+source "lib/completions/kill.exp"
diff --git a/test/completion_to_review/killall.exp b/test/completion_to_review/killall.exp
new file mode 100644
index 0000000..bbc5953
--- /dev/null
+++ b/test/completion_to_review/killall.exp
@@ -0,0 +1 @@
+source "lib/completions/killall.exp"
diff --git a/test/completion_to_review/kldload.exp b/test/completion_to_review/kldload.exp
new file mode 100644
index 0000000..4b36f49
--- /dev/null
+++ b/test/completion_to_review/kldload.exp
@@ -0,0 +1 @@
+source "lib/completions/kldload.exp"
diff --git a/test/completion_to_review/kldunload.exp b/test/completion_to_review/kldunload.exp
new file mode 100644
index 0000000..d971f36
--- /dev/null
+++ b/test/completion_to_review/kldunload.exp
@@ -0,0 +1 @@
+source "lib/completions/kldunload.exp"
diff --git a/test/completion_to_review/kplayer.exp b/test/completion_to_review/kplayer.exp
new file mode 100644
index 0000000..9c98366
--- /dev/null
+++ b/test/completion_to_review/kplayer.exp
@@ -0,0 +1 @@
+source "lib/completions/kplayer.exp"
diff --git a/test/completion_to_review/larch.exp b/test/completion_to_review/larch.exp
new file mode 100644
index 0000000..bad7768
--- /dev/null
+++ b/test/completion_to_review/larch.exp
@@ -0,0 +1 @@
+source "lib/completions/larch.exp"
diff --git a/test/completion_to_review/ld.exp b/test/completion_to_review/ld.exp
new file mode 100644
index 0000000..c2285cb
--- /dev/null
+++ b/test/completion_to_review/ld.exp
@@ -0,0 +1 @@
+source "lib/completions/ld.exp"
diff --git a/test/completion_to_review/ldd.exp b/test/completion_to_review/ldd.exp
new file mode 100644
index 0000000..fe9c400
--- /dev/null
+++ b/test/completion_to_review/ldd.exp
@@ -0,0 +1 @@
+source "lib/completions/ldd.exp"
diff --git a/test/completion_to_review/less.exp b/test/completion_to_review/less.exp
new file mode 100644
index 0000000..f58cd99
--- /dev/null
+++ b/test/completion_to_review/less.exp
@@ -0,0 +1 @@
+source "lib/completions/less.exp"
diff --git a/test/completion_to_review/lftp.exp b/test/completion_to_review/lftp.exp
new file mode 100644
index 0000000..16d1c95
--- /dev/null
+++ b/test/completion_to_review/lftp.exp
@@ -0,0 +1 @@
+source "lib/completions/lftp.exp"
diff --git a/test/completion_to_review/lilo.exp b/test/completion_to_review/lilo.exp
new file mode 100644
index 0000000..340509b
--- /dev/null
+++ b/test/completion_to_review/lilo.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type {lilo}]} {
+    source "lib/completions/lilo.exp"
+}; # if
diff --git a/test/completion_to_review/links.exp b/test/completion_to_review/links.exp
new file mode 100644
index 0000000..776bedd
--- /dev/null
+++ b/test/completion_to_review/links.exp
@@ -0,0 +1 @@
+source "lib/completions/links.exp"
diff --git a/test/completion_to_review/lisp.exp b/test/completion_to_review/lisp.exp
new file mode 100644
index 0000000..ddd6ad5
--- /dev/null
+++ b/test/completion_to_review/lisp.exp
@@ -0,0 +1 @@
+source "lib/completions/lisp.exp"
diff --git a/test/completion_to_review/list_admins.exp b/test/completion_to_review/list_admins.exp
new file mode 100644
index 0000000..f4ec2f5
--- /dev/null
+++ b/test/completion_to_review/list_admins.exp
@@ -0,0 +1 @@
+source "lib/completions/list_admins.exp"
diff --git a/test/completion_to_review/list_lists.exp b/test/completion_to_review/list_lists.exp
new file mode 100644
index 0000000..705c4d5
--- /dev/null
+++ b/test/completion_to_review/list_lists.exp
@@ -0,0 +1 @@
+source "lib/completions/list_lists.exp"
diff --git a/test/completion_to_review/list_members.exp b/test/completion_to_review/list_members.exp
new file mode 100644
index 0000000..4618c03
--- /dev/null
+++ b/test/completion_to_review/list_members.exp
@@ -0,0 +1 @@
+source "lib/completions/list_members.exp"
diff --git a/test/completion_to_review/list_owners.exp b/test/completion_to_review/list_owners.exp
new file mode 100644
index 0000000..8f66acb
--- /dev/null
+++ b/test/completion_to_review/list_owners.exp
@@ -0,0 +1 @@
+source "lib/completions/list_owners.exp"
diff --git a/test/completion_to_review/ln.exp b/test/completion_to_review/ln.exp
new file mode 100644
index 0000000..70d31ff
--- /dev/null
+++ b/test/completion_to_review/ln.exp
@@ -0,0 +1 @@
+source "lib/completions/ln.exp"
diff --git a/test/completion_to_review/look.exp b/test/completion_to_review/look.exp
new file mode 100644
index 0000000..57ed96b
--- /dev/null
+++ b/test/completion_to_review/look.exp
@@ -0,0 +1 @@
+source "lib/completions/look.exp"
diff --git a/test/completion_to_review/ls.exp b/test/completion_to_review/ls.exp
new file mode 100644
index 0000000..6b78b68
--- /dev/null
+++ b/test/completion_to_review/ls.exp
@@ -0,0 +1 @@
+source "lib/completions/ls.exp"
diff --git a/test/completion_to_review/lvchange.exp b/test/completion_to_review/lvchange.exp
new file mode 100644
index 0000000..15d5e26
--- /dev/null
+++ b/test/completion_to_review/lvchange.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type lvchange]} {
+    source "lib/completions/lvchange.exp"
+}; # if
diff --git a/test/completion_to_review/lvcreate.exp b/test/completion_to_review/lvcreate.exp
new file mode 100644
index 0000000..0687908
--- /dev/null
+++ b/test/completion_to_review/lvcreate.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type lvcreate]} {
+    source "lib/completions/lvcreate.exp"
+}; # if
diff --git a/test/completion_to_review/lvdisplay.exp b/test/completion_to_review/lvdisplay.exp
new file mode 100644
index 0000000..112e223
--- /dev/null
+++ b/test/completion_to_review/lvdisplay.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type lvdisplay]} {
+    source "lib/completions/lvdisplay.exp"
+}; # if
diff --git a/test/completion_to_review/lvextend.exp b/test/completion_to_review/lvextend.exp
new file mode 100644
index 0000000..023c97a
--- /dev/null
+++ b/test/completion_to_review/lvextend.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type lvextend]} {
+    source "lib/completions/lvextend.exp"
+}; # if
diff --git a/test/completion_to_review/lvm.exp b/test/completion_to_review/lvm.exp
new file mode 100644
index 0000000..b5cc2fe
--- /dev/null
+++ b/test/completion_to_review/lvm.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type lvm]} {
+    source "lib/completions/lvm.exp"
+}; # if
diff --git a/test/completion_to_review/lvmdiskscan.exp b/test/completion_to_review/lvmdiskscan.exp
new file mode 100644
index 0000000..d5c84cd
--- /dev/null
+++ b/test/completion_to_review/lvmdiskscan.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type lvmdiskscan]} {
+    source "lib/completions/lvmdiskscan.exp"
+}; # if
diff --git a/test/completion_to_review/lvreduce.exp b/test/completion_to_review/lvreduce.exp
new file mode 100644
index 0000000..f44af76
--- /dev/null
+++ b/test/completion_to_review/lvreduce.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type lvreduce]} {
+    source "lib/completions/lvreduce.exp"
+}; # if
diff --git a/test/completion_to_review/lvremove.exp b/test/completion_to_review/lvremove.exp
new file mode 100644
index 0000000..1f335e9
--- /dev/null
+++ b/test/completion_to_review/lvremove.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type lvremove]} {
+    source "lib/completions/lvremove.exp"
+}; # if
diff --git a/test/completion_to_review/lvrename.exp b/test/completion_to_review/lvrename.exp
new file mode 100644
index 0000000..a3e126c
--- /dev/null
+++ b/test/completion_to_review/lvrename.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type lvrename]} {
+    source "lib/completions/lvrename.exp"
+}; # if
diff --git a/test/completion_to_review/lvresize.exp b/test/completion_to_review/lvresize.exp
new file mode 100644
index 0000000..0246ffc
--- /dev/null
+++ b/test/completion_to_review/lvresize.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type lvresize]} {
+    source "lib/completions/lvresize.exp"
+}; # if
diff --git a/test/completion_to_review/lvs.exp b/test/completion_to_review/lvs.exp
new file mode 100644
index 0000000..f6a2124
--- /dev/null
+++ b/test/completion_to_review/lvs.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type lvs]} {
+    source "lib/completions/lvs.exp"
+}; # if
diff --git a/test/completion_to_review/lvscan.exp b/test/completion_to_review/lvscan.exp
new file mode 100644
index 0000000..03992b1
--- /dev/null
+++ b/test/completion_to_review/lvscan.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type lvscan]} {
+    source "lib/completions/lvscan.exp"
+}; # if
diff --git a/test/completion_to_review/m4.exp b/test/completion_to_review/m4.exp
new file mode 100644
index 0000000..c997e3d
--- /dev/null
+++ b/test/completion_to_review/m4.exp
@@ -0,0 +1 @@
+source "lib/completions/m4.exp"
diff --git a/test/completion_to_review/macof.exp b/test/completion_to_review/macof.exp
new file mode 100644
index 0000000..a07e4c1
--- /dev/null
+++ b/test/completion_to_review/macof.exp
@@ -0,0 +1 @@
+source "lib/completions/macof.exp"
diff --git a/test/completion_to_review/mailmanctl.exp b/test/completion_to_review/mailmanctl.exp
new file mode 100644
index 0000000..d3bd161
--- /dev/null
+++ b/test/completion_to_review/mailmanctl.exp
@@ -0,0 +1 @@
+source "lib/completions/mailmanctl.exp"
diff --git a/test/completion_to_review/mailsnarf.exp b/test/completion_to_review/mailsnarf.exp
new file mode 100644
index 0000000..168e52c
--- /dev/null
+++ b/test/completion_to_review/mailsnarf.exp
@@ -0,0 +1 @@
+source "lib/completions/mailsnarf.exp"
diff --git a/test/completion_to_review/man.exp b/test/completion_to_review/man.exp
new file mode 100644
index 0000000..89e7264
--- /dev/null
+++ b/test/completion_to_review/man.exp
@@ -0,0 +1 @@
+source "lib/completions/man.exp"
diff --git a/test/completion_to_review/mc.exp b/test/completion_to_review/mc.exp
new file mode 100644
index 0000000..f01cf46
--- /dev/null
+++ b/test/completion_to_review/mc.exp
@@ -0,0 +1 @@
+source "lib/completions/mc.exp"
diff --git a/test/completion_to_review/mcrypt.exp b/test/completion_to_review/mcrypt.exp
new file mode 100644
index 0000000..050d0b3
--- /dev/null
+++ b/test/completion_to_review/mcrypt.exp
@@ -0,0 +1 @@
+source "lib/completions/mcrypt.exp"
diff --git a/test/completion_to_review/md5sum.exp b/test/completion_to_review/md5sum.exp
new file mode 100644
index 0000000..924c5c8
--- /dev/null
+++ b/test/completion_to_review/md5sum.exp
@@ -0,0 +1 @@
+source "lib/completions/md5sum.exp"
diff --git a/test/completion_to_review/mdecrypt.exp b/test/completion_to_review/mdecrypt.exp
new file mode 100644
index 0000000..ed84374
--- /dev/null
+++ b/test/completion_to_review/mdecrypt.exp
@@ -0,0 +1 @@
+source "lib/completions/mdecrypt.exp"
diff --git a/test/completion_to_review/mencoder.exp b/test/completion_to_review/mencoder.exp
new file mode 100644
index 0000000..3d7a46b
--- /dev/null
+++ b/test/completion_to_review/mencoder.exp
@@ -0,0 +1 @@
+source "lib/completions/mencoder.exp"
diff --git a/test/completion_to_review/minicom.exp b/test/completion_to_review/minicom.exp
new file mode 100644
index 0000000..86e278d
--- /dev/null
+++ b/test/completion_to_review/minicom.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type minicom]} {
+    source "lib/completions/minicom.exp"
+}; # if
diff --git a/test/completion_to_review/mkdir.exp b/test/completion_to_review/mkdir.exp
new file mode 100644
index 0000000..2069725
--- /dev/null
+++ b/test/completion_to_review/mkdir.exp
@@ -0,0 +1 @@
+source "lib/completions/mkdir.exp"
diff --git a/test/completion_to_review/mkfifo.exp b/test/completion_to_review/mkfifo.exp
new file mode 100644
index 0000000..162d7f7
--- /dev/null
+++ b/test/completion_to_review/mkfifo.exp
@@ -0,0 +1 @@
+source "lib/completions/mkfifo.exp"
diff --git a/test/completion_to_review/mkinitrd.exp b/test/completion_to_review/mkinitrd.exp
new file mode 100644
index 0000000..335401e
--- /dev/null
+++ b/test/completion_to_review/mkinitrd.exp
@@ -0,0 +1 @@
+source "lib/completions/mkinitrd.exp"
diff --git a/test/completion_to_review/mkisofs.exp b/test/completion_to_review/mkisofs.exp
new file mode 100644
index 0000000..11acbeb
--- /dev/null
+++ b/test/completion_to_review/mkisofs.exp
@@ -0,0 +1 @@
+source "lib/completions/mkisofs.exp"
diff --git a/test/completion_to_review/mknod.exp b/test/completion_to_review/mknod.exp
new file mode 100644
index 0000000..33a5de7
--- /dev/null
+++ b/test/completion_to_review/mknod.exp
@@ -0,0 +1 @@
+source "lib/completions/mknod.exp"
diff --git a/test/completion_to_review/mmsitepass.exp b/test/completion_to_review/mmsitepass.exp
new file mode 100644
index 0000000..d27dd67
--- /dev/null
+++ b/test/completion_to_review/mmsitepass.exp
@@ -0,0 +1 @@
+source "lib/completions/mmsitepass.exp"
diff --git a/test/completion_to_review/module.exp b/test/completion_to_review/module.exp
new file mode 100644
index 0000000..e610b5f
--- /dev/null
+++ b/test/completion_to_review/module.exp
@@ -0,0 +1 @@
+source "lib/completions/module.exp"
diff --git a/test/completion_to_review/mogrify.exp b/test/completion_to_review/mogrify.exp
new file mode 100644
index 0000000..8f26d90
--- /dev/null
+++ b/test/completion_to_review/mogrify.exp
@@ -0,0 +1 @@
+source "lib/completions/mogrify.exp"
diff --git a/test/completion_to_review/montage.exp b/test/completion_to_review/montage.exp
new file mode 100644
index 0000000..8a97569
--- /dev/null
+++ b/test/completion_to_review/montage.exp
@@ -0,0 +1 @@
+source "lib/completions/montage.exp"
diff --git a/test/completion_to_review/mplayer.exp b/test/completion_to_review/mplayer.exp
new file mode 100644
index 0000000..7697528
--- /dev/null
+++ b/test/completion_to_review/mplayer.exp
@@ -0,0 +1 @@
+source "lib/completions/mplayer.exp"
diff --git a/test/completion_to_review/msgsnarf.exp b/test/completion_to_review/msgsnarf.exp
new file mode 100644
index 0000000..f8056ea
--- /dev/null
+++ b/test/completion_to_review/msgsnarf.exp
@@ -0,0 +1 @@
+source "lib/completions/msgsnarf.exp"
diff --git a/test/completion_to_review/mtx.exp b/test/completion_to_review/mtx.exp
new file mode 100644
index 0000000..8dbf43f
--- /dev/null
+++ b/test/completion_to_review/mtx.exp
@@ -0,0 +1 @@
+source "lib/completions/mtx.exp"
diff --git a/test/completion_to_review/mutt.exp b/test/completion_to_review/mutt.exp
new file mode 100644
index 0000000..29a9a75
--- /dev/null
+++ b/test/completion_to_review/mutt.exp
@@ -0,0 +1 @@
+source "lib/completions/mutt.exp"
diff --git a/test/completion_to_review/muttng.exp b/test/completion_to_review/muttng.exp
new file mode 100644
index 0000000..d4e98ec
--- /dev/null
+++ b/test/completion_to_review/muttng.exp
@@ -0,0 +1 @@
+source "lib/completions/muttng.exp"
diff --git a/test/completion_to_review/mv.exp b/test/completion_to_review/mv.exp
new file mode 100644
index 0000000..735266d
--- /dev/null
+++ b/test/completion_to_review/mv.exp
@@ -0,0 +1 @@
+source "lib/completions/mv.exp"
diff --git a/test/completion_to_review/ncftp.exp b/test/completion_to_review/ncftp.exp
new file mode 100644
index 0000000..12c5e7d
--- /dev/null
+++ b/test/completion_to_review/ncftp.exp
@@ -0,0 +1 @@
+source "lib/completions/ncftp.exp"
diff --git a/test/completion_to_review/netstat.exp b/test/completion_to_review/netstat.exp
new file mode 100644
index 0000000..e9893b0
--- /dev/null
+++ b/test/completion_to_review/netstat.exp
@@ -0,0 +1 @@
+source "lib/completions/netstat.exp"
diff --git a/test/completion_to_review/newlist.exp b/test/completion_to_review/newlist.exp
new file mode 100644
index 0000000..80bee0c
--- /dev/null
+++ b/test/completion_to_review/newlist.exp
@@ -0,0 +1 @@
+source "lib/completions/newlist.exp"
diff --git a/test/completion_to_review/nl.exp b/test/completion_to_review/nl.exp
new file mode 100644
index 0000000..3d4eea2
--- /dev/null
+++ b/test/completion_to_review/nl.exp
@@ -0,0 +1 @@
+source "lib/completions/nl.exp"
diff --git a/test/completion_to_review/nm.exp b/test/completion_to_review/nm.exp
new file mode 100644
index 0000000..1238ac0
--- /dev/null
+++ b/test/completion_to_review/nm.exp
@@ -0,0 +1 @@
+source "lib/completions/nm.exp"
diff --git a/test/completion_to_review/ntpdate.exp b/test/completion_to_review/ntpdate.exp
new file mode 100644
index 0000000..c7f965e
--- /dev/null
+++ b/test/completion_to_review/ntpdate.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type ntpdate]} {
+    source "lib/completions/ntpdate.exp"
+}; # if
diff --git a/test/completion_to_review/objcopy.exp b/test/completion_to_review/objcopy.exp
new file mode 100644
index 0000000..ce7d043
--- /dev/null
+++ b/test/completion_to_review/objcopy.exp
@@ -0,0 +1 @@
+source "lib/completions/objcopy.exp"
diff --git a/test/completion_to_review/objdump.exp b/test/completion_to_review/objdump.exp
new file mode 100644
index 0000000..548b411
--- /dev/null
+++ b/test/completion_to_review/objdump.exp
@@ -0,0 +1 @@
+source "lib/completions/objdump.exp"
diff --git a/test/completion_to_review/od.exp b/test/completion_to_review/od.exp
new file mode 100644
index 0000000..51187ca
--- /dev/null
+++ b/test/completion_to_review/od.exp
@@ -0,0 +1 @@
+source "lib/completions/od.exp"
diff --git a/test/completion_to_review/p4.exp b/test/completion_to_review/p4.exp
new file mode 100644
index 0000000..7de48de
--- /dev/null
+++ b/test/completion_to_review/p4.exp
@@ -0,0 +1 @@
+source "lib/completions/p4.exp"
diff --git a/test/completion_to_review/paste.exp b/test/completion_to_review/paste.exp
new file mode 100644
index 0000000..017e25f
--- /dev/null
+++ b/test/completion_to_review/paste.exp
@@ -0,0 +1 @@
+source "lib/completions/paste.exp"
diff --git a/test/completion_to_review/patch.exp b/test/completion_to_review/patch.exp
new file mode 100644
index 0000000..69a4970
--- /dev/null
+++ b/test/completion_to_review/patch.exp
@@ -0,0 +1 @@
+source "lib/completions/patch.exp"
diff --git a/test/completion_to_review/perl.exp b/test/completion_to_review/perl.exp
new file mode 100644
index 0000000..a7817b3
--- /dev/null
+++ b/test/completion_to_review/perl.exp
@@ -0,0 +1 @@
+source "lib/completions/perl.exp"
diff --git a/test/completion_to_review/perldoc.exp b/test/completion_to_review/perldoc.exp
new file mode 100644
index 0000000..526e144
--- /dev/null
+++ b/test/completion_to_review/perldoc.exp
@@ -0,0 +1 @@
+source "lib/completions/perldoc.exp"
diff --git a/test/completion_to_review/pine.exp b/test/completion_to_review/pine.exp
new file mode 100644
index 0000000..414bd3a
--- /dev/null
+++ b/test/completion_to_review/pine.exp
@@ -0,0 +1 @@
+source "lib/completions/pine.exp"
diff --git a/test/completion_to_review/pkg-config.exp b/test/completion_to_review/pkg-config.exp
new file mode 100644
index 0000000..f563e84
--- /dev/null
+++ b/test/completion_to_review/pkg-config.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type pkg-config]} {
+    source "lib/completions/pkg-config.exp"
+}; # if
diff --git a/test/completion_to_review/pkg_deinstall.exp b/test/completion_to_review/pkg_deinstall.exp
new file mode 100644
index 0000000..bc721be
--- /dev/null
+++ b/test/completion_to_review/pkg_deinstall.exp
@@ -0,0 +1 @@
+source "lib/completions/pkg_deinstall.exp"
diff --git a/test/completion_to_review/pkg_delete.exp b/test/completion_to_review/pkg_delete.exp
new file mode 100644
index 0000000..e43d50e
--- /dev/null
+++ b/test/completion_to_review/pkg_delete.exp
@@ -0,0 +1 @@
+source "lib/completions/pkg_delete.exp"
diff --git a/test/completion_to_review/pkg_info.exp b/test/completion_to_review/pkg_info.exp
new file mode 100644
index 0000000..54cd1b7
--- /dev/null
+++ b/test/completion_to_review/pkg_info.exp
@@ -0,0 +1 @@
+source "lib/completions/pkg_info.exp"
diff --git a/test/completion_to_review/portinstall.exp b/test/completion_to_review/portinstall.exp
new file mode 100644
index 0000000..fd223e5
--- /dev/null
+++ b/test/completion_to_review/portinstall.exp
@@ -0,0 +1 @@
+source "lib/completions/portinstall.exp"
diff --git a/test/completion_to_review/portupgrade.exp b/test/completion_to_review/portupgrade.exp
new file mode 100644
index 0000000..22e50cf
--- /dev/null
+++ b/test/completion_to_review/portupgrade.exp
@@ -0,0 +1 @@
+source "lib/completions/portupgrade.exp"
diff --git a/test/completion_to_review/povray.exp b/test/completion_to_review/povray.exp
new file mode 100644
index 0000000..bf7688a
--- /dev/null
+++ b/test/completion_to_review/povray.exp
@@ -0,0 +1 @@
+source "lib/completions/povray.exp"
diff --git a/test/completion_to_review/pr.exp b/test/completion_to_review/pr.exp
new file mode 100644
index 0000000..3f08a61
--- /dev/null
+++ b/test/completion_to_review/pr.exp
@@ -0,0 +1 @@
+source "lib/completions/pr.exp"
diff --git a/test/completion_to_review/psql.exp b/test/completion_to_review/psql.exp
new file mode 100644
index 0000000..0fcc8c8
--- /dev/null
+++ b/test/completion_to_review/psql.exp
@@ -0,0 +1 @@
+source "lib/completions/psql.exp"
diff --git a/test/completion_to_review/ptx.exp b/test/completion_to_review/ptx.exp
new file mode 100644
index 0000000..000594f
--- /dev/null
+++ b/test/completion_to_review/ptx.exp
@@ -0,0 +1 @@
+source "lib/completions/ptx.exp"
diff --git a/test/completion_to_review/pvchange.exp b/test/completion_to_review/pvchange.exp
new file mode 100644
index 0000000..9c5a432
--- /dev/null
+++ b/test/completion_to_review/pvchange.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type pvchange]} {
+    source "lib/completions/pvchange.exp"
+}; # if
diff --git a/test/completion_to_review/pvcreate.exp b/test/completion_to_review/pvcreate.exp
new file mode 100644
index 0000000..7bad2f5
--- /dev/null
+++ b/test/completion_to_review/pvcreate.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type pvcreate]} {
+    source "lib/completions/pvcreate.exp"
+}; # if
diff --git a/test/completion_to_review/pvdisplay.exp b/test/completion_to_review/pvdisplay.exp
new file mode 100644
index 0000000..b3e7e69
--- /dev/null
+++ b/test/completion_to_review/pvdisplay.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type pvdisplay]} {
+    source "lib/completions/pvdisplay.exp"
+}; # if
diff --git a/test/completion_to_review/pvmove.exp b/test/completion_to_review/pvmove.exp
new file mode 100644
index 0000000..e702247
--- /dev/null
+++ b/test/completion_to_review/pvmove.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type pvmove]} {
+    source "lib/completions/pvmove.exp"
+}; # if
diff --git a/test/completion_to_review/pvremove.exp b/test/completion_to_review/pvremove.exp
new file mode 100644
index 0000000..cf753a2
--- /dev/null
+++ b/test/completion_to_review/pvremove.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type pvremove]} {
+    source "lib/completions/pvremove.exp"
+}; # if
diff --git a/test/completion_to_review/pvs.exp b/test/completion_to_review/pvs.exp
new file mode 100644
index 0000000..f676f50
--- /dev/null
+++ b/test/completion_to_review/pvs.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type pvs]} {
+    source "lib/completions/pvs.exp"
+}; # if
diff --git a/test/completion_to_review/pvscan.exp b/test/completion_to_review/pvscan.exp
new file mode 100644
index 0000000..45e90df
--- /dev/null
+++ b/test/completion_to_review/pvscan.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type pvscan]} {
+    source "lib/completions/pvscan.exp"
+}; # if
diff --git a/test/completion_to_review/python.exp b/test/completion_to_review/python.exp
new file mode 100644
index 0000000..18cee88
--- /dev/null
+++ b/test/completion_to_review/python.exp
@@ -0,0 +1 @@
+source "lib/completions/python.exp"
diff --git a/test/completion_to_review/qrunner.exp b/test/completion_to_review/qrunner.exp
new file mode 100644
index 0000000..2d43a26
--- /dev/null
+++ b/test/completion_to_review/qrunner.exp
@@ -0,0 +1 @@
+source "lib/completions/qrunner.exp"
diff --git a/test/completion_to_review/querybts.exp b/test/completion_to_review/querybts.exp
new file mode 100644
index 0000000..0b6dbf3
--- /dev/null
+++ b/test/completion_to_review/querybts.exp
@@ -0,0 +1 @@
+source "lib/completions/querybts.exp"
diff --git a/test/completion_to_review/rcs.exp b/test/completion_to_review/rcs.exp
new file mode 100644
index 0000000..ef1c871
--- /dev/null
+++ b/test/completion_to_review/rcs.exp
@@ -0,0 +1 @@
+source "lib/completions/rcs.exp"
diff --git a/test/completion_to_review/rcsdiff.exp b/test/completion_to_review/rcsdiff.exp
new file mode 100644
index 0000000..b87e20a
--- /dev/null
+++ b/test/completion_to_review/rcsdiff.exp
@@ -0,0 +1 @@
+source "lib/completions/rcsdiff.exp"
diff --git a/test/completion_to_review/rdict.exp b/test/completion_to_review/rdict.exp
new file mode 100644
index 0000000..5ce0143
--- /dev/null
+++ b/test/completion_to_review/rdict.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type rdict]} {
+    source "lib/completions/rdict.exp"
+}; # if
diff --git a/test/completion_to_review/readelf.exp b/test/completion_to_review/readelf.exp
new file mode 100644
index 0000000..0fadb9a
--- /dev/null
+++ b/test/completion_to_review/readelf.exp
@@ -0,0 +1 @@
+source "lib/completions/readelf.exp"
diff --git a/test/completion_to_review/readonly.exp b/test/completion_to_review/readonly.exp
new file mode 100644
index 0000000..0b3b9b7
--- /dev/null
+++ b/test/completion_to_review/readonly.exp
@@ -0,0 +1 @@
+source "lib/completions/readonly.exp"
diff --git a/test/completion_to_review/remove_members.exp b/test/completion_to_review/remove_members.exp
new file mode 100644
index 0000000..1c4a07e
--- /dev/null
+++ b/test/completion_to_review/remove_members.exp
@@ -0,0 +1 @@
+source "lib/completions/remove_members.exp"
diff --git a/test/completion_to_review/removepkg.exp b/test/completion_to_review/removepkg.exp
new file mode 100644
index 0000000..8102757
--- /dev/null
+++ b/test/completion_to_review/removepkg.exp
@@ -0,0 +1 @@
+source "lib/completions/removepkg.exp"
diff --git a/test/completion_to_review/renice.exp b/test/completion_to_review/renice.exp
new file mode 100644
index 0000000..4ec77a0
--- /dev/null
+++ b/test/completion_to_review/renice.exp
@@ -0,0 +1 @@
+source "lib/completions/renice.exp"
diff --git a/test/completion_to_review/reportbug.exp b/test/completion_to_review/reportbug.exp
new file mode 100644
index 0000000..aa27ee6
--- /dev/null
+++ b/test/completion_to_review/reportbug.exp
@@ -0,0 +1 @@
+source "lib/completions/reportbug.exp"
diff --git a/test/completion_to_review/ri.exp b/test/completion_to_review/ri.exp
new file mode 100644
index 0000000..696a43a
--- /dev/null
+++ b/test/completion_to_review/ri.exp
@@ -0,0 +1 @@
+source "lib/completions/ri.exp"
diff --git a/test/completion_to_review/rlog.exp b/test/completion_to_review/rlog.exp
new file mode 100644
index 0000000..dc2dea8
--- /dev/null
+++ b/test/completion_to_review/rlog.exp
@@ -0,0 +1 @@
+source "lib/completions/rlog.exp"
diff --git a/test/completion_to_review/rm.exp b/test/completion_to_review/rm.exp
new file mode 100644
index 0000000..ac2e09f
--- /dev/null
+++ b/test/completion_to_review/rm.exp
@@ -0,0 +1 @@
+source "lib/completions/rm.exp"
diff --git a/test/completion_to_review/rmdir.exp b/test/completion_to_review/rmdir.exp
new file mode 100644
index 0000000..a298faa
--- /dev/null
+++ b/test/completion_to_review/rmdir.exp
@@ -0,0 +1 @@
+source "lib/completions/rmdir.exp"
diff --git a/test/completion_to_review/rmlist.exp b/test/completion_to_review/rmlist.exp
new file mode 100644
index 0000000..05a9c2e
--- /dev/null
+++ b/test/completion_to_review/rmlist.exp
@@ -0,0 +1 @@
+source "lib/completions/rmlist.exp"
diff --git a/test/completion_to_review/rsync.exp b/test/completion_to_review/rsync.exp
new file mode 100644
index 0000000..1fc7cf5
--- /dev/null
+++ b/test/completion_to_review/rsync.exp
@@ -0,0 +1 @@
+source "lib/completions/rsync.exp"
diff --git a/test/completion_to_review/sbcl-mt.exp b/test/completion_to_review/sbcl-mt.exp
new file mode 100644
index 0000000..393ec0a
--- /dev/null
+++ b/test/completion_to_review/sbcl-mt.exp
@@ -0,0 +1 @@
+source "lib/completions/sbcl-mt.exp"
diff --git a/test/completion_to_review/sbcl.exp b/test/completion_to_review/sbcl.exp
new file mode 100644
index 0000000..d4f0697
--- /dev/null
+++ b/test/completion_to_review/sbcl.exp
@@ -0,0 +1 @@
+source "lib/completions/sbcl.exp"
diff --git a/test/completion_to_review/scp.exp b/test/completion_to_review/scp.exp
new file mode 100644
index 0000000..11d354c
--- /dev/null
+++ b/test/completion_to_review/scp.exp
@@ -0,0 +1 @@
+source "lib/completions/scp.exp"
diff --git a/test/completion_to_review/screen.exp b/test/completion_to_review/screen.exp
new file mode 100644
index 0000000..dd8f6a1
--- /dev/null
+++ b/test/completion_to_review/screen.exp
@@ -0,0 +1 @@
+source "lib/completions/screen.exp"
diff --git a/test/completion_to_review/sed.exp b/test/completion_to_review/sed.exp
new file mode 100644
index 0000000..e67e44e
--- /dev/null
+++ b/test/completion_to_review/sed.exp
@@ -0,0 +1 @@
+source "lib/completions/sed.exp"
diff --git a/test/completion_to_review/seq.exp b/test/completion_to_review/seq.exp
new file mode 100644
index 0000000..adcfca9
--- /dev/null
+++ b/test/completion_to_review/seq.exp
@@ -0,0 +1 @@
+source "lib/completions/seq.exp"
diff --git a/test/completion_to_review/service.exp b/test/completion_to_review/service.exp
new file mode 100644
index 0000000..46156ac
--- /dev/null
+++ b/test/completion_to_review/service.exp
@@ -0,0 +1 @@
+source "lib/completions/service.exp"
diff --git a/test/completion_to_review/set.exp b/test/completion_to_review/set.exp
new file mode 100644
index 0000000..5a1b1d0
--- /dev/null
+++ b/test/completion_to_review/set.exp
@@ -0,0 +1 @@
+source "lib/completions/set.exp"
diff --git a/test/completion_to_review/sha1sum.exp b/test/completion_to_review/sha1sum.exp
new file mode 100644
index 0000000..9250b0b
--- /dev/null
+++ b/test/completion_to_review/sha1sum.exp
@@ -0,0 +1 @@
+source "lib/completions/sha1sum.exp"
diff --git a/test/completion_to_review/shar.exp b/test/completion_to_review/shar.exp
new file mode 100644
index 0000000..693fef9
--- /dev/null
+++ b/test/completion_to_review/shar.exp
@@ -0,0 +1 @@
+source "lib/completions/shar.exp"
diff --git a/test/completion_to_review/sitecopy.exp b/test/completion_to_review/sitecopy.exp
new file mode 100644
index 0000000..e923dda
--- /dev/null
+++ b/test/completion_to_review/sitecopy.exp
@@ -0,0 +1 @@
+source "lib/completions/sitecopy.exp"
diff --git a/test/completion_to_review/smartctl.exp b/test/completion_to_review/smartctl.exp
new file mode 100644
index 0000000..faae2bc
--- /dev/null
+++ b/test/completion_to_review/smartctl.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type smartctl]} {
+    source "lib/completions/smartctl.exp"
+}; # if
diff --git a/test/completion_to_review/snownews.exp b/test/completion_to_review/snownews.exp
new file mode 100644
index 0000000..a12bdfc
--- /dev/null
+++ b/test/completion_to_review/snownews.exp
@@ -0,0 +1 @@
+source "lib/completions/snownews.exp"
diff --git a/test/completion_to_review/sort.exp b/test/completion_to_review/sort.exp
new file mode 100644
index 0000000..02e9bdd
--- /dev/null
+++ b/test/completion_to_review/sort.exp
@@ -0,0 +1 @@
+source "lib/completions/sort.exp"
diff --git a/test/completion_to_review/split.exp b/test/completion_to_review/split.exp
new file mode 100644
index 0000000..99e0909
--- /dev/null
+++ b/test/completion_to_review/split.exp
@@ -0,0 +1 @@
+source "lib/completions/split.exp"
diff --git a/test/completion_to_review/spovray.exp b/test/completion_to_review/spovray.exp
new file mode 100644
index 0000000..78e3fd9
--- /dev/null
+++ b/test/completion_to_review/spovray.exp
@@ -0,0 +1 @@
+source "lib/completions/spovray.exp"
diff --git a/test/completion_to_review/ssh.exp b/test/completion_to_review/ssh.exp
new file mode 100644
index 0000000..f38857d
--- /dev/null
+++ b/test/completion_to_review/ssh.exp
@@ -0,0 +1 @@
+source "lib/completions/ssh.exp"
diff --git a/test/completion_to_review/sshmitm.exp b/test/completion_to_review/sshmitm.exp
new file mode 100644
index 0000000..985dbea
--- /dev/null
+++ b/test/completion_to_review/sshmitm.exp
@@ -0,0 +1 @@
+source "lib/completions/sshmitm.exp"
diff --git a/test/completion_to_review/sshow.exp b/test/completion_to_review/sshow.exp
new file mode 100644
index 0000000..6c33d65
--- /dev/null
+++ b/test/completion_to_review/sshow.exp
@@ -0,0 +1 @@
+source "lib/completions/sshow.exp"
diff --git a/test/completion_to_review/strip.exp b/test/completion_to_review/strip.exp
new file mode 100644
index 0000000..29ec81f
--- /dev/null
+++ b/test/completion_to_review/strip.exp
@@ -0,0 +1 @@
+source "lib/completions/strip.exp"
diff --git a/test/completion_to_review/sudo.exp b/test/completion_to_review/sudo.exp
new file mode 100644
index 0000000..0d1d19e
--- /dev/null
+++ b/test/completion_to_review/sudo.exp
@@ -0,0 +1 @@
+source "lib/completions/sudo.exp"
diff --git a/test/completion_to_review/svk.exp b/test/completion_to_review/svk.exp
new file mode 100644
index 0000000..70b0b1b
--- /dev/null
+++ b/test/completion_to_review/svk.exp
@@ -0,0 +1 @@
+source "lib/completions/svk.exp"
diff --git a/test/completion_to_review/svn.exp b/test/completion_to_review/svn.exp
new file mode 100644
index 0000000..4252349
--- /dev/null
+++ b/test/completion_to_review/svn.exp
@@ -0,0 +1 @@
+source "lib/completions/svn.exp"
diff --git a/test/completion_to_review/svnadmin.exp b/test/completion_to_review/svnadmin.exp
new file mode 100644
index 0000000..a879092
--- /dev/null
+++ b/test/completion_to_review/svnadmin.exp
@@ -0,0 +1 @@
+source "lib/completions/svnadmin.exp"
diff --git a/test/completion_to_review/svnlook.exp b/test/completion_to_review/svnlook.exp
new file mode 100644
index 0000000..c866811
--- /dev/null
+++ b/test/completion_to_review/svnlook.exp
@@ -0,0 +1 @@
+source "lib/completions/svnlook.exp"
diff --git a/test/completion_to_review/sync_members.exp b/test/completion_to_review/sync_members.exp
new file mode 100644
index 0000000..30e49fe
--- /dev/null
+++ b/test/completion_to_review/sync_members.exp
@@ -0,0 +1 @@
+source "lib/completions/sync_members.exp"
diff --git a/test/completion_to_review/sysctl.exp b/test/completion_to_review/sysctl.exp
new file mode 100644
index 0000000..c1b361a
--- /dev/null
+++ b/test/completion_to_review/sysctl.exp
@@ -0,0 +1 @@
+source "lib/completions/sysctl.exp"
diff --git a/test/completion_to_review/tac.exp b/test/completion_to_review/tac.exp
new file mode 100644
index 0000000..bf9a032
--- /dev/null
+++ b/test/completion_to_review/tac.exp
@@ -0,0 +1 @@
+source "lib/completions/tac.exp"
diff --git a/test/completion_to_review/tail.exp b/test/completion_to_review/tail.exp
new file mode 100644
index 0000000..c499aa4
--- /dev/null
+++ b/test/completion_to_review/tail.exp
@@ -0,0 +1 @@
+source "lib/completions/tail.exp"
diff --git a/test/completion_to_review/tar.exp b/test/completion_to_review/tar.exp
new file mode 100644
index 0000000..26dcf88
--- /dev/null
+++ b/test/completion_to_review/tar.exp
@@ -0,0 +1 @@
+source "lib/completions/tar.exp"
diff --git a/test/completion_to_review/tcpkill.exp b/test/completion_to_review/tcpkill.exp
new file mode 100644
index 0000000..df96e69
--- /dev/null
+++ b/test/completion_to_review/tcpkill.exp
@@ -0,0 +1 @@
+source "lib/completions/tcpkill.exp"
diff --git a/test/completion_to_review/tcpnice.exp b/test/completion_to_review/tcpnice.exp
new file mode 100644
index 0000000..fb39315
--- /dev/null
+++ b/test/completion_to_review/tcpnice.exp
@@ -0,0 +1 @@
+source "lib/completions/tcpnice.exp"
diff --git a/test/completion_to_review/tee.exp b/test/completion_to_review/tee.exp
new file mode 100644
index 0000000..ef30ea8
--- /dev/null
+++ b/test/completion_to_review/tee.exp
@@ -0,0 +1 @@
+source "lib/completions/tee.exp"
diff --git a/test/completion_to_review/texindex.exp b/test/completion_to_review/texindex.exp
new file mode 100644
index 0000000..5437532
--- /dev/null
+++ b/test/completion_to_review/texindex.exp
@@ -0,0 +1 @@
+source "lib/completions/texindex.exp"
diff --git a/test/completion_to_review/tightvncviewer.exp b/test/completion_to_review/tightvncviewer.exp
new file mode 100644
index 0000000..a592f36
--- /dev/null
+++ b/test/completion_to_review/tightvncviewer.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type {tightvncviewer}]} {
+    source "lib/completions/tightvncviewer.exp"
+}; # if
diff --git a/test/completion_to_review/time.exp b/test/completion_to_review/time.exp
new file mode 100644
index 0000000..3fb7e15
--- /dev/null
+++ b/test/completion_to_review/time.exp
@@ -0,0 +1 @@
+source "lib/completions/time.exp"
diff --git a/test/completion_to_review/touch.exp b/test/completion_to_review/touch.exp
new file mode 100644
index 0000000..d8f368d
--- /dev/null
+++ b/test/completion_to_review/touch.exp
@@ -0,0 +1 @@
+source "lib/completions/touch.exp"
diff --git a/test/completion_to_review/tr.exp b/test/completion_to_review/tr.exp
new file mode 100644
index 0000000..cb3fba4
--- /dev/null
+++ b/test/completion_to_review/tr.exp
@@ -0,0 +1 @@
+source "lib/completions/tr.exp"
diff --git a/test/completion_to_review/unace.exp b/test/completion_to_review/unace.exp
new file mode 100644
index 0000000..ec60414
--- /dev/null
+++ b/test/completion_to_review/unace.exp
@@ -0,0 +1 @@
+source "lib/completions/unace.exp"
diff --git a/test/completion_to_review/uname.exp b/test/completion_to_review/uname.exp
new file mode 100644
index 0000000..63baea5
--- /dev/null
+++ b/test/completion_to_review/uname.exp
@@ -0,0 +1 @@
+source "lib/completions/uname.exp"
diff --git a/test/completion_to_review/unexpand.exp b/test/completion_to_review/unexpand.exp
new file mode 100644
index 0000000..0ffe241
--- /dev/null
+++ b/test/completion_to_review/unexpand.exp
@@ -0,0 +1 @@
+source "lib/completions/unexpand.exp"
diff --git a/test/completion_to_review/uniq.exp b/test/completion_to_review/uniq.exp
new file mode 100644
index 0000000..e545c63
--- /dev/null
+++ b/test/completion_to_review/uniq.exp
@@ -0,0 +1 @@
+source "lib/completions/uniq.exp"
diff --git a/test/completion_to_review/units.exp b/test/completion_to_review/units.exp
new file mode 100644
index 0000000..06df208
--- /dev/null
+++ b/test/completion_to_review/units.exp
@@ -0,0 +1 @@
+source "lib/completions/units.exp"
diff --git a/test/completion_to_review/unrar.exp b/test/completion_to_review/unrar.exp
new file mode 100644
index 0000000..544fb18
--- /dev/null
+++ b/test/completion_to_review/unrar.exp
@@ -0,0 +1 @@
+source "lib/completions/unrar.exp"
diff --git a/test/completion_to_review/unset.exp b/test/completion_to_review/unset.exp
new file mode 100644
index 0000000..3e90e46
--- /dev/null
+++ b/test/completion_to_review/unset.exp
@@ -0,0 +1 @@
+source "lib/completions/unset.exp"
diff --git a/test/completion_to_review/unshunt.exp b/test/completion_to_review/unshunt.exp
new file mode 100644
index 0000000..e419425
--- /dev/null
+++ b/test/completion_to_review/unshunt.exp
@@ -0,0 +1 @@
+source "lib/completions/unshunt.exp"
diff --git a/test/completion_to_review/update-alternatives.exp b/test/completion_to_review/update-alternatives.exp
new file mode 100644
index 0000000..9237b8a
--- /dev/null
+++ b/test/completion_to_review/update-alternatives.exp
@@ -0,0 +1 @@
+source "lib/completions/update-alternatives.exp"
diff --git a/test/completion_to_review/update-rc.d.exp b/test/completion_to_review/update-rc.d.exp
new file mode 100644
index 0000000..5f4ec91
--- /dev/null
+++ b/test/completion_to_review/update-rc.d.exp
@@ -0,0 +1 @@
+source "lib/completions/update-rc.d.exp"
diff --git a/test/completion_to_review/urlsnarf.exp b/test/completion_to_review/urlsnarf.exp
new file mode 100644
index 0000000..6810859
--- /dev/null
+++ b/test/completion_to_review/urlsnarf.exp
@@ -0,0 +1 @@
+source "lib/completions/urlsnarf.exp"
diff --git a/test/completion_to_review/vdir.exp b/test/completion_to_review/vdir.exp
new file mode 100644
index 0000000..4941371
--- /dev/null
+++ b/test/completion_to_review/vdir.exp
@@ -0,0 +1 @@
+source "lib/completions/vdir.exp"
diff --git a/test/completion_to_review/vgcfgbackup.exp b/test/completion_to_review/vgcfgbackup.exp
new file mode 100644
index 0000000..dbefa72
--- /dev/null
+++ b/test/completion_to_review/vgcfgbackup.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type vgcfgbackup]} {
+    source "lib/completions/vgcfgbackup.exp"
+}; # if
diff --git a/test/completion_to_review/vgcfgrestore.exp b/test/completion_to_review/vgcfgrestore.exp
new file mode 100644
index 0000000..2599aa6
--- /dev/null
+++ b/test/completion_to_review/vgcfgrestore.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type vgcfgrestore]} {
+    source "lib/completions/vgcfgrestore.exp"
+}; # if
diff --git a/test/completion_to_review/vgchange.exp b/test/completion_to_review/vgchange.exp
new file mode 100644
index 0000000..2af6bbc
--- /dev/null
+++ b/test/completion_to_review/vgchange.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type vgchange]} {
+    source "lib/completions/vgchange.exp"
+}; # if
diff --git a/test/completion_to_review/vgck.exp b/test/completion_to_review/vgck.exp
new file mode 100644
index 0000000..6136af3
--- /dev/null
+++ b/test/completion_to_review/vgck.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type vgck]} {
+    source "lib/completions/vgck.exp"
+}; # if
diff --git a/test/completion_to_review/vgconvert.exp b/test/completion_to_review/vgconvert.exp
new file mode 100644
index 0000000..d37ff03
--- /dev/null
+++ b/test/completion_to_review/vgconvert.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type vgconvert]} {
+    source "lib/completions/vgconvert.exp"
+}; # if
diff --git a/test/completion_to_review/vgcreate.exp b/test/completion_to_review/vgcreate.exp
new file mode 100644
index 0000000..0ff16d5
--- /dev/null
+++ b/test/completion_to_review/vgcreate.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type vgcreate]} {
+    source "lib/completions/vgcreate.exp"
+}; # if
diff --git a/test/completion_to_review/vgdisplay.exp b/test/completion_to_review/vgdisplay.exp
new file mode 100644
index 0000000..e1f568a
--- /dev/null
+++ b/test/completion_to_review/vgdisplay.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type vgdisplay]} {
+    source "lib/completions/vgdisplay.exp"
+}; # if
diff --git a/test/completion_to_review/vgexport.exp b/test/completion_to_review/vgexport.exp
new file mode 100644
index 0000000..419ee2d
--- /dev/null
+++ b/test/completion_to_review/vgexport.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type vgexport]} {
+    source "lib/completions/vgexport.exp"
+}; # if
diff --git a/test/completion_to_review/vgextend.exp b/test/completion_to_review/vgextend.exp
new file mode 100644
index 0000000..bf00989
--- /dev/null
+++ b/test/completion_to_review/vgextend.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type vgextend]} {
+    source "lib/completions/vgextend.exp"
+}; # if
diff --git a/test/completion_to_review/vgimport.exp b/test/completion_to_review/vgimport.exp
new file mode 100644
index 0000000..596abc7
--- /dev/null
+++ b/test/completion_to_review/vgimport.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type vgimport]} {
+    source "lib/completions/vgimport.exp"
+}; # if
diff --git a/test/completion_to_review/vgmerge.exp b/test/completion_to_review/vgmerge.exp
new file mode 100644
index 0000000..ff2f010
--- /dev/null
+++ b/test/completion_to_review/vgmerge.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type vgmerge]} {
+    source "lib/completions/vgmerge.exp"
+}; # if
diff --git a/test/completion_to_review/vgmknodes.exp b/test/completion_to_review/vgmknodes.exp
new file mode 100644
index 0000000..12546a8
--- /dev/null
+++ b/test/completion_to_review/vgmknodes.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type vgmknodes]} {
+    source "lib/completions/vgmknodes.exp"
+}; # if
diff --git a/test/completion_to_review/vgreduce.exp b/test/completion_to_review/vgreduce.exp
new file mode 100644
index 0000000..91d7074
--- /dev/null
+++ b/test/completion_to_review/vgreduce.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type vgreduce]} {
+    source "lib/completions/vgreduce.exp"
+}; # if
diff --git a/test/completion_to_review/vgremove.exp b/test/completion_to_review/vgremove.exp
new file mode 100644
index 0000000..9b292bc
--- /dev/null
+++ b/test/completion_to_review/vgremove.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type vgremove]} {
+    source "lib/completions/vgremove.exp"
+}; # if
diff --git a/test/completion_to_review/vgrename.exp b/test/completion_to_review/vgrename.exp
new file mode 100644
index 0000000..a1f0c34
--- /dev/null
+++ b/test/completion_to_review/vgrename.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type vgrename]} {
+    source "lib/completions/vgrename.exp"
+}; # if
diff --git a/test/completion_to_review/vgs.exp b/test/completion_to_review/vgs.exp
new file mode 100644
index 0000000..f1becb3
--- /dev/null
+++ b/test/completion_to_review/vgs.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type vgs]} {
+    source "lib/completions/vgs.exp"
+}; # if
diff --git a/test/completion_to_review/vgscan.exp b/test/completion_to_review/vgscan.exp
new file mode 100644
index 0000000..f9a2fe1
--- /dev/null
+++ b/test/completion_to_review/vgscan.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type vgscan]} {
+    source "lib/completions/vgscan.exp"
+}; # if
diff --git a/test/completion_to_review/vgsplit.exp b/test/completion_to_review/vgsplit.exp
new file mode 100644
index 0000000..807cb1b
--- /dev/null
+++ b/test/completion_to_review/vgsplit.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type vgsplit]} {
+    source "lib/completions/vgsplit.exp"
+}; # if
diff --git a/test/completion_to_review/vncviewer.exp b/test/completion_to_review/vncviewer.exp
new file mode 100644
index 0000000..1703278
--- /dev/null
+++ b/test/completion_to_review/vncviewer.exp
@@ -0,0 +1 @@
+source "lib/completions/vncviewer.exp"
diff --git a/test/completion_to_review/wc.exp b/test/completion_to_review/wc.exp
new file mode 100644
index 0000000..78221d6
--- /dev/null
+++ b/test/completion_to_review/wc.exp
@@ -0,0 +1 @@
+source "lib/completions/wc.exp"
diff --git a/test/completion_to_review/webmitm.exp b/test/completion_to_review/webmitm.exp
new file mode 100644
index 0000000..2a991c7
--- /dev/null
+++ b/test/completion_to_review/webmitm.exp
@@ -0,0 +1 @@
+source "lib/completions/webmitm.exp"
diff --git a/test/completion_to_review/wget.exp b/test/completion_to_review/wget.exp
new file mode 100644
index 0000000..b2485d8
--- /dev/null
+++ b/test/completion_to_review/wget.exp
@@ -0,0 +1 @@
+source "lib/completions/wget.exp"
diff --git a/test/completion_to_review/who.exp b/test/completion_to_review/who.exp
new file mode 100644
index 0000000..3e9986f
--- /dev/null
+++ b/test/completion_to_review/who.exp
@@ -0,0 +1 @@
+source "lib/completions/who.exp"
diff --git a/test/completion_to_review/withlist.exp b/test/completion_to_review/withlist.exp
new file mode 100644
index 0000000..bfd3aa2
--- /dev/null
+++ b/test/completion_to_review/withlist.exp
@@ -0,0 +1 @@
+source "lib/completions/withlist.exp"
diff --git a/test/completion_to_review/wvdial.exp b/test/completion_to_review/wvdial.exp
new file mode 100644
index 0000000..04e64d0
--- /dev/null
+++ b/test/completion_to_review/wvdial.exp
@@ -0,0 +1 @@
+source "lib/completions/wvdial.exp"
diff --git a/test/completion_to_review/xmms.exp b/test/completion_to_review/xmms.exp
new file mode 100644
index 0000000..6dc6f92
--- /dev/null
+++ b/test/completion_to_review/xmms.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type xmms]} {
+    source "lib/completions/xmms.exp"
+}; # if
diff --git a/test/completion_to_review/xpovray.exp b/test/completion_to_review/xpovray.exp
new file mode 100644
index 0000000..e6b9a2b
--- /dev/null
+++ b/test/completion_to_review/xpovray.exp
@@ -0,0 +1 @@
+source "lib/completions/xpovray.exp"
diff --git a/test/completion_to_review/xvnc4viewer.exp b/test/completion_to_review/xvnc4viewer.exp
new file mode 100644
index 0000000..feca1c5
--- /dev/null
+++ b/test/completion_to_review/xvnc4viewer.exp
@@ -0,0 +1,3 @@
+if {[assert_bash_type xvnc4viewer]} {
+    source "lib/completions/xvnc4viewer.exp"
+}; # if
diff --git a/test/completion_to_review/ypcat.exp b/test/completion_to_review/ypcat.exp
new file mode 100644
index 0000000..fdb9f50
--- /dev/null
+++ b/test/completion_to_review/ypcat.exp
@@ -0,0 +1 @@
+source "lib/completions/ypcat.exp"
diff --git a/test/completion_to_review/ypmatch.exp b/test/completion_to_review/ypmatch.exp
new file mode 100644
index 0000000..dac077b
--- /dev/null
+++ b/test/completion_to_review/ypmatch.exp
@@ -0,0 +1 @@
+source "lib/completions/ypmatch.exp"
diff --git a/test/completion_to_review/yum-arch.exp b/test/completion_to_review/yum-arch.exp
new file mode 100644
index 0000000..b0489a4
--- /dev/null
+++ b/test/completion_to_review/yum-arch.exp
@@ -0,0 +1 @@
+source "lib/completions/yum-arch.exp"
diff --git a/test/completion_to_review/yum.exp b/test/completion_to_review/yum.exp
new file mode 100644
index 0000000..8b9a3ee
--- /dev/null
+++ b/test/completion_to_review/yum.exp
@@ -0,0 +1 @@
+source "lib/completions/yum.exp"
diff --git a/test/lib/completions_to_review/a2ps.exp b/test/lib/completions_to_review/a2ps.exp
new file mode 100644
index 0000000..42010c4
--- /dev/null
+++ b/test/lib/completions_to_review/a2ps.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "a2ps "
+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/acroread.exp b/test/lib/completions_to_review/acroread.exp
new file mode 100644
index 0000000..4c416aa
--- /dev/null
+++ b/test/lib/completions_to_review/acroread.exp
@@ -0,0 +1,35 @@
+proc setup {} {
+    set test setup
+    set cmd "touch fixture1/t.pdf";  # Create temporary files
+    send "$cmd\r"
+    expect -ex "$cmd\r\n/@"
+}; # setup()
+
+
+proc teardown {} {
+    set test teardown
+    set cmd "rm fixture1/t.pdf";  # Remove temporary files
+    send "$cmd\r"
+    expect -ex "$cmd\r\n/@"
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete acroread"
+    # Try completion
+set cmd "acroread fixture1/"
+send "$cmd\t"
+expect {
+    -re "^${cmd}\r\n(\.svn/ +|)bar bar.d/ +foo.d/ +(\.svn/ +|)t.pdf *\r\n/@$cmd$"  { pass "$test" }
+    -re /@ { unresolved "$test at prompt" }
+    default { unresolved "$test" }
+}; # expect
+
+
+sleep .5
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions_to_review/add_members.exp b/test/lib/completions_to_review/add_members.exp
new file mode 100644
index 0000000..205f8b0
--- /dev/null
+++ b/test/lib/completions_to_review/add_members.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "add_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/alias.exp b/test/lib/completions_to_review/alias.exp
new file mode 100644
index 0000000..63cacba
--- /dev/null
+++ b/test/lib/completions_to_review/alias.exp
@@ -0,0 +1,57 @@
+proc setup {} {
+    set test setup
+    set cmd "unalias -a";  # Remove all aliases
+    send "$cmd\r"
+    expect -ex "$cmd\r\n/@"
+    set cmd "alias foo=bar"
+    send "$cmd\r"
+    expect -ex "$cmd\r\n/@"
+    set cmd "alias bar='foo foo'"
+    send "$cmd\r"
+    expect -ex "$cmd\r\n/@"
+}; # setup()
+
+
+proc teardown {} {
+    set test teardown
+    set cmd "unalias -a";  # Remove all aliases
+    send "$cmd\r"
+    expect -ex "$cmd\r\n/@"
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete alias"
+    # Try completion
+set cmd "alias "
+send "$cmd\t"
+set expected "^$cmd\r\nbar +foo *\r\n/@$cmd$"
+expect {
+    -re $expected  { pass "$test" }
+    -re /@ { unresolved "$test at prompt" }
+    default { unresolved "$test" }
+}; # expect
+
+
+sync_after_int
+
+
+set test "Tab should complete alias at cursor position"
+    # Try completion
+set cmd "alias foo"
+append cmd \002\002\002; # \002 = ^B = Move cursor left in bash emacs mode
+send "$cmd\t"
+expect {
+    -re "^alias foo\b\b\b\r\nbar +foo *\r\n/@alias foo\b\b\b$" { pass "$test" }
+    -re "^alias foo\b\b\bfoo=foo\b\b\b$" { fail "$test: Wrong cursor position" }
+    -re /@ { unresolved "$test" }
+    default { unresolved "$test" }
+}; # expect
+
+
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions_to_review/animate.exp b/test/lib/completions_to_review/animate.exp
new file mode 100644
index 0000000..63940ca
--- /dev/null
+++ b/test/lib/completions_to_review/animate.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "animate "
+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/ant.exp b/test/lib/completions_to_review/ant.exp
new file mode 100644
index 0000000..6e2b3a2
--- /dev/null
+++ b/test/lib/completions_to_review/ant.exp
@@ -0,0 +1,34 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+if {[assert_bash_type ant]} {
+
+
+    setup
+
+
+    set test "Tab should complete"
+	# Try completion
+    set cmd "ant -"
+    send "$cmd\t"
+    expect {
+	-re "^$cmd\r\n.*\r\n/@$cmd$" { pass "$test" }
+	-re /@ { unresolved "$test at prompt" }
+	-re eof { unresolved "eof" }
+    }; # expect
+
+
+    sync_after_int
+
+
+    teardown
+
+
+}; # if
+
+
diff --git a/test/lib/completions_to_review/apt-build.exp b/test/lib/completions_to_review/apt-build.exp
new file mode 100644
index 0000000..829ae0a
--- /dev/null
+++ b/test/lib/completions_to_review/apt-build.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "apt-build "
+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/apt-cache.exp b/test/lib/completions_to_review/apt-cache.exp
new file mode 100644
index 0000000..2021edc
--- /dev/null
+++ b/test/lib/completions_to_review/apt-cache.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "apt-cache "
+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/apt-get.exp b/test/lib/completions_to_review/apt-get.exp
new file mode 100644
index 0000000..0ecc320
--- /dev/null
+++ b/test/lib/completions_to_review/apt-get.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "apt-get "
+send "$cmd\t"
+expect {
+    -re	"$cmd\r\nautoclean\\s+autoremove\\s+build-dep\\s+check\\s+clean\\s+dist-upgrade\\s+dselect-upgrade\\s+install/\r\npurge\\s+remove\\s+source\\s+update\\s+upgrade\\s*\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/aptitude.exp b/test/lib/completions_to_review/aptitude.exp
new file mode 100644
index 0000000..9f2f268
--- /dev/null
+++ b/test/lib/completions_to_review/aptitude.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "aptitude "
+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/arch.exp b/test/lib/completions_to_review/arch.exp
new file mode 100644
index 0000000..d82fd26
--- /dev/null
+++ b/test/lib/completions_to_review/arch.exp
@@ -0,0 +1,31 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "arch -"
+send "$cmd\t"
+expect {
+    -re "^$cmd\r\n.*$cmd$" { pass "$test" }
+    -re /@ { unresolved "$test at prompt" }
+    -re eof { unresolved "eof" }
+}; # expect
+
+
+# Interrupt command
+
+set test "Sync after INT"
+sleep 0.01
+send \031\003;  # Control-c
+expect -ex /@
+
+
+teardown
diff --git a/test/lib/completions_to_review/arpspoof.exp b/test/lib/completions_to_review/arpspoof.exp
new file mode 100644
index 0000000..20d372c
--- /dev/null
+++ b/test/lib/completions_to_review/arpspoof.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "arpspoof -"
+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/aspell.exp b/test/lib/completions_to_review/aspell.exp
new file mode 100644
index 0000000..85f5d7f
--- /dev/null
+++ b/test/lib/completions_to_review/aspell.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "aspell "
+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/autoconf.exp b/test/lib/completions_to_review/autoconf.exp
new file mode 100644
index 0000000..fd0d818
--- /dev/null
+++ b/test/lib/completions_to_review/autoconf.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "autoconf "
+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/automake.exp b/test/lib/completions_to_review/automake.exp
new file mode 100644
index 0000000..fa8b805
--- /dev/null
+++ b/test/lib/completions_to_review/automake.exp
@@ -0,0 +1,31 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "automake "
+send "$cmd\t"
+expect {
+    -re "^$cmd\r\n.*$cmd$" { pass "$test" }
+    -re /@ { unresolved "$test at prompt" }
+    -re eof { unresolved "eof" }
+}; # expect
+
+
+# Interrupt command
+
+set test "Sync after INT"
+sleep .1
+send \031\003;  # QUIT/INT
+expect -ex /@
+
+
+teardown
diff --git a/test/lib/completions_to_review/awk.exp b/test/lib/completions_to_review/awk.exp
new file mode 100644
index 0000000..98f25a9
--- /dev/null
+++ b/test/lib/completions_to_review/awk.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "awk "
+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/bash.exp b/test/lib/completions_to_review/bash.exp
new file mode 100644
index 0000000..948989d
--- /dev/null
+++ b/test/lib/completions_to_review/bash.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "bash --"
+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/bc.exp b/test/lib/completions_to_review/bc.exp
new file mode 100644
index 0000000..9df3978
--- /dev/null
+++ b/test/lib/completions_to_review/bc.exp
@@ -0,0 +1,30 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "bc --"
+send "$cmd\t"
+  # NOTE: Wait in case `bc' isn't installed, so that "^$cdm$" doesn't match
+  #       before comp_install has finished
+sleep .5
+expect {
+    -re "^$cmd\r\n.*$cmd$" { pass "$test" }
+    -re "^$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/bison.exp b/test/lib/completions_to_review/bison.exp
new file mode 100644
index 0000000..ecb51ea
--- /dev/null
+++ b/test/lib/completions_to_review/bison.exp
@@ -0,0 +1,27 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "bison --"
+send "$cmd\t"
+expect {
+    -re "^$cmd.*$" { pass "$test" }
+    -re /@ { unresolved "$test at prompt" }
+    -re eof { unresolved "eof" }
+}; # expect
+
+
+sleep .5
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions_to_review/bk.exp b/test/lib/completions_to_review/bk.exp
new file mode 100644
index 0000000..0203587
--- /dev/null
+++ b/test/lib/completions_to_review/bk.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "bk "
+send "$cmd\t"
+expect {
+    -re "^${cmd}(bash: bk: command not found|)\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/btdownloadcurses.py.exp b/test/lib/completions_to_review/btdownloadcurses.py.exp
new file mode 100644
index 0000000..8a4acd1
--- /dev/null
+++ b/test/lib/completions_to_review/btdownloadcurses.py.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "btdownloadcurses.py "
+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/btdownloadgui.py.exp b/test/lib/completions_to_review/btdownloadgui.py.exp
new file mode 100644
index 0000000..d181e53
--- /dev/null
+++ b/test/lib/completions_to_review/btdownloadgui.py.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "btdownloadgui.py "
+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/btdownloadheadless.py.exp b/test/lib/completions_to_review/btdownloadheadless.py.exp
new file mode 100644
index 0000000..a76ad5a
--- /dev/null
+++ b/test/lib/completions_to_review/btdownloadheadless.py.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "btdownloadheadless.py "
+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/bzip2.exp b/test/lib/completions_to_review/bzip2.exp
new file mode 100644
index 0000000..794108b
--- /dev/null
+++ b/test/lib/completions_to_review/bzip2.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "bzip2 "
+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/c++.exp b/test/lib/completions_to_review/c++.exp
new file mode 100644
index 0000000..c8a2449
--- /dev/null
+++ b/test/lib/completions_to_review/c++.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "c++ "
+send "$cmd\t"
+expect {
+    -re "^c\\+\\+ \r\n.*c\\+\\+ $" { pass "$test" }
+    -re /@ { unresolved "$test at prompt" }
+    -re eof { unresolved "eof" }
+}; # expect
+
+
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions_to_review/cancel.exp b/test/lib/completions_to_review/cancel.exp
new file mode 100644
index 0000000..c860026
--- /dev/null
+++ b/test/lib/completions_to_review/cancel.exp
@@ -0,0 +1,27 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "cancel "
+send "$cmd\t"
+expect {
+    -re "^${cmd}(bash: lpstat: command not found\r\n)*$" { pass "$test" }
+    -re /@ { unresolved "$test at prompt" }
+    -re eof { unresolved "eof" }
+}; # expect
+
+
+sleep .4
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions_to_review/cardctl.exp b/test/lib/completions_to_review/cardctl.exp
new file mode 100644
index 0000000..acf2822
--- /dev/null
+++ b/test/lib/completions_to_review/cardctl.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "cardctl "
+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/cat.exp b/test/lib/completions_to_review/cat.exp
new file mode 100644
index 0000000..5f8a953
--- /dev/null
+++ b/test/lib/completions_to_review/cat.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "cat "
+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/cc.exp b/test/lib/completions_to_review/cc.exp
new file mode 100644
index 0000000..22ac01e
--- /dev/null
+++ b/test/lib/completions_to_review/cc.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "cc "
+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/cd.exp b/test/lib/completions_to_review/cd.exp
new file mode 100644
index 0000000..1e46690
--- /dev/null
+++ b/test/lib/completions_to_review/cd.exp
@@ -0,0 +1,67 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "cd fixture1/"
+send "$cmd\t"
+expect {
+    -re "^$cmd\r\n.*$cmd$" { pass "$test" }
+    -re /@ { unresolved "$test at prompt" }
+}; # expect
+
+
+sync_after_int
+
+
+set test "Tab should complete cd at cursor position"
+    # Try completion
+set cmd "cd fixture1/foo"
+append cmd \002\002\002; # \002 = ^B = Move cursor left in bash emacs mode
+#append cmd \033\0133D; # Escape-[-D = Cursor left
+send "$cmd\t"
+expect {
+    -re "cd fixture1/foo\b\b\b\r\n(\.svn/ +|)bar bar.d/ +foo.d/ *(\.svn/ *|)\r\n/@cd fixture1/foo\b\b\b$" { pass "$test" }
+	-re "^cd fixture1/foo\b\b\bfoo.d/foo\b\b\b$" { fail "$test: Wrong cursor position" }
+    -re /@ { unresolved "$test at prompt" }
+    default { unresolved "$test" }
+}; # expect
+
+
+sync_after_int
+
+
+set test "Tab should complete CDPATH"
+    # Set CDPATH
+set cmd "CDPATH=\$PWD"
+send "$cmd\r"
+expect -ex "$cmd\r\n"
+expect -ex "/@"
+    # Try completion
+set cmd "cd fixture1/fo"
+send "$cmd\t"
+expect {
+    -re "cd fixture1/foo.d/$" { pass "$test" }
+    -re /@ { unresolved "$test at prompt" }
+    default { unresolved "$test" }
+}; # expect
+
+sync_after_int
+
+    # Reset CDPATH
+set cmd "unset CDPATH"
+send "$cmd\r"
+expect -ex "$cmd\r\n"
+expect -ex "/@"
+
+
+
+teardown
diff --git a/test/lib/completions_to_review/cdrecord.exp b/test/lib/completions_to_review/cdrecord.exp
new file mode 100644
index 0000000..06b0578
--- /dev/null
+++ b/test/lib/completions_to_review/cdrecord.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "cdrecord -d"
+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/change_pw.exp b/test/lib/completions_to_review/change_pw.exp
new file mode 100644
index 0000000..3e888ee
--- /dev/null
+++ b/test/lib/completions_to_review/change_pw.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "change_pw -"
+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/check_db.exp b/test/lib/completions_to_review/check_db.exp
new file mode 100644
index 0000000..dc34310
--- /dev/null
+++ b/test/lib/completions_to_review/check_db.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "check_db -"
+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/check_perms.exp b/test/lib/completions_to_review/check_perms.exp
new file mode 100644
index 0000000..8add9cd
--- /dev/null
+++ b/test/lib/completions_to_review/check_perms.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "check_perms -"
+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/chkconfig.exp b/test/lib/completions_to_review/chkconfig.exp
new file mode 100644
index 0000000..5bd2a32
--- /dev/null
+++ b/test/lib/completions_to_review/chkconfig.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should show completions"
+    # Try completion
+set cmd "chkconfig "
+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/ci.exp b/test/lib/completions_to_review/ci.exp
new file mode 100644
index 0000000..245a187
--- /dev/null
+++ b/test/lib/completions_to_review/ci.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "ci "
+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/civclient.exp b/test/lib/completions_to_review/civclient.exp
new file mode 100644
index 0000000..228bbbf
--- /dev/null
+++ b/test/lib/completions_to_review/civclient.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "civclient -"
+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/civserver.exp b/test/lib/completions_to_review/civserver.exp
new file mode 100644
index 0000000..bcbed86
--- /dev/null
+++ b/test/lib/completions_to_review/civserver.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "civserver -"
+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/cksfv.exp b/test/lib/completions_to_review/cksfv.exp
new file mode 100644
index 0000000..bf88b2f
--- /dev/null
+++ b/test/lib/completions_to_review/cksfv.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "cksfv -"
+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/cleanarch.exp b/test/lib/completions_to_review/cleanarch.exp
new file mode 100644
index 0000000..1f787e6
--- /dev/null
+++ b/test/lib/completions_to_review/cleanarch.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "cleanarch -"
+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/clisp.exp b/test/lib/completions_to_review/clisp.exp
new file mode 100644
index 0000000..9ad4e26
--- /dev/null
+++ b/test/lib/completions_to_review/clisp.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "clisp "
+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/clone_member.exp b/test/lib/completions_to_review/clone_member.exp
new file mode 100644
index 0000000..4b72304
--- /dev/null
+++ b/test/lib/completions_to_review/clone_member.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "clone_member -"
+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/co.exp b/test/lib/completions_to_review/co.exp
new file mode 100644
index 0000000..240218f
--- /dev/null
+++ b/test/lib/completions_to_review/co.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "co "
+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/composite.exp b/test/lib/completions_to_review/composite.exp
new file mode 100644
index 0000000..2c9e6be
--- /dev/null
+++ b/test/lib/completions_to_review/composite.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "composite "
+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/config_list.exp b/test/lib/completions_to_review/config_list.exp
new file mode 100644
index 0000000..bca7c85
--- /dev/null
+++ b/test/lib/completions_to_review/config_list.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "config_list -"
+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/configure.exp b/test/lib/completions_to_review/configure.exp
new file mode 100644
index 0000000..d597f59
--- /dev/null
+++ b/test/lib/completions_to_review/configure.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "configure "
+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/convert.exp b/test/lib/completions_to_review/convert.exp
new file mode 100644
index 0000000..471434d
--- /dev/null
+++ b/test/lib/completions_to_review/convert.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "convert "
+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/cp.exp b/test/lib/completions_to_review/cp.exp
new file mode 100644
index 0000000..435b5e2
--- /dev/null
+++ b/test/lib/completions_to_review/cp.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "cp "
+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/cpio.exp b/test/lib/completions_to_review/cpio.exp
new file mode 100644
index 0000000..63fb439
--- /dev/null
+++ b/test/lib/completions_to_review/cpio.exp
@@ -0,0 +1,40 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "cpio --"
+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 "-R should complete usergroups"
+    # Try completion
+set cmd "cpio -R "
+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/createdb.exp b/test/lib/completions_to_review/createdb.exp
new file mode 100644
index 0000000..452aba4
--- /dev/null
+++ b/test/lib/completions_to_review/createdb.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "createdb "
+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/csplit.exp b/test/lib/completions_to_review/csplit.exp
new file mode 100644
index 0000000..98ee53e
--- /dev/null
+++ b/test/lib/completions_to_review/csplit.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "csplit "
+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/cut.exp b/test/lib/completions_to_review/cut.exp
new file mode 100644
index 0000000..5c68362
--- /dev/null
+++ b/test/lib/completions_to_review/cut.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "cut "
+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/cvs.exp b/test/lib/completions_to_review/cvs.exp
new file mode 100644
index 0000000..59b77e6
--- /dev/null
+++ b/test/lib/completions_to_review/cvs.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "cvs "
+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/date.exp b/test/lib/completions_to_review/date.exp
new file mode 100644
index 0000000..71f8939
--- /dev/null
+++ b/test/lib/completions_to_review/date.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "date "
+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/dcop.exp b/test/lib/completions_to_review/dcop.exp
new file mode 100644
index 0000000..922dcf6
--- /dev/null
+++ b/test/lib/completions_to_review/dcop.exp
@@ -0,0 +1,30 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "dcop "
+send "$cmd\t"
+expect {
+    -re "^$cmd.*\r\n$" { pass "$test" }
+    -re /@ { unresolved "$test at prompt" }
+    -re eof { unresolved "eof" }
+}; # expect
+
+
+# Interrupt command by sending ^C
+
+sleep 0.01
+send \003;  # Control-c
+expect -ex "/@"
+
+
+teardown
diff --git a/test/lib/completions_to_review/dd.exp b/test/lib/completions_to_review/dd.exp
new file mode 100644
index 0000000..a9509ce
--- /dev/null
+++ b/test/lib/completions_to_review/dd.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "dd --"
+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/df.exp b/test/lib/completions_to_review/df.exp
new file mode 100644
index 0000000..d5b4a11
--- /dev/null
+++ b/test/lib/completions_to_review/df.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "df "
+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/dhclient.exp b/test/lib/completions_to_review/dhclient.exp
new file mode 100644
index 0000000..7717463
--- /dev/null
+++ b/test/lib/completions_to_review/dhclient.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "dhclient -"
+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/dict.exp b/test/lib/completions_to_review/dict.exp
new file mode 100644
index 0000000..85ae1be
--- /dev/null
+++ b/test/lib/completions_to_review/dict.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "dict -"
+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/diff.exp b/test/lib/completions_to_review/diff.exp
new file mode 100644
index 0000000..57e2007
--- /dev/null
+++ b/test/lib/completions_to_review/diff.exp
@@ -0,0 +1,28 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "diff --"
+send "$cmd\t"
+sleep .5
+expect {
+    -re "^$cmd\r\n.*/@$cmd$" { pass "$test" }
+    -re "^$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/dir.exp b/test/lib/completions_to_review/dir.exp
new file mode 100644
index 0000000..c8fbcc2
--- /dev/null
+++ b/test/lib/completions_to_review/dir.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "dir "
+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/display.exp b/test/lib/completions_to_review/display.exp
new file mode 100644
index 0000000..6ccb926
--- /dev/null
+++ b/test/lib/completions_to_review/display.exp
@@ -0,0 +1,42 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should show completions"
+    # Try completion
+set cmd "display "
+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 "- should complete options"
+    # Try completion
+set cmd "display -"
+send "$cmd\t"
+expect {
+    -re "$cmd\r\n-alpha\\s+-antialias\\s+-authenticate\\s+-auto-orient\\s+-backdrop\\s+-background\\s+-border\\s+-bordercolor\\s+-borderwidth\\s+-channel\\s+-clip\\s+-clip-path\\s+-coalesce\\s+-colormap\\s+-colors\\s+-colorspace\\s+-comment\\s+-compress\\s+-contrast\\s+-crop\\s+-debug\\s+-decipher\\s+-define\\s+-delay\\s+-density\\s+-depth\\s+-despeckle\\s+-display\\s+-dispose\\s+-dither\\s+-edge\\s+-endian\\s+-enhance\\s+-extract\\s+-filter\\s+-flatten\\s+-flip\\s+-flop\\s+-font\\s+-foreground\\s+-format\\s+-frame\\s+-gamma\\s+-geometry\\s+-help\\s+-iconGeometry\\s+-iconic\\s+-identify\\s+-immutable\\s+-interlace\\s+-interpolate\\s+-label\\s+-limit\\s+-list\\s+-log\\s+-loop\\s+-map\\s+-mattecolor\\s+-monitor\\s+-monochrome\\s+-name\\s+-negate\\s+-page\\s+-profile\\s+-quality\\s+-quantize\\s+-quiet\\s+-raise\\s+-regard-warnings\\s+-remote\\s+-repage\\s+-resample\\s+-resize\\s+-respect-parenthesis\\s+-roll\\s+-rotate\\s+-sample\\s+-sampling-factor\\s+-scenes\\s+-seed\\s+-segment\\s+-set\\s+-shared-memory\\s+-sharpen\\s+-size\\s+-strip\\s+-texture\\s+-title\\s+-transparent-color\\s+-treedepth\\s+-trim\\s+-update\\s+-usePixmap\\s+-verbose\\s+-version\\s+-virtual-pixel\\s+-visual\\s+-window\\s+-window-group\\s+-write\\s*\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/dnsspoof.exp b/test/lib/completions_to_review/dnsspoof.exp
new file mode 100644
index 0000000..a0f43c8
--- /dev/null
+++ b/test/lib/completions_to_review/dnsspoof.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "dnsspoof -"
+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/dpkg-deb.exp b/test/lib/completions_to_review/dpkg-deb.exp
new file mode 100644
index 0000000..897a7a6
--- /dev/null
+++ b/test/lib/completions_to_review/dpkg-deb.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "dpkg-deb --c"
+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/dpkg-reconfigure.exp b/test/lib/completions_to_review/dpkg-reconfigure.exp
new file mode 100644
index 0000000..df6e959
--- /dev/null
+++ b/test/lib/completions_to_review/dpkg-reconfigure.exp
@@ -0,0 +1,27 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "dpkg-reconfigure --"
+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/dpkg-source.exp b/test/lib/completions_to_review/dpkg-source.exp
new file mode 100644
index 0000000..03d3084
--- /dev/null
+++ b/test/lib/completions_to_review/dpkg-source.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "dpkg-source -"
+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/dpkg.exp b/test/lib/completions_to_review/dpkg.exp
new file mode 100644
index 0000000..58122d8
--- /dev/null
+++ b/test/lib/completions_to_review/dpkg.exp
@@ -0,0 +1,38 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "dpkg --c"
+send "$cmd\t"
+expect {
+    -re "^$cmd\r\n.*/@$cmd$" { pass "$test" }
+    -re /@ { unresolved "$test at prompt" }
+    -re eof { unresolved "eof" }
+}; # expect
+
+
+sync_after_int
+
+
+    # Build list of installed packages
+    # NOTE: If an argument is passed to `--get-selections', `dpkg' also returns
+    #       packages with status "purged".  Be sure to add `| grep install$' to
+    #       pipeline before 'cut' in that case. -- FVu, Sun Feb 22 10:08:34 CET 2009
+if {[assert_exec {dpkg --get-selections | cut -f1 | sort} packages]} {
+    assert_complete $packages {dpkg -L }
+}; # if
+
+
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions_to_review/dropdb.exp b/test/lib/completions_to_review/dropdb.exp
new file mode 100644
index 0000000..2e26d7e
--- /dev/null
+++ b/test/lib/completions_to_review/dropdb.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "dropdb "
+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/dselect.exp b/test/lib/completions_to_review/dselect.exp
new file mode 100644
index 0000000..07e7682
--- /dev/null
+++ b/test/lib/completions_to_review/dselect.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "dselect "
+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/dsniff.exp b/test/lib/completions_to_review/dsniff.exp
new file mode 100644
index 0000000..0c9aa33
--- /dev/null
+++ b/test/lib/completions_to_review/dsniff.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "dsniff -"
+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/du.exp b/test/lib/completions_to_review/du.exp
new file mode 100644
index 0000000..787ab85
--- /dev/null
+++ b/test/lib/completions_to_review/du.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "du "
+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/dumpdb.exp b/test/lib/completions_to_review/dumpdb.exp
new file mode 100644
index 0000000..bc72a9a
--- /dev/null
+++ b/test/lib/completions_to_review/dumpdb.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "dumpdb "
+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/enscript.exp b/test/lib/completions_to_review/enscript.exp
new file mode 100644
index 0000000..e261618
--- /dev/null
+++ b/test/lib/completions_to_review/enscript.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "enscript "
+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/env.exp b/test/lib/completions_to_review/env.exp
new file mode 100644
index 0000000..35d6fef
--- /dev/null
+++ b/test/lib/completions_to_review/env.exp
@@ -0,0 +1,31 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "env "
+send "$cmd\t"
+expect {
+    -re "^$cmd\r\n.*$cmd$" { pass "$test" }
+    -re /@ { unresolved "$test at prompt" }
+    -re eof { unresolved "eof" }
+}; # expect
+
+
+# Interrupt command
+
+set test "Sync after INT"
+sleep 0.01
+send \031\003;  # QUIT/INT
+expect -ex /@
+
+
+teardown
diff --git a/test/lib/completions_to_review/evince.exp b/test/lib/completions_to_review/evince.exp
new file mode 100644
index 0000000..1d62aea
--- /dev/null
+++ b/test/lib/completions_to_review/evince.exp
@@ -0,0 +1,32 @@
+proc setup {} {
+    set cmd "touch fixture1/t.{CB{R,Z},DJV{,U},cb{r,z},djv{,u}}";  # Create temporary files
+    send "$cmd\r"
+    expect -ex "$cmd\r\n/@"
+}; # setup()
+
+
+proc teardown {} {
+    set cmd "rm fixture1/t.{CB{R,Z},DJV{,U},cb{r,z},djv{,u}}";  # Remove temporary files
+    send "$cmd\r"
+    expect -ex "$cmd\r\n/@"
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete evince"
+    # Try completion
+set cmd "evince fixture1/"
+send "$cmd\t"
+expect {
+    -re "^${cmd}\r\n(\.svn/ +|)bar bar.d/ +foo.d/ +(\.svn/ +|)t.cbr +t.CBR +t.cbz +t.CBZ +t.djv +t.DJV +t.djvu +t.DJVU *\r\n/@$cmd$"  { pass "$test" }
+    -re /@ { unresolved "$test at prompt" }
+    default { unresolved "$test" }
+}; # expect
+
+
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions_to_review/expand.exp b/test/lib/completions_to_review/expand.exp
new file mode 100644
index 0000000..7c2ecb0
--- /dev/null
+++ b/test/lib/completions_to_review/expand.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "expand "
+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/filesnarf.exp b/test/lib/completions_to_review/filesnarf.exp
new file mode 100644
index 0000000..1f2aaa1
--- /dev/null
+++ b/test/lib/completions_to_review/filesnarf.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "filesnarf -"
+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/find.exp b/test/lib/completions_to_review/find.exp
new file mode 100644
index 0000000..e39d038
--- /dev/null
+++ b/test/lib/completions_to_review/find.exp
@@ -0,0 +1,95 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should show completions"
+    # Try completion
+set cmd "find "
+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 options [list -amin -anewer -atime -cmin -cnewer -ctime -daystart -depth -empty -exec \
+    -false -fls -follow -fprint -fprint0 -fprintf -fstype -gid -group -help -ilname -iname \
+    -inum -ipath -iregex -iwholename -links -lname -ls -maxdepth -mindepth -mmin -mount \
+    -mtime -name -newer -nogroup -noleaf -nouser -ok -perm -print -print0 -printf -prune \
+    -regex -size -true -type -uid -used -user -version -wholename -xdev -xtype]
+assert_complete $options {find -}
+
+
+sync_after_int
+
+
+set test "-wholename should complete files/dirs"
+    # Change directory
+set cmd "cd fixture1"
+send "$cmd\r"
+expect -ex "$cmd\r\n/fixture1/@"
+    # Complete
+set cmd "find -wholename "
+send "$cmd\t"
+expect {
+    -re "$cmd\r\n(\.svn/ +|)bar +bar bar.d/ +foo +foo.d/ *(\.svn/ *|)\r\n/fixture1/@$cmd$" { 
+	pass "$test" 
+    }
+    -re /@ { unresolved "$test at prompt" }
+    -re eof { unresolved "eof" }
+}; # expect
+
+
+sync_after_int
+
+
+    # Restore directory
+set cmd "cd .."
+send "$cmd\r"
+expect -ex "$cmd\r\n/@"
+
+
+set test "-uid should complete uids"
+    # Complete
+set cmd "find -uid "
+send "$cmd\t"
+expect {
+    -re "$cmd\r\n\\d+.*/@$cmd$" { 
+	pass "$test" 
+    }
+    -re /@ { unresolved "$test at prompt" }
+    -re eof { unresolved "eof" }
+}; # expect
+
+
+sync_after_int
+
+
+set test "-gid should complete gids"
+    # Complete
+set cmd "find -gid "
+send "$cmd\t"
+expect {
+    -re "$cmd\r\n\\d+.*/@$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/find_member.exp b/test/lib/completions_to_review/find_member.exp
new file mode 100644
index 0000000..e6dccb6
--- /dev/null
+++ b/test/lib/completions_to_review/find_member.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "find_member -"
+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/fmt.exp b/test/lib/completions_to_review/fmt.exp
new file mode 100644
index 0000000..9ba81c6
--- /dev/null
+++ b/test/lib/completions_to_review/fmt.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "fmt "
+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/fold.exp b/test/lib/completions_to_review/fold.exp
new file mode 100644
index 0000000..8e3d0db
--- /dev/null
+++ b/test/lib/completions_to_review/fold.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "fold "
+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/g++.exp b/test/lib/completions_to_review/g++.exp
new file mode 100644
index 0000000..0613eae
--- /dev/null
+++ b/test/lib/completions_to_review/g++.exp
@@ -0,0 +1,25 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+send "g++ \t"
+expect {
+    -re "^g\\+\\+ \r\n.*g\\+\\+ $" { pass "$test" }
+    -re /@ { unresolved "$test at prompt" }
+    -re eof { unresolved "eof" }
+}; # expect
+
+
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions_to_review/g4.exp b/test/lib/completions_to_review/g4.exp
new file mode 100644
index 0000000..664cad7
--- /dev/null
+++ b/test/lib/completions_to_review/g4.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "g4 "
+send "$cmd\t"
+expect {
+    -re "^${cmd}(bash: p4: command not found\r\n)*\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/g77.exp b/test/lib/completions_to_review/g77.exp
new file mode 100644
index 0000000..6218cb7
--- /dev/null
+++ b/test/lib/completions_to_review/g77.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "g77 "
+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/gcc.exp b/test/lib/completions_to_review/gcc.exp
new file mode 100644
index 0000000..bc0fbe3
--- /dev/null
+++ b/test/lib/completions_to_review/gcc.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "gcc "
+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/gcj.exp b/test/lib/completions_to_review/gcj.exp
new file mode 100644
index 0000000..8f1ef18
--- /dev/null
+++ b/test/lib/completions_to_review/gcj.exp
@@ -0,0 +1,31 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "gcj "
+send "$cmd\t"
+expect {
+    -re "^$cmd\r\n.*$cmd$" { pass "$test" }
+    -re /@ { unresolved "$test at prompt" }
+    -re eof { unresolved "eof" }
+}; # expect
+
+
+# Interrupt command
+
+set test "Sync after INT"
+sleep 0.01
+send \031\003;  # QUIT/INT
+expect -ex /@
+
+
+teardown
diff --git a/test/lib/completions_to_review/gcl.exp b/test/lib/completions_to_review/gcl.exp
new file mode 100644
index 0000000..c9a964d
--- /dev/null
+++ b/test/lib/completions_to_review/gcl.exp
@@ -0,0 +1,31 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "gcl "
+send "$cmd\t"
+expect {
+    -re "^$cmd\r\n.*$cmd$" { pass "$test" }
+    -re /@ { unresolved "$test at prompt" }
+    -re eof { unresolved "eof" }
+}; # expect
+
+
+# Interrupt command
+
+set test "Sync after INT"
+sleep 0.01
+send \031\003;  # QUIT/INT
+expect -ex /@
+
+
+teardown
diff --git a/test/lib/completions_to_review/gdb.exp b/test/lib/completions_to_review/gdb.exp
new file mode 100644
index 0000000..9059e89
--- /dev/null
+++ b/test/lib/completions_to_review/gdb.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "gdb - "
+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/genaliases.exp b/test/lib/completions_to_review/genaliases.exp
new file mode 100644
index 0000000..32c881f
--- /dev/null
+++ b/test/lib/completions_to_review/genaliases.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "genaliases -"
+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/getent.exp b/test/lib/completions_to_review/getent.exp
new file mode 100644
index 0000000..d48ff77
--- /dev/null
+++ b/test/lib/completions_to_review/getent.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "getent "
+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/gkrellm.exp b/test/lib/completions_to_review/gkrellm.exp
new file mode 100644
index 0000000..9abef56
--- /dev/null
+++ b/test/lib/completions_to_review/gkrellm.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "gkrellm -"
+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/gmplayer.exp b/test/lib/completions_to_review/gmplayer.exp
new file mode 100644
index 0000000..bcd1f45
--- /dev/null
+++ b/test/lib/completions_to_review/gmplayer.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "gmplayer "
+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/gnatmake.exp b/test/lib/completions_to_review/gnatmake.exp
new file mode 100644
index 0000000..1386758
--- /dev/null
+++ b/test/lib/completions_to_review/gnatmake.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "gnatmake "
+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/gpc.exp b/test/lib/completions_to_review/gpc.exp
new file mode 100644
index 0000000..8d473ed
--- /dev/null
+++ b/test/lib/completions_to_review/gpc.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "gpc "
+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/gperf.exp b/test/lib/completions_to_review/gperf.exp
new file mode 100644
index 0000000..a6a5470
--- /dev/null
+++ b/test/lib/completions_to_review/gperf.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "gperf "
+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/gpg.exp b/test/lib/completions_to_review/gpg.exp
new file mode 100644
index 0000000..72ed4d2
--- /dev/null
+++ b/test/lib/completions_to_review/gpg.exp
@@ -0,0 +1,31 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "gpg "
+send "$cmd\t"
+expect {
+    -re "^$cmd\r\n.*$cmd$" { pass "$test" }
+    -re /@ { unresolved "$test at prompt" }
+    -re eof { unresolved "eof" }
+}; # expect
+
+
+# Interrupt command
+
+set test "Sync after INT"
+sleep 0.01
+send \031\003;  # QUIT/INT
+expect -ex /@
+
+
+teardown
diff --git a/test/lib/completions_to_review/gprof.exp b/test/lib/completions_to_review/gprof.exp
new file mode 100644
index 0000000..05668d0
--- /dev/null
+++ b/test/lib/completions_to_review/gprof.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "gprof "
+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/grep.exp b/test/lib/completions_to_review/grep.exp
new file mode 100644
index 0000000..9083cd6
--- /dev/null
+++ b/test/lib/completions_to_review/grep.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "grep "
+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/grub.exp b/test/lib/completions_to_review/grub.exp
new file mode 100644
index 0000000..9dcfa41
--- /dev/null
+++ b/test/lib/completions_to_review/grub.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "grub "
+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/gzip.exp b/test/lib/completions_to_review/gzip.exp
new file mode 100644
index 0000000..4d3b59f
--- /dev/null
+++ b/test/lib/completions_to_review/gzip.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "gzip "
+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/head.exp b/test/lib/completions_to_review/head.exp
new file mode 100644
index 0000000..cb504c0
--- /dev/null
+++ b/test/lib/completions_to_review/head.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "head "
+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/hg.exp b/test/lib/completions_to_review/hg.exp
new file mode 100644
index 0000000..9f09878
--- /dev/null
+++ b/test/lib/completions_to_review/hg.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "hg -R "
+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/iconv.exp b/test/lib/completions_to_review/iconv.exp
new file mode 100644
index 0000000..654772a
--- /dev/null
+++ b/test/lib/completions_to_review/iconv.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "iconv "
+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/id.exp b/test/lib/completions_to_review/id.exp
new file mode 100644
index 0000000..0ac7668
--- /dev/null
+++ b/test/lib/completions_to_review/id.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "id "
+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/identify.exp b/test/lib/completions_to_review/identify.exp
new file mode 100644
index 0000000..918c843
--- /dev/null
+++ b/test/lib/completions_to_review/identify.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "identify "
+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/ifdown.exp b/test/lib/completions_to_review/ifdown.exp
new file mode 100644
index 0000000..7f1a42b
--- /dev/null
+++ b/test/lib/completions_to_review/ifdown.exp
@@ -0,0 +1,27 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "ifdown "
+send "$cmd\t"
+expect {
+    -re "^$cmd.*$" { pass "$test" }
+    -re /@ { unresolved "$test at prompt" }
+    -re eof { unresolved "eof" }
+}; # expect
+
+
+sleep .5
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions_to_review/ifup.exp b/test/lib/completions_to_review/ifup.exp
new file mode 100644
index 0000000..69918ae
--- /dev/null
+++ b/test/lib/completions_to_review/ifup.exp
@@ -0,0 +1,44 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should show completions"
+    # Try completion
+set cmd "ifup "
+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 "Argument should complete"
+    # Set test function for _configured_interfaces()
+set cmd "_configured_interfaces() { COMPREPLY=( foo bar ); }"
+send "$cmd\r"
+expect -ex "$cmd\r\n/@"
+    # Try completion
+set cmd "ifup f"
+send "$cmd\t"
+expect {
+    -re "^${cmd}oo\\s*$" { pass "$test" }
+    -re /@ { unresolved "$test at prompt" }
+    -re eof { unresolved "eof" }
+}; # expect
+
+
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions_to_review/indent.exp b/test/lib/completions_to_review/indent.exp
new file mode 100644
index 0000000..e8a8e16
--- /dev/null
+++ b/test/lib/completions_to_review/indent.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "indent "
+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/info.exp b/test/lib/completions_to_review/info.exp
new file mode 100644
index 0000000..0903da7
--- /dev/null
+++ b/test/lib/completions_to_review/info.exp
@@ -0,0 +1,31 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "info "
+send "$cmd\t"
+expect {
+    -re "^$cmd\r\n.*$cmd$" { pass "$test" }
+    -re /@ { unresolved "$test at prompt" }
+    -re eof { unresolved "eof" }
+}; # expect
+
+
+# Interrupt command
+
+set test "Sync after QUIT/INT"
+sleep 0.01
+send \031\003
+expect -ex /@
+
+
+teardown
diff --git a/test/lib/completions_to_review/inject.exp b/test/lib/completions_to_review/inject.exp
new file mode 100644
index 0000000..3ddd21d
--- /dev/null
+++ b/test/lib/completions_to_review/inject.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "inject "
+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/insmod.exp b/test/lib/completions_to_review/insmod.exp
new file mode 100644
index 0000000..ea41251
--- /dev/null
+++ b/test/lib/completions_to_review/insmod.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should show completions"
+    # Try completion
+set cmd "insmod in"
+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/invoke-rc.d.exp b/test/lib/completions_to_review/invoke-rc.d.exp
new file mode 100644
index 0000000..dc1e262
--- /dev/null
+++ b/test/lib/completions_to_review/invoke-rc.d.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "invoke-rc.d "
+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/irb.exp b/test/lib/completions_to_review/irb.exp
new file mode 100644
index 0000000..7adaacd
--- /dev/null
+++ b/test/lib/completions_to_review/irb.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "irb "
+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/isql.exp b/test/lib/completions_to_review/isql.exp
new file mode 100644
index 0000000..02eb540
--- /dev/null
+++ b/test/lib/completions_to_review/isql.exp
@@ -0,0 +1,34 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should show completions"
+    # Try completion
+set cmd "isql "
+send "$cmd\t"
+expect {
+	# TODO: If $ODBCINI is set, match completions
+	#       -- FVu, Fri Feb 27 22:58:05 CET 2009
+    -re "^$cmd.*" { pass "$test" }
+    -re /@ { unresolved "$test at prompt" }
+    -re eof { unresolved "eof" }
+}; # expect
+
+
+    # Because we don't wait for prompt (/@), wait a moment
+    # for `comp_load' to install real completion.  This can
+    # be removed if the TODO above is fixed.
+    # -- FVu, Fri Feb 27 23:14:49 CET 2009
+sleep .5
+
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions_to_review/iwconfig.exp b/test/lib/completions_to_review/iwconfig.exp
new file mode 100644
index 0000000..38fffd1
--- /dev/null
+++ b/test/lib/completions_to_review/iwconfig.exp
@@ -0,0 +1,40 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "iwconfig --"
+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 "Tab should not complain about _available_interfaces() not being available"
+    # Try completion
+set cmd "iwconfig #"
+send "$cmd\t"
+expect {
+    -re "^$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/iwlist.exp b/test/lib/completions_to_review/iwlist.exp
new file mode 100644
index 0000000..3989847
--- /dev/null
+++ b/test/lib/completions_to_review/iwlist.exp
@@ -0,0 +1,31 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "iwlist --"
+send "$cmd\t"
+expect {
+    -re "^$cmd\r\n.*$cmd$" { pass "$test" }
+    -re /@ { unresolved "$test at prompt" }
+    -re eof { unresolved "eof" }
+}; # expect
+
+
+# Interrupt command
+
+set test "Sync after INT"
+sleep 0.01
+send \031\003;  # QUIT/INT
+expect -ex /@
+
+
+teardown
diff --git a/test/lib/completions_to_review/iwpriv.exp b/test/lib/completions_to_review/iwpriv.exp
new file mode 100644
index 0000000..971b28f
--- /dev/null
+++ b/test/lib/completions_to_review/iwpriv.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "iwpriv --"
+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/iwspy.exp b/test/lib/completions_to_review/iwspy.exp
new file mode 100644
index 0000000..62f11d3
--- /dev/null
+++ b/test/lib/completions_to_review/iwspy.exp
@@ -0,0 +1,31 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "iwspy --"
+send "$cmd\t"
+expect {
+    -re "^$cmd\r\n.*$cmd$" { pass "$test" }
+    -re /@ { unresolved "$test at prompt" }
+    -re eof { unresolved "eof" }
+}; # expect
+
+
+# Interrupt command
+
+set test "Sync after QUIT/INT"
+sleep 0.01
+send \031\003;  # QUIT/INT
+expect -ex /@
+
+
+teardown
diff --git a/test/lib/completions_to_review/java.exp b/test/lib/completions_to_review/java.exp
new file mode 100644
index 0000000..30b42b4
--- /dev/null
+++ b/test/lib/completions_to_review/java.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "java -"
+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/javac.exp b/test/lib/completions_to_review/javac.exp
new file mode 100644
index 0000000..0c0e421
--- /dev/null
+++ b/test/lib/completions_to_review/javac.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "javac "
+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/javadoc.exp b/test/lib/completions_to_review/javadoc.exp
new file mode 100644
index 0000000..9da7576
--- /dev/null
+++ b/test/lib/completions_to_review/javadoc.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "javadoc "
+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/kdvi.exp b/test/lib/completions_to_review/kdvi.exp
new file mode 100644
index 0000000..73a12c5
--- /dev/null
+++ b/test/lib/completions_to_review/kdvi.exp
@@ -0,0 +1,35 @@
+proc setup {} {
+    set test setup
+    set cmd "touch fixture1/t.{dvi{,.gz,.bz2},DVI{,.gz,.bz2}}";  # Create temporary files
+    send "$cmd\r"
+    expect -ex "$cmd\r\n/@"
+}; # setup()
+
+
+proc teardown {} {
+    set test teardown
+    set cmd "rm fixture1/t.{dvi{,.gz,.bz2},DVI{,.gz,.bz2}}";  # Remove temporary files
+    send "$cmd\r"
+    expect -ex "$cmd\r\n/@"
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete kdvi"
+    # Try completion
+set cmd "kdvi fixture1/"
+send "$cmd\t"
+expect {
+    -re "^${cmd}\r\n(\.svn/ +|)bar bar.d/ +foo.d/ +(\.svn/ +|)t.dvi +t.DVI +t.dvi.bz2 +t.DVI.bz2 +t.dvi.gz +t.DVI.gz *\r\n/@$cmd$"  { pass "$test" }
+    -re /@ { unresolved "$test at prompt" }
+    default { unresolved "$test" }
+}; # expect
+
+
+#sleep .5
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions_to_review/kill.exp b/test/lib/completions_to_review/kill.exp
new file mode 100644
index 0000000..60da297
--- /dev/null
+++ b/test/lib/completions_to_review/kill.exp
@@ -0,0 +1,40 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should show completions"
+    # Try completion
+set cmd "kill 1"
+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 "Tab should show signals"
+    # Try completion
+set cmd "kill -"
+send "$cmd\t"
+expect {
+    -re "$cmd\r\n.*-KILL.*$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/killall.exp b/test/lib/completions_to_review/killall.exp
new file mode 100644
index 0000000..f1e20ad
--- /dev/null
+++ b/test/lib/completions_to_review/killall.exp
@@ -0,0 +1,40 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should show completions"
+    # Try completion
+set cmd "killall "
+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 "Tab should complete signals"
+    # Try completion
+set cmd "killall -"
+send "$cmd\t"
+expect {
+    -re "$cmd\r\n.*-KILL.*/@$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/kldload.exp b/test/lib/completions_to_review/kldload.exp
new file mode 100644
index 0000000..f7839d2
--- /dev/null
+++ b/test/lib/completions_to_review/kldload.exp
@@ -0,0 +1,28 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "kldload "
+send "$cmd\t"
+sync_after_tab
+expect {
+    -re "^$cmd.*$" { pass "$test" }
+    -re /@ { unresolved "$test at prompt" }
+    -re eof { unresolved "eof" }
+}; # expect
+
+
+sleep .4
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions_to_review/kldunload.exp b/test/lib/completions_to_review/kldunload.exp
new file mode 100644
index 0000000..88262bd
--- /dev/null
+++ b/test/lib/completions_to_review/kldunload.exp
@@ -0,0 +1,28 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "kldunload "
+send "$cmd\t"
+sync_after_tab
+expect {
+    -re "^$cmd.*$" { pass "$test" }
+    -re /@ { unresolved "$test at prompt" }
+    -re eof { unresolved "eof" }
+}; # expect
+
+
+sleep .4
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions_to_review/kpdf.exp b/test/lib/completions_to_review/kpdf.exp
new file mode 100644
index 0000000..39facb7
--- /dev/null
+++ b/test/lib/completions_to_review/kpdf.exp
@@ -0,0 +1,35 @@
+proc setup {} {
+    set test setup
+    set cmd "touch fixture1/t.{pdf,PDF,{,e}ps,{,E}PS}";  # Create temporary files
+    send "$cmd\r"
+    expect -ex "$cmd\r\n/@"
+}; # setup()
+
+
+proc teardown {} {
+    set test teardown
+    set cmd "rm fixture1/t.{pdf,PDF,{,e}ps,{,E}PS}";  # Remove temporary files
+    send "$cmd\r"
+    expect -ex "$cmd\r\n/@"
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete kpdf"
+    # Try completion
+set cmd "kpdf fixture1/"
+send "$cmd\t"
+expect {
+    -re "^${cmd}\r\n(\.svn/ +|)bar bar.d/ +foo.d/ +(\.svn/ +|)t.eps +t.EPS +t.pdf +t.PDF +t.ps +t.PS *\r\n/@$cmd$"  { pass "$test" }
+    -re /@ { unresolved "$test at prompt" }
+    default { unresolved "$test" }
+}; # expect
+
+
+sleep .5
+sync_after_int
+
+
+teardown
diff --git a/test/lib/completions_to_review/kplayer.exp b/test/lib/completions_to_review/kplayer.exp
new file mode 100644
index 0000000..48d365c
--- /dev/null
+++ b/test/lib/completions_to_review/kplayer.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "kplayer "
+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/larch.exp b/test/lib/completions_to_review/larch.exp
new file mode 100644
index 0000000..aadd461
--- /dev/null
+++ b/test/lib/completions_to_review/larch.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "larch library-"
+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/ld.exp b/test/lib/completions_to_review/ld.exp
new file mode 100644
index 0000000..429250d
--- /dev/null
+++ b/test/lib/completions_to_review/ld.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "ld "
+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/ldd.exp b/test/lib/completions_to_review/ldd.exp
new file mode 100644
index 0000000..42af598
--- /dev/null
+++ b/test/lib/completions_to_review/ldd.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "ldd "
+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/less.exp b/test/lib/completions_to_review/less.exp
new file mode 100644
index 0000000..d833ade
--- /dev/null
+++ b/test/lib/completions_to_review/less.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "less "
+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/lftp.exp b/test/lib/completions_to_review/lftp.exp
new file mode 100644
index 0000000..eeac0c7
--- /dev/null
+++ b/test/lib/completions_to_review/lftp.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "lftp "
+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/lilo.exp b/test/lib/completions_to_review/lilo.exp
new file mode 100644
index 0000000..b2f4601
--- /dev/null
+++ b/test/lib/completions_to_review/lilo.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "lilo -"
+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/links.exp b/test/lib/completions_to_review/links.exp
new file mode 100644
index 0000000..e08e624
--- /dev/null
+++ b/test/lib/completions_to_review/links.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "links "
+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/lisp.exp b/test/lib/completions_to_review/lisp.exp
new file mode 100644
index 0000000..1afe40c
--- /dev/null
+++ b/test/lib/completions_to_review/lisp.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "lisp "
+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/list_admins.exp b/test/lib/completions_to_review/list_admins.exp
new file mode 100644
index 0000000..7006f9b
--- /dev/null
+++ b/test/lib/completions_to_review/list_admins.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "list_admins -"
+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/list_lists.exp b/test/lib/completions_to_review/list_lists.exp
new file mode 100644
index 0000000..332b021
--- /dev/null
+++ b/test/lib/completions_to_review/list_lists.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "list_lists -"
+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/list_members.exp b/test/lib/completions_to_review/list_members.exp
new file mode 100644
index 0000000..5d9dd08
--- /dev/null
+++ b/test/lib/completions_to_review/list_members.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "list_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/list_owners.exp b/test/lib/completions_to_review/list_owners.exp
new file mode 100644
index 0000000..065635b
--- /dev/null
+++ b/test/lib/completions_to_review/list_owners.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "list_owners -"
+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/ln.exp b/test/lib/completions_to_review/ln.exp
new file mode 100644
index 0000000..aa2faaa
--- /dev/null
+++ b/test/lib/completions_to_review/ln.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "ln "
+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/look.exp b/test/lib/completions_to_review/look.exp
new file mode 100644
index 0000000..38eb1a5
--- /dev/null
+++ b/test/lib/completions_to_review/look.exp
@@ -0,0 +1,29 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "look foo "
+send "$cmd\t"
+  # NOTE: Wait in case `look' returns nothing, so that "^$cdm.*$" doesn't match
+  #       too early -- before comp_install has finished
+sleep .4
+expect {
+    -re "^${cmd}(bash: look: command not found\r\n|)\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/ls.exp b/test/lib/completions_to_review/ls.exp
new file mode 100644
index 0000000..d433295
--- /dev/null
+++ b/test/lib/completions_to_review/ls.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "ls "
+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/lvchange.exp b/test/lib/completions_to_review/lvchange.exp
new file mode 100644
index 0000000..d07a129
--- /dev/null
+++ b/test/lib/completions_to_review/lvchange.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "lvchange --"
+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/lvcreate.exp b/test/lib/completions_to_review/lvcreate.exp
new file mode 100644
index 0000000..1a24d6a
--- /dev/null
+++ b/test/lib/completions_to_review/lvcreate.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "lvcreate --"
+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/lvdisplay.exp b/test/lib/completions_to_review/lvdisplay.exp
new file mode 100644
index 0000000..4ba2be5
--- /dev/null
+++ b/test/lib/completions_to_review/lvdisplay.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "lvdisplay --"
+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/lvextend.exp b/test/lib/completions_to_review/lvextend.exp
new file mode 100644
index 0000000..60195ce
--- /dev/null
+++ b/test/lib/completions_to_review/lvextend.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "lvextend --"
+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/lvm.exp b/test/lib/completions_to_review/lvm.exp
new file mode 100644
index 0000000..e9403a4
--- /dev/null
+++ b/test/lib/completions_to_review/lvm.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "lvm pv"
+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/lvmdiskscan.exp b/test/lib/completions_to_review/lvmdiskscan.exp
new file mode 100644
index 0000000..eb219e5
--- /dev/null
+++ b/test/lib/completions_to_review/lvmdiskscan.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "lvmdiskscan --"
+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/lvreduce.exp b/test/lib/completions_to_review/lvreduce.exp
new file mode 100644
index 0000000..6c3f141
--- /dev/null
+++ b/test/lib/completions_to_review/lvreduce.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "lvreduce --"
+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/lvremove.exp b/test/lib/completions_to_review/lvremove.exp
new file mode 100644
index 0000000..35ba530
--- /dev/null
+++ b/test/lib/completions_to_review/lvremove.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "lvremove --"
+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/lvrename.exp b/test/lib/completions_to_review/lvrename.exp
new file mode 100644
index 0000000..fd3102d
--- /dev/null
+++ b/test/lib/completions_to_review/lvrename.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "lvrename --"
+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/lvresize.exp b/test/lib/completions_to_review/lvresize.exp
new file mode 100644
index 0000000..ce44198
--- /dev/null
+++ b/test/lib/completions_to_review/lvresize.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "lvresize --"
+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/lvs.exp b/test/lib/completions_to_review/lvs.exp
new file mode 100644
index 0000000..231099e
--- /dev/null
+++ b/test/lib/completions_to_review/lvs.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "lvs --"
+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/lvscan.exp b/test/lib/completions_to_review/lvscan.exp
new file mode 100644
index 0000000..e50a7f9
--- /dev/null
+++ b/test/lib/completions_to_review/lvscan.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "lvscan --"
+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/m4.exp b/test/lib/completions_to_review/m4.exp
new file mode 100644
index 0000000..daad9a1
--- /dev/null
+++ b/test/lib/completions_to_review/m4.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "m4 "
+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/macof.exp b/test/lib/completions_to_review/macof.exp
new file mode 100644
index 0000000..970cae5
--- /dev/null
+++ b/test/lib/completions_to_review/macof.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "macof -"
+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/mailmanctl.exp b/test/lib/completions_to_review/mailmanctl.exp
new file mode 100644
index 0000000..1f5df51
--- /dev/null
+++ b/test/lib/completions_to_review/mailmanctl.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "mailmanctl "
+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/mailsnarf.exp b/test/lib/completions_to_review/mailsnarf.exp
new file mode 100644
index 0000000..16009a0
--- /dev/null
+++ b/test/lib/completions_to_review/mailsnarf.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "mailsnarf -"
+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/man.exp b/test/lib/completions_to_review/man.exp
new file mode 100644
index 0000000..1124c37
--- /dev/null
+++ b/test/lib/completions_to_review/man.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should show completions"
+    # Try completion
+set cmd "man man" 
+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/mc.exp b/test/lib/completions_to_review/mc.exp
new file mode 100644
index 0000000..a288d7d
--- /dev/null
+++ b/test/lib/completions_to_review/mc.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "mc "
+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/mcrypt.exp b/test/lib/completions_to_review/mcrypt.exp
new file mode 100644
index 0000000..0235d9e
--- /dev/null
+++ b/test/lib/completions_to_review/mcrypt.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "mcrypt "
+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/md5sum.exp b/test/lib/completions_to_review/md5sum.exp
new file mode 100644
index 0000000..c44149e
--- /dev/null
+++ b/test/lib/completions_to_review/md5sum.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "md5sum "
+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/mdecrypt.exp b/test/lib/completions_to_review/mdecrypt.exp
new file mode 100644
index 0000000..1e53ade
--- /dev/null
+++ b/test/lib/completions_to_review/mdecrypt.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "mdecrypt "
+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/mencoder.exp b/test/lib/completions_to_review/mencoder.exp
new file mode 100644
index 0000000..c98d6cc
--- /dev/null
+++ b/test/lib/completions_to_review/mencoder.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "mencoder "
+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/minicom.exp b/test/lib/completions_to_review/minicom.exp
new file mode 100644
index 0000000..5ba9b12
--- /dev/null
+++ b/test/lib/completions_to_review/minicom.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "minicom -"
+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/mkdir.exp b/test/lib/completions_to_review/mkdir.exp
new file mode 100644
index 0000000..a733585
--- /dev/null
+++ b/test/lib/completions_to_review/mkdir.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "mkdir "
+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/mkfifo.exp b/test/lib/completions_to_review/mkfifo.exp
new file mode 100644
index 0000000..4a34ef0
--- /dev/null
+++ b/test/lib/completions_to_review/mkfifo.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "mkfifo "
+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/mkinitrd.exp b/test/lib/completions_to_review/mkinitrd.exp
new file mode 100644
index 0000000..f69c259
--- /dev/null
+++ b/test/lib/completions_to_review/mkinitrd.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "mkinitrd "
+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/mkisofs.exp b/test/lib/completions_to_review/mkisofs.exp
new file mode 100644
index 0000000..6e06bd7
--- /dev/null
+++ b/test/lib/completions_to_review/mkisofs.exp
@@ -0,0 +1,54 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "mkisofs "
+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 "-uid should complete uids"
+    # Try completion
+set cmd "mkisofs -uid "
+send "$cmd\t"
+expect {
+    -re "^$cmd\r\n\\d+.*$cmd$" { pass "$test" }
+    -re /@ { unresolved "$test at prompt" }
+    -re eof { unresolved "eof" }
+}; # expect
+
+
+sync_after_int
+
+
+set test "-gid should complete gids"
+    # Try completion
+set cmd "mkisofs -gid "
+send "$cmd\t"
+expect {
+    -re "^$cmd\r\n\\d+.*$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/mknod.exp b/test/lib/completions_to_review/mknod.exp
new file mode 100644
index 0000000..b26f73a
--- /dev/null
+++ b/test/lib/completions_to_review/mknod.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "mknod "
+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/mmsitepass.exp b/test/lib/completions_to_review/mmsitepass.exp
new file mode 100644
index 0000000..88ec103
--- /dev/null
+++ b/test/lib/completions_to_review/mmsitepass.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "mmsitepass -"
+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/module.exp b/test/lib/completions_to_review/module.exp
new file mode 100644
index 0000000..deb3fa3
--- /dev/null
+++ b/test/lib/completions_to_review/module.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "module "
+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/mogrify.exp b/test/lib/completions_to_review/mogrify.exp
new file mode 100644
index 0000000..c89a882
--- /dev/null
+++ b/test/lib/completions_to_review/mogrify.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "mogrify "
+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/montage.exp b/test/lib/completions_to_review/montage.exp
new file mode 100644
index 0000000..fd1a719
--- /dev/null
+++ b/test/lib/completions_to_review/montage.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "montage "
+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/mplayer.exp b/test/lib/completions_to_review/mplayer.exp
new file mode 100644
index 0000000..75556a1
--- /dev/null
+++ b/test/lib/completions_to_review/mplayer.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "mplayer "
+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/msgsnarf.exp b/test/lib/completions_to_review/msgsnarf.exp
new file mode 100644
index 0000000..8ebdb36
--- /dev/null
+++ b/test/lib/completions_to_review/msgsnarf.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "msgsnarf -"
+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/mtx.exp b/test/lib/completions_to_review/mtx.exp
new file mode 100644
index 0000000..097fde0
--- /dev/null
+++ b/test/lib/completions_to_review/mtx.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "mtx "
+send "$cmd\t"
+expect {
+    -re "^${cmd}(bash: mtx: command not found\r\n)*\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/mutt.exp b/test/lib/completions_to_review/mutt.exp
new file mode 100644
index 0000000..0be3d67
--- /dev/null
+++ b/test/lib/completions_to_review/mutt.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "mutt -"
+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/muttng.exp b/test/lib/completions_to_review/muttng.exp
new file mode 100644
index 0000000..979148b
--- /dev/null
+++ b/test/lib/completions_to_review/muttng.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "muttng -"
+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/mv.exp b/test/lib/completions_to_review/mv.exp
new file mode 100644
index 0000000..d4db5e0
--- /dev/null
+++ b/test/lib/completions_to_review/mv.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "mv "
+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/mysqladmin.exp b/test/lib/completions_to_review/mysqladmin.exp
new file mode 100644
index 0000000..113edf3
--- /dev/null
+++ b/test/lib/completions_to_review/mysqladmin.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "mysqladmin -"
+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/ncftp.exp b/test/lib/completions_to_review/ncftp.exp
new file mode 100644
index 0000000..553b9ca
--- /dev/null
+++ b/test/lib/completions_to_review/ncftp.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "ncftp "
+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/netstat.exp b/test/lib/completions_to_review/netstat.exp
new file mode 100644
index 0000000..7c34419
--- /dev/null
+++ b/test/lib/completions_to_review/netstat.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "netstat "
+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/newlist.exp b/test/lib/completions_to_review/newlist.exp
new file mode 100644
index 0000000..93273c7
--- /dev/null
+++ b/test/lib/completions_to_review/newlist.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "newlist -"
+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/nl.exp b/test/lib/completions_to_review/nl.exp
new file mode 100644
index 0000000..7c0071d
--- /dev/null
+++ b/test/lib/completions_to_review/nl.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "nl "
+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/nm.exp b/test/lib/completions_to_review/nm.exp
new file mode 100644
index 0000000..9e61b41
--- /dev/null
+++ b/test/lib/completions_to_review/nm.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "nm "
+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/ntpdate.exp b/test/lib/completions_to_review/ntpdate.exp
new file mode 100644
index 0000000..2c96808
--- /dev/null
+++ b/test/lib/completions_to_review/ntpdate.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "ntpdate -"
+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/objcopy.exp b/test/lib/completions_to_review/objcopy.exp
new file mode 100644
index 0000000..733785c
--- /dev/null
+++ b/test/lib/completions_to_review/objcopy.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "objcopy "
+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/objdump.exp b/test/lib/completions_to_review/objdump.exp
new file mode 100644
index 0000000..faba38c
--- /dev/null
+++ b/test/lib/completions_to_review/objdump.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "objdump "
+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/od.exp b/test/lib/completions_to_review/od.exp
new file mode 100644
index 0000000..f117140
--- /dev/null
+++ b/test/lib/completions_to_review/od.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "od "
+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/openssl.exp b/test/lib/completions_to_review/openssl.exp
new file mode 100644
index 0000000..13c49b4
--- /dev/null
+++ b/test/lib/completions_to_review/openssl.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "openssl "
+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/p4.exp b/test/lib/completions_to_review/p4.exp
new file mode 100644
index 0000000..1b26cfc
--- /dev/null
+++ b/test/lib/completions_to_review/p4.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "p4 "
+send "$cmd\t"
+expect {
+    -re "^${cmd}(bash: p4: command not found|)\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/paste.exp b/test/lib/completions_to_review/paste.exp
new file mode 100644
index 0000000..5d6c3c8
--- /dev/null
+++ b/test/lib/completions_to_review/paste.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "paste "
+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/patch.exp b/test/lib/completions_to_review/patch.exp
new file mode 100644
index 0000000..c3015c1
--- /dev/null
+++ b/test/lib/completions_to_review/patch.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "patch "
+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/perl.exp b/test/lib/completions_to_review/perl.exp
new file mode 100644
index 0000000..8e61e2d
--- /dev/null
+++ b/test/lib/completions_to_review/perl.exp
@@ -0,0 +1,105 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should show completions"
+    # Try completion
+set cmd "perl "
+send "$cmd\t"
+expect {
+    -re "^$cmd\r\n.*\r\n/@$cmd$" { pass "$test" }
+    -re /@ { unresolved "$test at prompt" }
+    -re eof { unresolved "eof" }
+}; # expect
+
+
+sync_after_int
+
+
+set test "Second argument should file complete"
+set cmd "perl foo fixture1/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 -Ifixture1/"
+send "$cmd\t"
+expect {
+    -re "^$cmd\r\n(\.svn/ +|)bar bar.d/ +foo.d/ *(\.svn/ *|)\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 fixture1/"
+send "$cmd\t"
+expect {
+    -re "^$cmd\r\n(\.svn/ +|)bar bar.d/ +foo.d/ *(\.svn/ *|)\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 -xfixture1/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 fixture1/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"
+    # Try completion
+set cmd "perl -"
+send "$cmd\t"
+expect {
+    -re "^$cmd\r\n-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\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/perldoc.exp b/test/lib/completions_to_review/perldoc.exp
new file mode 100644
index 0000000..ac8a18f
--- /dev/null
+++ b/test/lib/completions_to_review/perldoc.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "perldoc -"
+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/pine.exp b/test/lib/completions_to_review/pine.exp
new file mode 100644
index 0000000..cb4396c
--- /dev/null
+++ b/test/lib/completions_to_review/pine.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "pine "
+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/pkg-config.exp b/test/lib/completions_to_review/pkg-config.exp
new file mode 100644
index 0000000..67094dd
--- /dev/null
+++ b/test/lib/completions_to_review/pkg-config.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "pkg-config -"
+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/pkg_deinstall.exp b/test/lib/completions_to_review/pkg_deinstall.exp
new file mode 100644
index 0000000..700a5be
--- /dev/null
+++ b/test/lib/completions_to_review/pkg_deinstall.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "pkg_deinstall "
+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/pkg_delete.exp b/test/lib/completions_to_review/pkg_delete.exp
new file mode 100644
index 0000000..fc82066
--- /dev/null
+++ b/test/lib/completions_to_review/pkg_delete.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "pkg_delete "
+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/pkg_info.exp b/test/lib/completions_to_review/pkg_info.exp
new file mode 100644
index 0000000..66bc0e1
--- /dev/null
+++ b/test/lib/completions_to_review/pkg_info.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "pkg_info "
+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/portinstall.exp b/test/lib/completions_to_review/portinstall.exp
new file mode 100644
index 0000000..36a6f0b
--- /dev/null
+++ b/test/lib/completions_to_review/portinstall.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "portinstall "
+send "$cmd\t"
+expect {
+    -re "^${cmd}(bash: /usr/ports//INDEX: No such file or directory\r\n)*\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/portupgrade.exp b/test/lib/completions_to_review/portupgrade.exp
new file mode 100644
index 0000000..b345f1a
--- /dev/null
+++ b/test/lib/completions_to_review/portupgrade.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "portupgrade "
+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/povray.exp b/test/lib/completions_to_review/povray.exp
new file mode 100644
index 0000000..bada2cc
--- /dev/null
+++ b/test/lib/completions_to_review/povray.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "povray "
+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/pr.exp b/test/lib/completions_to_review/pr.exp
new file mode 100644
index 0000000..a7f4f57
--- /dev/null
+++ b/test/lib/completions_to_review/pr.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "pr "
+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/psql.exp b/test/lib/completions_to_review/psql.exp
new file mode 100644
index 0000000..19f5a8a
--- /dev/null
+++ b/test/lib/completions_to_review/psql.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "psql "
+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/ptx.exp b/test/lib/completions_to_review/ptx.exp
new file mode 100644
index 0000000..95c9344
--- /dev/null
+++ b/test/lib/completions_to_review/ptx.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "ptx "
+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/pvchange.exp b/test/lib/completions_to_review/pvchange.exp
new file mode 100644
index 0000000..190ee41
--- /dev/null
+++ b/test/lib/completions_to_review/pvchange.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "pvchange --"
+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/pvcreate.exp b/test/lib/completions_to_review/pvcreate.exp
new file mode 100644
index 0000000..795c8f2
--- /dev/null
+++ b/test/lib/completions_to_review/pvcreate.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "pvcreate --"
+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/pvdisplay.exp b/test/lib/completions_to_review/pvdisplay.exp
new file mode 100644
index 0000000..e10fbe0
--- /dev/null
+++ b/test/lib/completions_to_review/pvdisplay.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "pvdisplay --"
+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/pvmove.exp b/test/lib/completions_to_review/pvmove.exp
new file mode 100644
index 0000000..9c0f70e
--- /dev/null
+++ b/test/lib/completions_to_review/pvmove.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "pvmove --"
+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/pvremove.exp b/test/lib/completions_to_review/pvremove.exp
new file mode 100644
index 0000000..cb89bd2
--- /dev/null
+++ b/test/lib/completions_to_review/pvremove.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "pvremove --"
+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/pvs.exp b/test/lib/completions_to_review/pvs.exp
new file mode 100644
index 0000000..a8a5758
--- /dev/null
+++ b/test/lib/completions_to_review/pvs.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "pvs --"
+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/pvscan.exp b/test/lib/completions_to_review/pvscan.exp
new file mode 100644
index 0000000..7ffb484
--- /dev/null
+++ b/test/lib/completions_to_review/pvscan.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "pvscan --"
+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/python.exp b/test/lib/completions_to_review/python.exp
new file mode 100644
index 0000000..0889d43
--- /dev/null
+++ b/test/lib/completions_to_review/python.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "python "
+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/qrunner.exp b/test/lib/completions_to_review/qrunner.exp
new file mode 100644
index 0000000..db79bd0
--- /dev/null
+++ b/test/lib/completions_to_review/qrunner.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "qrunner -"
+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/querybts.exp b/test/lib/completions_to_review/querybts.exp
new file mode 100644
index 0000000..9d3b2a0
--- /dev/null
+++ b/test/lib/completions_to_review/querybts.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "querybts --"
+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/rcs.exp b/test/lib/completions_to_review/rcs.exp
new file mode 100644
index 0000000..9181cac
--- /dev/null
+++ b/test/lib/completions_to_review/rcs.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "rcs "
+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/rcsdiff.exp b/test/lib/completions_to_review/rcsdiff.exp
new file mode 100644
index 0000000..b8b0093
--- /dev/null
+++ b/test/lib/completions_to_review/rcsdiff.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "rcsdiff "
+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/rdict.exp b/test/lib/completions_to_review/rdict.exp
new file mode 100644
index 0000000..8f42d9d
--- /dev/null
+++ b/test/lib/completions_to_review/rdict.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "rdict --"
+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/readelf.exp b/test/lib/completions_to_review/readelf.exp
new file mode 100644
index 0000000..60ddad7
--- /dev/null
+++ b/test/lib/completions_to_review/readelf.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "readelf "
+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/readonly.exp b/test/lib/completions_to_review/readonly.exp
new file mode 100644
index 0000000..1ed5730
--- /dev/null
+++ b/test/lib/completions_to_review/readonly.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "readonly BASH_ARG"
+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/remove_members.exp b/test/lib/completions_to_review/remove_members.exp
new file mode 100644
index 0000000..8fad0ad
--- /dev/null
+++ b/test/lib/completions_to_review/remove_members.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "remove_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/removepkg.exp b/test/lib/completions_to_review/removepkg.exp
new file mode 100644
index 0000000..54e47aa
--- /dev/null
+++ b/test/lib/completions_to_review/removepkg.exp
@@ -0,0 +1,29 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "removepkg "
+send "$cmd\t"
+  # NOTE: Wait in case `kldload' isn't installed, so that "^$cdm.*$" doesn't match
+  #       before comp_install has finished
+sleep .4
+expect {
+    -re "^$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/renice.exp b/test/lib/completions_to_review/renice.exp
new file mode 100644
index 0000000..8e499c7
--- /dev/null
+++ b/test/lib/completions_to_review/renice.exp
@@ -0,0 +1,40 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should show completions"
+    # Try completion
+set cmd "renice 1"
+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 "Tab should show complete process group ids"
+    # Try completion
+set cmd "renice -g "
+send "$cmd\t"
+expect {
+    -re "$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/reportbug.exp b/test/lib/completions_to_review/reportbug.exp
new file mode 100644
index 0000000..234b82e
--- /dev/null
+++ b/test/lib/completions_to_review/reportbug.exp
@@ -0,0 +1,41 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "reportbug --m"
+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 should invoke _command"
+    # Try completion
+set cmd "reportbug --editor 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/ri.exp b/test/lib/completions_to_review/ri.exp
new file mode 100644
index 0000000..df4d2b2
--- /dev/null
+++ b/test/lib/completions_to_review/ri.exp
@@ -0,0 +1,29 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "ri "
+send "$cmd\t"
+  # NOTE: Wait in case `ri' isn't installed, so that "^$cdm.*$" doesn't match
+  #       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/completions_to_review/rlog.exp b/test/lib/completions_to_review/rlog.exp
new file mode 100644
index 0000000..2446334
--- /dev/null
+++ b/test/lib/completions_to_review/rlog.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "rlog "
+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/rm.exp b/test/lib/completions_to_review/rm.exp
new file mode 100644
index 0000000..932eb4c
--- /dev/null
+++ b/test/lib/completions_to_review/rm.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "rm "
+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/rmdir.exp b/test/lib/completions_to_review/rmdir.exp
new file mode 100644
index 0000000..c668b31
--- /dev/null
+++ b/test/lib/completions_to_review/rmdir.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "rmdir "
+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/rmlist.exp b/test/lib/completions_to_review/rmlist.exp
new file mode 100644
index 0000000..0f3ab10
--- /dev/null
+++ b/test/lib/completions_to_review/rmlist.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "rmlist -"
+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/rsync.exp b/test/lib/completions_to_review/rsync.exp
new file mode 100644
index 0000000..e874b53
--- /dev/null
+++ b/test/lib/completions_to_review/rsync.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should show completions"
+    # Try completion
+set cmd "rsync "
+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-mt.exp b/test/lib/completions_to_review/sbcl-mt.exp
new file mode 100644
index 0000000..51e15ba
--- /dev/null
+++ b/test/lib/completions_to_review/sbcl-mt.exp
@@ -0,0 +1,26 @@
+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
new file mode 100644
index 0000000..9f5561a
--- /dev/null
+++ b/test/lib/completions_to_review/sbcl.exp
@@ -0,0 +1,26 @@
+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
new file mode 100644
index 0000000..d11af00
--- /dev/null
+++ b/test/lib/completions_to_review/scp.exp
@@ -0,0 +1,119 @@
+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
new file mode 100644
index 0000000..ee27326
--- /dev/null
+++ b/test/lib/completions_to_review/screen.exp
@@ -0,0 +1,26 @@
+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
new file mode 100644
index 0000000..91be8ad
--- /dev/null
+++ b/test/lib/completions_to_review/sed.exp
@@ -0,0 +1,27 @@
+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
new file mode 100644
index 0000000..c2bda8b
--- /dev/null
+++ b/test/lib/completions_to_review/seq.exp
@@ -0,0 +1,26 @@
+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
new file mode 100644
index 0000000..3095725
--- /dev/null
+++ b/test/lib/completions_to_review/service.exp
@@ -0,0 +1,26 @@
+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
new file mode 100644
index 0000000..39e70b0
--- /dev/null
+++ b/test/lib/completions_to_review/set.exp
@@ -0,0 +1,26 @@
+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
new file mode 100644
index 0000000..6f8bb60
--- /dev/null
+++ b/test/lib/completions_to_review/sha1sum.exp
@@ -0,0 +1,26 @@
+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
new file mode 100644
index 0000000..08ef458
--- /dev/null
+++ b/test/lib/completions_to_review/shar.exp
@@ -0,0 +1,26 @@
+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
new file mode 100644
index 0000000..8d0d2af
--- /dev/null
+++ b/test/lib/completions_to_review/sitecopy.exp
@@ -0,0 +1,26 @@
+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
new file mode 100644
index 0000000..e45b9f6
--- /dev/null
+++ b/test/lib/completions_to_review/smartctl.exp
@@ -0,0 +1,26 @@
+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
new file mode 100644
index 0000000..3b7eccf
--- /dev/null
+++ b/test/lib/completions_to_review/snownews.exp
@@ -0,0 +1,26 @@
+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
new file mode 100644
index 0000000..6db7aa6
--- /dev/null
+++ b/test/lib/completions_to_review/sort.exp
@@ -0,0 +1,26 @@
+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
new file mode 100644
index 0000000..f907794
--- /dev/null
+++ b/test/lib/completions_to_review/split.exp
@@ -0,0 +1,26 @@
+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
new file mode 100644
index 0000000..85f5923
--- /dev/null
+++ b/test/lib/completions_to_review/spovray.exp
@@ -0,0 +1,26 @@
+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
new file mode 100644
index 0000000..5b98d87
--- /dev/null
+++ b/test/lib/completions_to_review/ssh.exp
@@ -0,0 +1,75 @@
+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
new file mode 100644
index 0000000..6fbfa48
--- /dev/null
+++ b/test/lib/completions_to_review/sshmitm.exp
@@ -0,0 +1,26 @@
+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
new file mode 100644
index 0000000..683a924
--- /dev/null
+++ b/test/lib/completions_to_review/sshow.exp
@@ -0,0 +1,26 @@
+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
new file mode 100644
index 0000000..ad73514
--- /dev/null
+++ b/test/lib/completions_to_review/strip.exp
@@ -0,0 +1,26 @@
+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
new file mode 100644
index 0000000..e0799fb
--- /dev/null
+++ b/test/lib/completions_to_review/sudo.exp
@@ -0,0 +1,25 @@
+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
new file mode 100644
index 0000000..c4bd3e7
--- /dev/null
+++ b/test/lib/completions_to_review/svk.exp
@@ -0,0 +1,26 @@
+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
new file mode 100644
index 0000000..bef9c05
--- /dev/null
+++ b/test/lib/completions_to_review/svn.exp
@@ -0,0 +1,41 @@
+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
new file mode 100644
index 0000000..fabf5c9
--- /dev/null
+++ b/test/lib/completions_to_review/svnadmin.exp
@@ -0,0 +1,26 @@
+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
new file mode 100644
index 0000000..ab4adf3
--- /dev/null
+++ b/test/lib/completions_to_review/svnlook.exp
@@ -0,0 +1,26 @@
+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
new file mode 100644
index 0000000..370709a
--- /dev/null
+++ b/test/lib/completions_to_review/sync_members.exp
@@ -0,0 +1,26 @@
+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
new file mode 100644
index 0000000..6793cf2
--- /dev/null
+++ b/test/lib/completions_to_review/sysctl.exp
@@ -0,0 +1,29 @@
+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/completions_to_review/tac.exp b/test/lib/completions_to_review/tac.exp
new file mode 100644
index 0000000..669e6fc
--- /dev/null
+++ b/test/lib/completions_to_review/tac.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "tac --"
+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/tail.exp b/test/lib/completions_to_review/tail.exp
new file mode 100644
index 0000000..cc291b0
--- /dev/null
+++ b/test/lib/completions_to_review/tail.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "tail "
+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/tar.exp b/test/lib/completions_to_review/tar.exp
new file mode 100644
index 0000000..717d725
--- /dev/null
+++ b/test/lib/completions_to_review/tar.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "tar "
+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/tcpkill.exp b/test/lib/completions_to_review/tcpkill.exp
new file mode 100644
index 0000000..76789b9
--- /dev/null
+++ b/test/lib/completions_to_review/tcpkill.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "tcpkill -"
+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/tcpnice.exp b/test/lib/completions_to_review/tcpnice.exp
new file mode 100644
index 0000000..4f0e0b4
--- /dev/null
+++ b/test/lib/completions_to_review/tcpnice.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "tcpnice -"
+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/tee.exp b/test/lib/completions_to_review/tee.exp
new file mode 100644
index 0000000..675a67d
--- /dev/null
+++ b/test/lib/completions_to_review/tee.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "tee "
+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/texindex.exp b/test/lib/completions_to_review/texindex.exp
new file mode 100644
index 0000000..2bf33f0
--- /dev/null
+++ b/test/lib/completions_to_review/texindex.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "texindex "
+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/tightvncviewer.exp b/test/lib/completions_to_review/tightvncviewer.exp
new file mode 100644
index 0000000..a087365
--- /dev/null
+++ b/test/lib/completions_to_review/tightvncviewer.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should show completions"
+    # Try completion
+set cmd "tightvncviewer "
+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/time.exp b/test/lib/completions_to_review/time.exp
new file mode 100644
index 0000000..2f6c26c
--- /dev/null
+++ b/test/lib/completions_to_review/time.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "time set"
+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/touch.exp b/test/lib/completions_to_review/touch.exp
new file mode 100644
index 0000000..abf1893
--- /dev/null
+++ b/test/lib/completions_to_review/touch.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "touch "
+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/tr.exp b/test/lib/completions_to_review/tr.exp
new file mode 100644
index 0000000..2d12c79
--- /dev/null
+++ b/test/lib/completions_to_review/tr.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "tr "
+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/unace.exp b/test/lib/completions_to_review/unace.exp
new file mode 100644
index 0000000..b28b898
--- /dev/null
+++ b/test/lib/completions_to_review/unace.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "unace "
+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/uname.exp b/test/lib/completions_to_review/uname.exp
new file mode 100644
index 0000000..eaf7fcf
--- /dev/null
+++ b/test/lib/completions_to_review/uname.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "uname --"
+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/unexpand.exp b/test/lib/completions_to_review/unexpand.exp
new file mode 100644
index 0000000..e061d13
--- /dev/null
+++ b/test/lib/completions_to_review/unexpand.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "unexpand "
+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/uniq.exp b/test/lib/completions_to_review/uniq.exp
new file mode 100644
index 0000000..27417a1
--- /dev/null
+++ b/test/lib/completions_to_review/uniq.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "uniq "
+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/units.exp b/test/lib/completions_to_review/units.exp
new file mode 100644
index 0000000..eb3ebe8
--- /dev/null
+++ b/test/lib/completions_to_review/units.exp
@@ -0,0 +1,27 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "units --"
+send "$cmd\t"
+sync_after_tab
+expect {
+    -re "^$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/unrar.exp b/test/lib/completions_to_review/unrar.exp
new file mode 100644
index 0000000..6c1c56a
--- /dev/null
+++ b/test/lib/completions_to_review/unrar.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "unrar "
+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/unset.exp b/test/lib/completions_to_review/unset.exp
new file mode 100644
index 0000000..b070ed3
--- /dev/null
+++ b/test/lib/completions_to_review/unset.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "unset BASH_ARG"
+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/unshunt.exp b/test/lib/completions_to_review/unshunt.exp
new file mode 100644
index 0000000..ccf56f9
--- /dev/null
+++ b/test/lib/completions_to_review/unshunt.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "unshunt "
+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/update-alternatives.exp b/test/lib/completions_to_review/update-alternatives.exp
new file mode 100644
index 0000000..ed43779
--- /dev/null
+++ b/test/lib/completions_to_review/update-alternatives.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "update-alternatives --"
+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/update-rc.d.exp b/test/lib/completions_to_review/update-rc.d.exp
new file mode 100644
index 0000000..92fffd3
--- /dev/null
+++ b/test/lib/completions_to_review/update-rc.d.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "update-rc.d -"
+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/urlsnarf.exp b/test/lib/completions_to_review/urlsnarf.exp
new file mode 100644
index 0000000..620c4c3
--- /dev/null
+++ b/test/lib/completions_to_review/urlsnarf.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "urlsnarf -"
+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/vdir.exp b/test/lib/completions_to_review/vdir.exp
new file mode 100644
index 0000000..075317d
--- /dev/null
+++ b/test/lib/completions_to_review/vdir.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "vdir --"
+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/vgcfgbackup.exp b/test/lib/completions_to_review/vgcfgbackup.exp
new file mode 100644
index 0000000..01c3c80
--- /dev/null
+++ b/test/lib/completions_to_review/vgcfgbackup.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "vgcfgbackup --"
+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/vgcfgrestore.exp b/test/lib/completions_to_review/vgcfgrestore.exp
new file mode 100644
index 0000000..5b955ea
--- /dev/null
+++ b/test/lib/completions_to_review/vgcfgrestore.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "vgcfgrestore --"
+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/vgchange.exp b/test/lib/completions_to_review/vgchange.exp
new file mode 100644
index 0000000..aa9ea75
--- /dev/null
+++ b/test/lib/completions_to_review/vgchange.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "vgchange --"
+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/vgck.exp b/test/lib/completions_to_review/vgck.exp
new file mode 100644
index 0000000..c0ca185
--- /dev/null
+++ b/test/lib/completions_to_review/vgck.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "vgck --"
+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/vgconvert.exp b/test/lib/completions_to_review/vgconvert.exp
new file mode 100644
index 0000000..78a69f7
--- /dev/null
+++ b/test/lib/completions_to_review/vgconvert.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "vgconvert --"
+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/vgcreate.exp b/test/lib/completions_to_review/vgcreate.exp
new file mode 100644
index 0000000..b480dc4
--- /dev/null
+++ b/test/lib/completions_to_review/vgcreate.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "vgcreate --"
+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/vgdisplay.exp b/test/lib/completions_to_review/vgdisplay.exp
new file mode 100644
index 0000000..b376814
--- /dev/null
+++ b/test/lib/completions_to_review/vgdisplay.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "vgdisplay --"
+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/vgexport.exp b/test/lib/completions_to_review/vgexport.exp
new file mode 100644
index 0000000..412229b
--- /dev/null
+++ b/test/lib/completions_to_review/vgexport.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "vgexport --"
+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/vgextend.exp b/test/lib/completions_to_review/vgextend.exp
new file mode 100644
index 0000000..1f76fb7
--- /dev/null
+++ b/test/lib/completions_to_review/vgextend.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "vgextend --"
+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/vgimport.exp b/test/lib/completions_to_review/vgimport.exp
new file mode 100644
index 0000000..a15c8bb
--- /dev/null
+++ b/test/lib/completions_to_review/vgimport.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "vgimport --"
+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/vgmerge.exp b/test/lib/completions_to_review/vgmerge.exp
new file mode 100644
index 0000000..7aca79f
--- /dev/null
+++ b/test/lib/completions_to_review/vgmerge.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "vgmerge --"
+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/vgmknodes.exp b/test/lib/completions_to_review/vgmknodes.exp
new file mode 100644
index 0000000..626546d
--- /dev/null
+++ b/test/lib/completions_to_review/vgmknodes.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "vgmknodes --"
+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/vgreduce.exp b/test/lib/completions_to_review/vgreduce.exp
new file mode 100644
index 0000000..f4a2f54
--- /dev/null
+++ b/test/lib/completions_to_review/vgreduce.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "vgreduce --"
+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/vgremove.exp b/test/lib/completions_to_review/vgremove.exp
new file mode 100644
index 0000000..8085431
--- /dev/null
+++ b/test/lib/completions_to_review/vgremove.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "vgremove --"
+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/vgrename.exp b/test/lib/completions_to_review/vgrename.exp
new file mode 100644
index 0000000..86ac4ff
--- /dev/null
+++ b/test/lib/completions_to_review/vgrename.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "vgrename --"
+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/vgs.exp b/test/lib/completions_to_review/vgs.exp
new file mode 100644
index 0000000..0f5842c
--- /dev/null
+++ b/test/lib/completions_to_review/vgs.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "vgs --"
+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/vgscan.exp b/test/lib/completions_to_review/vgscan.exp
new file mode 100644
index 0000000..47208d4
--- /dev/null
+++ b/test/lib/completions_to_review/vgscan.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "vgscan --"
+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/vgsplit.exp b/test/lib/completions_to_review/vgsplit.exp
new file mode 100644
index 0000000..9383940
--- /dev/null
+++ b/test/lib/completions_to_review/vgsplit.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "vgsplit --"
+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/vncviewer.exp b/test/lib/completions_to_review/vncviewer.exp
new file mode 100644
index 0000000..b91f64e
--- /dev/null
+++ b/test/lib/completions_to_review/vncviewer.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should show completions"
+    # Try completion
+set cmd "xvnc4viewer "
+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/wc.exp b/test/lib/completions_to_review/wc.exp
new file mode 100644
index 0000000..476a088
--- /dev/null
+++ b/test/lib/completions_to_review/wc.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "wc --"
+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/webmitm.exp b/test/lib/completions_to_review/webmitm.exp
new file mode 100644
index 0000000..77ed3a2
--- /dev/null
+++ b/test/lib/completions_to_review/webmitm.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "webmitm -"
+send "$cmd\t"
+expect {
+    -re "^${cmd}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/wget.exp b/test/lib/completions_to_review/wget.exp
new file mode 100644
index 0000000..d9aa1f9
--- /dev/null
+++ b/test/lib/completions_to_review/wget.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "wget "
+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/who.exp b/test/lib/completions_to_review/who.exp
new file mode 100644
index 0000000..0653e63
--- /dev/null
+++ b/test/lib/completions_to_review/who.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "who "
+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/withlist.exp b/test/lib/completions_to_review/withlist.exp
new file mode 100644
index 0000000..6c0bc94
--- /dev/null
+++ b/test/lib/completions_to_review/withlist.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "withlist --"
+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/wvdial.exp b/test/lib/completions_to_review/wvdial.exp
new file mode 100644
index 0000000..5448a53
--- /dev/null
+++ b/test/lib/completions_to_review/wvdial.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "wvdial --config "
+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/xmms.exp b/test/lib/completions_to_review/xmms.exp
new file mode 100644
index 0000000..67bcd6c
--- /dev/null
+++ b/test/lib/completions_to_review/xmms.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "xmms --"
+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/xpovray.exp b/test/lib/completions_to_review/xpovray.exp
new file mode 100644
index 0000000..084f61e
--- /dev/null
+++ b/test/lib/completions_to_review/xpovray.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "xpovray "
+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/xvnc4viewer.exp b/test/lib/completions_to_review/xvnc4viewer.exp
new file mode 100644
index 0000000..6aaf2eb
--- /dev/null
+++ b/test/lib/completions_to_review/xvnc4viewer.exp
@@ -0,0 +1,57 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete options"
+set options {
+    -AcceptClipboard -AutoSelect -DebugDelay -display
+    -DotWhenNoCursor -FullColor -FullColour -FullScreen
+    -geometry -help -listen -Log
+    -LowColourLevel -MenuKey -name -Parent
+    -passwd -PasswordFile -PointerEventInterval -PreferredEncoding
+    -SendClipboard -SendPrimary -Shared -UseLocalCursor
+    -via -ViewOnly -WMDecorationHeight -WMDecorationWidth
+    -ZlibLevel
+}
+assert_complete $options {vncviewer -}
+
+
+sync_after_int
+
+
+set test "-PreferredEncoding should show encodings"
+    # Try completion
+set cmd "xvnc4viewer -PreferredEncoding "
+send "$cmd\t"
+expect {
+    -re "^$cmd\r\nhextile\\s+raw\\s+zrle\\s+/@$cmd$" { pass "$test" }
+    -re /@ { unresolved "$test at prompt" }
+    -re eof { unresolved "eof" }
+}; # expect
+
+
+sync_after_int
+
+
+set test "--preferredencoding should show encodings"
+    # Try completion
+set cmd "xvnc4viewer --preferredencoding "
+send "$cmd\t"
+expect {
+    -re "^$cmd\r\nhextile\\s+raw\\s+zrle\\s+/@$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/ypcat.exp b/test/lib/completions_to_review/ypcat.exp
new file mode 100644
index 0000000..14086a8
--- /dev/null
+++ b/test/lib/completions_to_review/ypcat.exp
@@ -0,0 +1,27 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "ypcat "
+send "$cmd\t"
+expect {
+    -re "^${cmd}bash: ypcat: command not found\r\n$" { 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/ypmatch.exp b/test/lib/completions_to_review/ypmatch.exp
new file mode 100644
index 0000000..675a056
--- /dev/null
+++ b/test/lib/completions_to_review/ypmatch.exp
@@ -0,0 +1,27 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "ypmatch foo "
+send "$cmd\t"
+expect {
+    -re "^${cmd}bash: ypcat: command not found\r\n$" { 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/yum-arch.exp b/test/lib/completions_to_review/yum-arch.exp
new file mode 100644
index 0000000..d3a82b4
--- /dev/null
+++ b/test/lib/completions_to_review/yum-arch.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "yum-arch "
+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/yum.exp b/test/lib/completions_to_review/yum.exp
new file mode 100644
index 0000000..68bcd3f
--- /dev/null
+++ b/test/lib/completions_to_review/yum.exp
@@ -0,0 +1,26 @@
+proc setup {} {
+}; # setup()
+
+
+proc teardown {} {
+}; # teardown()
+
+
+setup
+
+
+set test "Tab should complete"
+    # Try completion
+set cmd "yum "
+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

-- 
bash-completion



More information about the Bash-completion-commits mailing list