summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorGabriel F. T. Gomes <gabriel@inconstante.net.br>2019-08-07 09:17:13 -0300
committerGabriel F. T. Gomes <gabriel@inconstante.net.br>2019-08-07 09:17:13 -0300
commit5732da2af736c40cf693354485446ab4867ecb4d (patch)
tree76d76cdfa16ca62d20fb109da13895ec64fff110 /test
parent9cd22d1df8f0f5b554858471c86faa9f37b8fed4 (diff)
downloadbash-completion-5732da2af736c40cf693354485446ab4867ecb4d.tar.gz
New upstream version 2.9upstream/2.9
Diffstat (limited to 'test')
-rw-r--r--test/.gitignore3
-rw-r--r--test/Makefile.am10
-rw-r--r--test/completion/2to3.exp1
-rw-r--r--test/completion/7z.exp1
-rw-r--r--test/completion/a2ps.exp1
-rw-r--r--test/completion/a2x.exp1
-rw-r--r--test/completion/abook.exp1
-rw-r--r--test/completion/aclocal.exp1
-rw-r--r--test/completion/acpi.exp1
-rw-r--r--test/completion/acroread.exp1
-rw-r--r--test/completion/adb.exp1
-rw-r--r--test/completion/add_members.exp1
-rw-r--r--test/completion/alpine.exp1
-rw-r--r--test/completion/animate.exp1
-rw-r--r--test/completion/ant.exp1
-rw-r--r--test/completion/apache2ctl.exp1
-rw-r--r--test/completion/appdata-validate.exp1
-rw-r--r--test/completion/apt-build.exp1
-rw-r--r--test/completion/apt-cache.exp1
-rw-r--r--test/completion/apt-get.exp1
-rw-r--r--test/completion/aptitude.exp1
-rw-r--r--test/completion/arch.exp3
-rw-r--r--test/completion/arping.exp1
-rw-r--r--test/completion/arpspoof.exp1
-rw-r--r--test/completion/asciidoc.exp1
-rw-r--r--test/completion/aspell.exp1
-rw-r--r--test/completion/autoconf.exp1
-rw-r--r--test/completion/autoheader.exp1
-rw-r--r--test/completion/automake.exp1
-rw-r--r--test/completion/autoreconf.exp1
-rw-r--r--test/completion/autorpm.exp1
-rw-r--r--test/completion/autoscan.exp1
-rw-r--r--test/completion/autoupdate.exp1
-rw-r--r--test/completion/avctrl.exp1
-rw-r--r--test/completion/awk.exp1
-rw-r--r--test/completion/badblocks.exp1
-rw-r--r--test/completion/base64.exp1
-rw-r--r--test/completion/bash.exp1
-rw-r--r--test/completion/bc.exp1
-rw-r--r--test/completion/bind.exp1
-rw-r--r--test/completion/bison.exp1
-rw-r--r--test/completion/bk.exp1
-rw-r--r--test/completion/brctl.exp1
-rw-r--r--test/completion/btdownloadcurses.py.exp1
-rw-r--r--test/completion/btdownloadgui.py.exp1
-rw-r--r--test/completion/btdownloadheadless.py.exp1
-rw-r--r--test/completion/bzip2.exp1
-rw-r--r--test/completion/c++.exp1
-rw-r--r--test/completion/cal.exp1
-rw-r--r--test/completion/cancel.exp1
-rw-r--r--test/completion/cardctl.exp1
-rw-r--r--test/completion/cat.exp1
-rw-r--r--test/completion/cc.exp1
-rw-r--r--test/completion/ccache.exp1
-rw-r--r--test/completion/ccze.exp1
-rw-r--r--test/completion/cdrecord.exp1
-rw-r--r--test/completion/cfagent.exp1
-rw-r--r--test/completion/cfrun.exp1
-rw-r--r--test/completion/chage.exp1
-rw-r--r--test/completion/change_pw.exp3
-rw-r--r--test/completion/check_db.exp1
-rw-r--r--test/completion/check_perms.exp1
-rw-r--r--test/completion/checksec.exp1
-rw-r--r--test/completion/chfn.exp1
-rw-r--r--test/completion/chgrp.exp1
-rw-r--r--test/completion/chkconfig.exp1
-rw-r--r--test/completion/chpasswd.exp1
-rw-r--r--test/completion/chronyc.exp1
-rw-r--r--test/completion/chroot.exp1
-rw-r--r--test/completion/chrpath.exp1
-rw-r--r--test/completion/chsh.exp1
-rw-r--r--test/completion/ci.exp1
-rw-r--r--test/completion/ciptool.exp1
-rw-r--r--test/completion/civclient.exp1
-rw-r--r--test/completion/civserver.exp1
-rw-r--r--test/completion/cksfv.exp1
-rw-r--r--test/completion/cleanarch.exp3
-rw-r--r--test/completion/clisp.exp1
-rw-r--r--test/completion/clone_member.exp1
-rw-r--r--test/completion/co.exp1
-rw-r--r--test/completion/compare.exp1
-rw-r--r--test/completion/complete.exp1
-rw-r--r--test/completion/composite.exp1
-rw-r--r--test/completion/config_list.exp1
-rw-r--r--test/completion/configure.exp1
-rw-r--r--test/completion/conjure.exp1
-rw-r--r--test/completion/convert.exp1
-rw-r--r--test/completion/cowsay.exp1
-rw-r--r--test/completion/cp.exp1
-rw-r--r--test/completion/cpan2dist.exp1
-rw-r--r--test/completion/cpio.exp1
-rw-r--r--test/completion/cppcheck.exp1
-rw-r--r--test/completion/createdb.exp1
-rw-r--r--test/completion/createuser.exp1
-rw-r--r--test/completion/crontab.exp1
-rw-r--r--test/completion/cryptsetup.exp1
-rw-r--r--test/completion/csplit.exp1
-rw-r--r--test/completion/curl.exp1
-rw-r--r--test/completion/cut.exp1
-rw-r--r--test/completion/cvs.exp1
-rw-r--r--test/completion/cvsps.exp1
-rw-r--r--test/completion/date.exp1
-rw-r--r--test/completion/dcop.exp1
-rw-r--r--test/completion/dd.exp1
-rw-r--r--test/completion/declare.exp1
-rw-r--r--test/completion/deja-dup.exp1
-rw-r--r--test/completion/desktop-file-validate.exp1
-rw-r--r--test/completion/df.exp1
-rw-r--r--test/completion/dfutool.exp1
-rw-r--r--test/completion/dhclient.exp1
-rw-r--r--test/completion/dict.exp1
-rw-r--r--test/completion/diff.exp1
-rw-r--r--test/completion/dir.exp1
-rw-r--r--test/completion/display.exp1
-rw-r--r--test/completion/dmesg.exp1
-rw-r--r--test/completion/dnsspoof.exp1
-rw-r--r--test/completion/dot.exp1
-rw-r--r--test/completion/dpkg-deb.exp1
-rw-r--r--test/completion/dpkg-reconfigure.exp1
-rw-r--r--test/completion/dpkg-source.exp1
-rw-r--r--test/completion/dpkg.exp1
-rw-r--r--test/completion/dropdb.exp1
-rw-r--r--test/completion/dropuser.exp1
-rw-r--r--test/completion/dselect.exp1
-rw-r--r--test/completion/dsniff.exp1
-rw-r--r--test/completion/du.exp1
-rw-r--r--test/completion/dumpdb.exp3
-rw-r--r--test/completion/dumpe2fs.exp1
-rw-r--r--test/completion/e2freefrag.exp1
-rw-r--r--test/completion/e2label.exp1
-rw-r--r--test/completion/ebtables.exp1
-rw-r--r--test/completion/eject.exp1
-rw-r--r--test/completion/enscript.exp1
-rw-r--r--test/completion/env.exp1
-rw-r--r--test/completion/eog.exp1
-rw-r--r--test/completion/ether-wake.exp1
-rw-r--r--test/completion/evince.exp1
-rw-r--r--test/completion/expand.exp1
-rw-r--r--test/completion/explodepkg.exp1
-rw-r--r--test/completion/export.exp1
-rw-r--r--test/completion/faillog.exp1
-rw-r--r--test/completion/fbgs.exp1
-rw-r--r--test/completion/fbi.exp1
-rw-r--r--test/completion/feh.exp1
-rw-r--r--test/completion/file-roller.exp1
-rw-r--r--test/completion/file.exp1
-rw-r--r--test/completion/filefrag.exp1
-rw-r--r--test/completion/filesnarf.exp1
-rw-r--r--test/completion/find.exp1
-rw-r--r--test/completion/find_member.exp1
-rw-r--r--test/completion/flake8.exp1
-rw-r--r--test/completion/fmt.exp1
-rw-r--r--test/completion/fold.exp1
-rw-r--r--test/completion/freebsd-update.exp1
-rw-r--r--test/completion/freeciv-gtk2.exp1
-rw-r--r--test/completion/freeciv-server.exp1
-rw-r--r--test/completion/freerdp.exp1
-rw-r--r--test/completion/function.exp1
-rw-r--r--test/completion/fusermount.exp1
-rw-r--r--test/completion/g++.exp1
-rw-r--r--test/completion/g4.exp1
-rw-r--r--test/completion/g77.exp1
-rw-r--r--test/completion/gcc.exp1
-rw-r--r--test/completion/gcj.exp1
-rw-r--r--test/completion/gcl.exp1
-rw-r--r--test/completion/gdb.exp1
-rw-r--r--test/completion/genaliases.exp3
-rw-r--r--test/completion/gendiff.exp1
-rw-r--r--test/completion/genisoimage.exp1
-rw-r--r--test/completion/geoiplookup.exp1
-rw-r--r--test/completion/getconf.exp1
-rw-r--r--test/completion/getent.exp1
-rw-r--r--test/completion/gkrellm.exp1
-rw-r--r--test/completion/gm.exp1
-rw-r--r--test/completion/gmplayer.exp1
-rw-r--r--test/completion/gnatmake.exp1
-rw-r--r--test/completion/gnokii.exp1
-rw-r--r--test/completion/gnome-mplayer.exp1
-rw-r--r--test/completion/gpasswd.exp1
-rw-r--r--test/completion/gpc.exp1
-rw-r--r--test/completion/gperf.exp1
-rw-r--r--test/completion/gpg.exp1
-rw-r--r--test/completion/gpg2.exp1
-rw-r--r--test/completion/gphoto2.exp1
-rw-r--r--test/completion/gprof.exp1
-rw-r--r--test/completion/grep.exp1
-rw-r--r--test/completion/groupadd.exp1
-rw-r--r--test/completion/groupdel.exp1
-rw-r--r--test/completion/groupmems.exp1
-rw-r--r--test/completion/groupmod.exp1
-rw-r--r--test/completion/growisofs.exp1
-rw-r--r--test/completion/grpck.exp1
-rw-r--r--test/completion/grub.exp1
-rw-r--r--test/completion/gzip.exp1
-rw-r--r--test/completion/hciattach.exp1
-rw-r--r--test/completion/hciconfig.exp1
-rw-r--r--test/completion/hcitool.exp1
-rw-r--r--test/completion/hddtemp.exp1
-rw-r--r--test/completion/head.exp1
-rw-r--r--test/completion/hexdump.exp1
-rw-r--r--test/completion/hid2hci.exp3
-rw-r--r--test/completion/host.exp1
-rw-r--r--test/completion/hostname.exp1
-rw-r--r--test/completion/hping2.exp1
-rw-r--r--test/completion/hping3.exp1
-rw-r--r--test/completion/htop.exp1
-rw-r--r--test/completion/htpasswd.exp1
-rw-r--r--test/completion/hwclock.exp1
-rw-r--r--test/completion/iconv.exp1
-rw-r--r--test/completion/id.exp1
-rw-r--r--test/completion/identify.exp1
-rw-r--r--test/completion/idn.exp1
-rw-r--r--test/completion/ifdown.exp1
-rw-r--r--test/completion/iftop.exp1
-rw-r--r--test/completion/ifup.exp1
-rw-r--r--test/completion/import.exp1
-rw-r--r--test/completion/info.exp1
-rw-r--r--test/completion/inject.exp3
-rw-r--r--test/completion/insmod.exp1
-rw-r--r--test/completion/installpkg.exp1
-rw-r--r--test/completion/interdiff.exp1
-rw-r--r--test/completion/invoke-rc.d.exp1
-rw-r--r--test/completion/ionice.exp1
-rw-r--r--test/completion/ip.exp1
-rw-r--r--test/completion/iperf.exp1
-rw-r--r--test/completion/ipmitool.exp1
-rw-r--r--test/completion/ipsec.exp1
-rw-r--r--test/completion/iptables.exp1
-rw-r--r--test/completion/ipv6calc.exp1
-rw-r--r--test/completion/irb.exp1
-rw-r--r--test/completion/iscsiadm.exp1
-rw-r--r--test/completion/isql.exp1
-rw-r--r--test/completion/iwconfig.exp1
-rw-r--r--test/completion/iwlist.exp1
-rw-r--r--test/completion/iwpriv.exp1
-rw-r--r--test/completion/iwspy.exp1
-rw-r--r--test/completion/jar.exp1
-rw-r--r--test/completion/jarsigner.exp1
-rw-r--r--test/completion/java.exp1
-rw-r--r--test/completion/javac.exp1
-rw-r--r--test/completion/javadoc.exp1
-rw-r--r--test/completion/javaws.exp1
-rw-r--r--test/completion/jpegoptim.exp1
-rw-r--r--test/completion/jps.exp1
-rw-r--r--test/completion/jshint.exp1
-rw-r--r--test/completion/k3b.exp1
-rw-r--r--test/completion/kcov.exp1
-rw-r--r--test/completion/kdvi.exp1
-rw-r--r--test/completion/kill.exp1
-rw-r--r--test/completion/killall.exp1
-rw-r--r--test/completion/kldload.exp1
-rw-r--r--test/completion/kldunload.exp1
-rw-r--r--test/completion/koji.exp1
-rw-r--r--test/completion/kpdf.exp1
-rw-r--r--test/completion/kplayer.exp1
-rw-r--r--test/completion/ktutil.exp1
-rw-r--r--test/completion/l2ping.exp1
-rw-r--r--test/completion/larch.exp1
-rw-r--r--test/completion/lastlog.exp1
-rw-r--r--test/completion/ld.exp1
-rw-r--r--test/completion/ldapadd.exp1
-rw-r--r--test/completion/ldapcompare.exp1
-rw-r--r--test/completion/ldapdelete.exp1
-rw-r--r--test/completion/ldapmodrdn.exp1
-rw-r--r--test/completion/ldappasswd.exp1
-rw-r--r--test/completion/ldapsearch.exp1
-rw-r--r--test/completion/ldapvi.exp1
-rw-r--r--test/completion/ldapwhoami.exp1
-rw-r--r--test/completion/ldd.exp1
-rw-r--r--test/completion/less.exp1
-rw-r--r--test/completion/lftp.exp1
-rw-r--r--test/completion/lftpget.exp1
-rw-r--r--test/completion/lilo.exp1
-rw-r--r--test/completion/links.exp1
-rw-r--r--test/completion/lintian-info.exp1
-rw-r--r--test/completion/lintian.exp1
-rw-r--r--test/completion/lisp.exp1
-rw-r--r--test/completion/list_admins.exp1
-rw-r--r--test/completion/list_lists.exp1
-rw-r--r--test/completion/list_members.exp1
-rw-r--r--test/completion/list_owners.exp3
-rw-r--r--test/completion/ln.exp1
-rw-r--r--test/completion/look.exp1
-rw-r--r--test/completion/lpq.exp1
-rw-r--r--test/completion/lpr.exp1
-rw-r--r--test/completion/lrzip.exp1
-rw-r--r--test/completion/ls.exp1
-rw-r--r--test/completion/lsof.exp1
-rw-r--r--test/completion/lspci.exp1
-rw-r--r--test/completion/lsscsi.exp1
-rw-r--r--test/completion/lsusb.exp1
-rw-r--r--test/completion/lua.exp1
-rw-r--r--test/completion/luac.exp1
-rw-r--r--test/completion/luseradd.exp1
-rw-r--r--test/completion/luserdel.exp1
-rw-r--r--test/completion/lusermod.exp1
-rw-r--r--test/completion/lvchange.exp1
-rw-r--r--test/completion/lvcreate.exp1
-rw-r--r--test/completion/lvdisplay.exp1
-rw-r--r--test/completion/lvextend.exp1
-rw-r--r--test/completion/lvm.exp1
-rw-r--r--test/completion/lvmdiskscan.exp1
-rw-r--r--test/completion/lvreduce.exp1
-rw-r--r--test/completion/lvremove.exp1
-rw-r--r--test/completion/lvrename.exp1
-rw-r--r--test/completion/lvresize.exp1
-rw-r--r--test/completion/lvs.exp1
-rw-r--r--test/completion/lvscan.exp1
-rw-r--r--test/completion/lz4.exp1
-rw-r--r--test/completion/lzip.exp1
-rw-r--r--test/completion/lzma.exp1
-rw-r--r--test/completion/lzop.exp1
-rw-r--r--test/completion/m4.exp1
-rw-r--r--test/completion/macof.exp1
-rw-r--r--test/completion/mailmanctl.exp3
-rw-r--r--test/completion/mailsnarf.exp1
-rw-r--r--test/completion/make.exp1
-rw-r--r--test/completion/makepkg.exp1
-rw-r--r--test/completion/man.exp1
-rw-r--r--test/completion/mc.exp1
-rw-r--r--test/completion/mcrypt.exp1
-rw-r--r--test/completion/md5sum.exp1
-rw-r--r--test/completion/mdadm.exp1
-rw-r--r--test/completion/mdecrypt.exp1
-rw-r--r--test/completion/mdtool.exp1
-rw-r--r--test/completion/medusa.exp1
-rw-r--r--test/completion/mencoder.exp1
-rw-r--r--test/completion/mii-diag.exp1
-rw-r--r--test/completion/mii-tool.exp1
-rw-r--r--test/completion/minicom.exp1
-rw-r--r--test/completion/mkdir.exp1
-rw-r--r--test/completion/mkfifo.exp1
-rw-r--r--test/completion/mkinitrd.exp1
-rw-r--r--test/completion/mkisofs.exp1
-rw-r--r--test/completion/mknod.exp1
-rw-r--r--test/completion/mktemp.exp1
-rw-r--r--test/completion/mmsitepass.exp1
-rw-r--r--test/completion/mock.exp1
-rw-r--r--test/completion/modinfo.exp1
-rw-r--r--test/completion/modprobe.exp1
-rw-r--r--test/completion/module.exp1
-rw-r--r--test/completion/mogrify.exp1
-rw-r--r--test/completion/monodevelop.exp1
-rw-r--r--test/completion/montage.exp1
-rw-r--r--test/completion/mount.exp1
-rw-r--r--test/completion/mplayer.exp1
-rw-r--r--test/completion/mr.exp1
-rw-r--r--test/completion/msgsnarf.exp1
-rw-r--r--test/completion/msynctool.exp1
-rw-r--r--test/completion/mtx.exp1
-rw-r--r--test/completion/munin-node-configure.exp1
-rw-r--r--test/completion/munin-run.exp1
-rw-r--r--test/completion/munindoc.exp1
-rw-r--r--test/completion/mussh.exp1
-rw-r--r--test/completion/mutt.exp1
-rw-r--r--test/completion/muttng.exp1
-rw-r--r--test/completion/mv.exp1
-rw-r--r--test/completion/mysql.exp1
-rw-r--r--test/completion/mysqladmin.exp1
-rw-r--r--test/completion/nc.exp1
-rw-r--r--test/completion/ncftp.exp1
-rw-r--r--test/completion/nethogs.exp1
-rw-r--r--test/completion/netstat.exp1
-rw-r--r--test/completion/newgrp.exp1
-rw-r--r--test/completion/newlist.exp1
-rw-r--r--test/completion/newusers.exp1
-rw-r--r--test/completion/ngrep.exp1
-rw-r--r--test/completion/nl.exp1
-rw-r--r--test/completion/nm.exp1
-rw-r--r--test/completion/nmap.exp1
-rw-r--r--test/completion/nmcli.exp1
-rw-r--r--test/completion/nproc.exp1
-rw-r--r--test/completion/nslookup.exp1
-rw-r--r--test/completion/ntpdate.exp1
-rw-r--r--test/completion/objcopy.exp1
-rw-r--r--test/completion/objdump.exp1
-rw-r--r--test/completion/od.exp1
-rw-r--r--test/completion/oggdec.exp1
-rw-r--r--test/completion/openssl.exp1
-rw-r--r--test/completion/opera.exp1
-rw-r--r--test/completion/optipng.exp1
-rw-r--r--test/completion/p4.exp1
-rw-r--r--test/completion/pack200.exp1
-rw-r--r--test/completion/passwd.exp1
-rw-r--r--test/completion/paste.exp1
-rw-r--r--test/completion/patch.exp1
-rw-r--r--test/completion/pdftotext.exp1
-rw-r--r--test/completion/perl.exp1
-rw-r--r--test/completion/perldoc.exp1
-rw-r--r--test/completion/perltidy.exp1
-rw-r--r--test/completion/pgrep.exp1
-rw-r--r--test/completion/phing.exp1
-rw-r--r--test/completion/pidof.exp1
-rw-r--r--test/completion/pine.exp1
-rw-r--r--test/completion/pinfo.exp1
-rw-r--r--test/completion/ping.exp1
-rw-r--r--test/completion/pkg-config.exp1
-rw-r--r--test/completion/pkg-get.exp1
-rw-r--r--test/completion/pkg_deinstall.exp1
-rw-r--r--test/completion/pkg_delete.exp1
-rw-r--r--test/completion/pkg_info.exp1
-rw-r--r--test/completion/pkgadd.exp1
-rw-r--r--test/completion/pkgrm.exp1
-rw-r--r--test/completion/pkgtool.exp1
-rw-r--r--test/completion/pkgutil.exp1
-rw-r--r--test/completion/pkill.exp1
-rw-r--r--test/completion/plague-client.exp1
-rw-r--r--test/completion/pm-hibernate.exp1
-rw-r--r--test/completion/pm-is-supported.exp1
-rw-r--r--test/completion/pm-powersave.exp1
-rw-r--r--test/completion/pngfix.exp1
-rw-r--r--test/completion/portinstall.exp1
-rw-r--r--test/completion/portsnap.exp1
-rw-r--r--test/completion/portupgrade.exp1
-rw-r--r--test/completion/postcat.exp1
-rw-r--r--test/completion/postconf.exp1
-rw-r--r--test/completion/postfix.exp1
-rw-r--r--test/completion/postmap.exp1
-rw-r--r--test/completion/postsuper.exp1
-rw-r--r--test/completion/povray.exp1
-rw-r--r--test/completion/pr.exp1
-rw-r--r--test/completion/prelink.exp1
-rw-r--r--test/completion/protoc.exp1
-rw-r--r--test/completion/psql.exp1
-rw-r--r--test/completion/ptx.exp1
-rw-r--r--test/completion/puppet.exp1
-rw-r--r--test/completion/pushd.exp1
-rw-r--r--test/completion/pv.exp1
-rw-r--r--test/completion/pvchange.exp1
-rw-r--r--test/completion/pvcreate.exp1
-rw-r--r--test/completion/pvdisplay.exp1
-rw-r--r--test/completion/pvmove.exp1
-rw-r--r--test/completion/pvremove.exp1
-rw-r--r--test/completion/pvs.exp1
-rw-r--r--test/completion/pvscan.exp1
-rw-r--r--test/completion/pwck.exp1
-rw-r--r--test/completion/pwd.exp1
-rw-r--r--test/completion/pwdx.exp1
-rw-r--r--test/completion/pwgen.exp1
-rw-r--r--test/completion/py.test.exp1
-rw-r--r--test/completion/pycodestyle.exp1
-rw-r--r--test/completion/pydoc.exp1
-rw-r--r--test/completion/pyflakes.exp1
-rw-r--r--test/completion/pylint.exp1
-rw-r--r--test/completion/python.exp1
-rw-r--r--test/completion/pyvenv.exp1
-rw-r--r--test/completion/qemu.exp1
-rw-r--r--test/completion/qrunner.exp3
-rw-r--r--test/completion/querybts.exp1
-rw-r--r--test/completion/quota.exp1
-rw-r--r--test/completion/quotacheck.exp1
-rw-r--r--test/completion/quotaon.exp1
-rw-r--r--test/completion/radvdump.exp1
-rw-r--r--test/completion/rcs.exp1
-rw-r--r--test/completion/rcsdiff.exp1
-rw-r--r--test/completion/rdesktop.exp1
-rw-r--r--test/completion/rdict.exp1
-rw-r--r--test/completion/readelf.exp1
-rw-r--r--test/completion/readonly.exp1
-rw-r--r--test/completion/remove_members.exp1
-rw-r--r--test/completion/removepkg.exp1
-rw-r--r--test/completion/renice.exp1
-rw-r--r--test/completion/repomanage.exp1
-rw-r--r--test/completion/reportbug.exp1
-rw-r--r--test/completion/reptyr.exp1
-rw-r--r--test/completion/resolvconf.exp1
-rw-r--r--test/completion/rfcomm.exp1
-rw-r--r--test/completion/rfkill.exp1
-rw-r--r--test/completion/ri.exp1
-rw-r--r--test/completion/rlog.exp1
-rw-r--r--test/completion/rm.exp1
-rw-r--r--test/completion/rmdir.exp1
-rw-r--r--test/completion/rmlist.exp1
-rw-r--r--test/completion/rmmod.exp1
-rw-r--r--test/completion/route.exp1
-rw-r--r--test/completion/rpcdebug.exp1
-rw-r--r--test/completion/rpm.exp1
-rw-r--r--test/completion/rpm2tgz.exp1
-rw-r--r--test/completion/rpmbuild.exp1
-rw-r--r--test/completion/rrdtool.exp1
-rw-r--r--test/completion/rsync.exp1
-rw-r--r--test/completion/rtcwake.exp1
-rw-r--r--test/completion/runuser.exp1
-rw-r--r--test/completion/sbcl-mt.exp1
-rw-r--r--test/completion/sbcl.exp1
-rw-r--r--test/completion/sbopkg.exp1
-rw-r--r--test/completion/screen.exp1
-rw-r--r--test/completion/sdptool.exp1
-rw-r--r--test/completion/sed.exp1
-rw-r--r--test/completion/seq.exp1
-rw-r--r--test/completion/service.exp1
-rw-r--r--test/completion/set.exp1
-rw-r--r--test/completion/setquota.exp1
-rw-r--r--test/completion/sh.exp1
-rw-r--r--test/completion/sha1sum.exp1
-rw-r--r--test/completion/shar.exp1
-rw-r--r--test/completion/sitecopy.exp1
-rw-r--r--test/completion/slackpkg.exp1
-rw-r--r--test/completion/smartctl.exp1
-rw-r--r--test/completion/smbcacls.exp1
-rw-r--r--test/completion/smbclient.exp1
-rw-r--r--test/completion/smbcquotas.exp1
-rw-r--r--test/completion/smbget.exp1
-rw-r--r--test/completion/smbpasswd.exp1
-rw-r--r--test/completion/smbtar.exp1
-rw-r--r--test/completion/smbtree.exp1
-rw-r--r--test/completion/snownews.exp1
-rw-r--r--test/completion/sort.exp1
-rw-r--r--test/completion/split.exp1
-rw-r--r--test/completion/spovray.exp1
-rw-r--r--test/completion/sqlite3.exp1
-rw-r--r--test/completion/ss.exp1
-rw-r--r--test/completion/ssh-add.exp1
-rw-r--r--test/completion/ssh-copy-id.exp1
-rw-r--r--test/completion/ssh-keygen.exp1
-rw-r--r--test/completion/sshfs.exp1
-rw-r--r--test/completion/sshmitm.exp1
-rw-r--r--test/completion/sshow.exp1
-rw-r--r--test/completion/strace.exp1
-rw-r--r--test/completion/stream.exp1
-rw-r--r--test/completion/strings.exp1
-rw-r--r--test/completion/strip.exp1
-rw-r--r--test/completion/su.exp1
-rw-r--r--test/completion/svcadm.exp1
-rw-r--r--test/completion/svk.exp1
-rw-r--r--test/completion/svn.exp1
-rw-r--r--test/completion/svnadmin.exp1
-rw-r--r--test/completion/svnlook.exp1
-rw-r--r--test/completion/sync_members.exp1
-rw-r--r--test/completion/synclient.exp1
-rw-r--r--test/completion/sysbench.exp1
-rw-r--r--test/completion/sysctl.exp1
-rw-r--r--test/completion/tac.exp1
-rw-r--r--test/completion/tail.exp1
-rw-r--r--test/completion/tar.exp1
-rw-r--r--test/completion/tcpdump.exp1
-rw-r--r--test/completion/tcpkill.exp1
-rw-r--r--test/completion/tcpnice.exp1
-rw-r--r--test/completion/tee.exp1
-rw-r--r--test/completion/texindex.exp1
-rw-r--r--test/completion/tightvncviewer.exp1
-rw-r--r--test/completion/time.exp1
-rw-r--r--test/completion/timeout.exp1
-rw-r--r--test/completion/tipc.exp1
-rw-r--r--test/completion/touch.exp1
-rw-r--r--test/completion/tox.exp1
-rw-r--r--test/completion/tr.exp1
-rw-r--r--test/completion/tracepath.exp1
-rw-r--r--test/completion/tshark.exp1
-rw-r--r--test/completion/tune2fs.exp1
-rw-r--r--test/completion/udevadm.exp1
-rw-r--r--test/completion/unace.exp1
-rw-r--r--test/completion/uname.exp1
-rw-r--r--test/completion/unexpand.exp1
-rw-r--r--test/completion/uniq.exp1
-rw-r--r--test/completion/units.exp1
-rw-r--r--test/completion/unpack200.exp1
-rw-r--r--test/completion/unrar.exp1
-rw-r--r--test/completion/unset.exp1
-rw-r--r--test/completion/unshunt.exp3
-rw-r--r--test/completion/update-alternatives.exp1
-rw-r--r--test/completion/update-rc.d.exp1
-rw-r--r--test/completion/urlsnarf.exp1
-rw-r--r--test/completion/uscan.exp1
-rw-r--r--test/completion/useradd.exp1
-rw-r--r--test/completion/userdel.exp1
-rw-r--r--test/completion/usermod.exp1
-rw-r--r--test/completion/valgrind.exp1
-rw-r--r--test/completion/vdir.exp1
-rw-r--r--test/completion/vgcfgbackup.exp1
-rw-r--r--test/completion/vgcfgrestore.exp1
-rw-r--r--test/completion/vgchange.exp1
-rw-r--r--test/completion/vgck.exp1
-rw-r--r--test/completion/vgconvert.exp1
-rw-r--r--test/completion/vgcreate.exp1
-rw-r--r--test/completion/vgdisplay.exp1
-rw-r--r--test/completion/vgexport.exp1
-rw-r--r--test/completion/vgextend.exp1
-rw-r--r--test/completion/vgimport.exp1
-rw-r--r--test/completion/vgmerge.exp1
-rw-r--r--test/completion/vgmknodes.exp1
-rw-r--r--test/completion/vgreduce.exp1
-rw-r--r--test/completion/vgremove.exp1
-rw-r--r--test/completion/vgrename.exp1
-rw-r--r--test/completion/vgs.exp1
-rw-r--r--test/completion/vgscan.exp1
-rw-r--r--test/completion/vgsplit.exp1
-rw-r--r--test/completion/vi.exp1
-rw-r--r--test/completion/vipw.exp1
-rw-r--r--test/completion/vmstat.exp1
-rw-r--r--test/completion/vncviewer.exp1
-rw-r--r--test/completion/vpnc.exp1
-rw-r--r--test/completion/watch.exp1
-rw-r--r--test/completion/wc.exp1
-rw-r--r--test/completion/webmitm.exp1
-rw-r--r--test/completion/wget.exp1
-rw-r--r--test/completion/who.exp1
-rw-r--r--test/completion/wine.exp1
-rw-r--r--test/completion/withlist.exp1
-rw-r--r--test/completion/wodim.exp1
-rw-r--r--test/completion/wol.exp1
-rw-r--r--test/completion/write.exp1
-rw-r--r--test/completion/wsimport.exp1
-rw-r--r--test/completion/wtf.exp1
-rw-r--r--test/completion/wvdial.exp1
-rw-r--r--test/completion/xdg-mime.exp1
-rw-r--r--test/completion/xdg-settings.exp1
-rw-r--r--test/completion/xfreerdp.exp1
-rw-r--r--test/completion/xgamma.exp1
-rw-r--r--test/completion/xm.exp1
-rw-r--r--test/completion/xmllint.exp1
-rw-r--r--test/completion/xmlwf.exp1
-rw-r--r--test/completion/xmms.exp1
-rw-r--r--test/completion/xmodmap.exp1
-rw-r--r--test/completion/xpovray.exp1
-rw-r--r--test/completion/xrandr.exp1
-rw-r--r--test/completion/xrdb.exp1
-rw-r--r--test/completion/xsltproc.exp1
-rw-r--r--test/completion/xvnc4viewer.exp1
-rw-r--r--test/completion/xxd.exp1
-rw-r--r--test/completion/xz.exp1
-rw-r--r--test/completion/xzdec.exp1
-rw-r--r--test/completion/ypcat.exp1
-rw-r--r--test/completion/ypmatch.exp1
-rw-r--r--test/completion/yum-arch.exp1
-rw-r--r--test/completion/yum.exp1
-rw-r--r--test/completion/zopfli.exp1
-rw-r--r--test/completion/zopflipng.exp1
-rw-r--r--test/docker/Dockerfile-tools3
-rwxr-xr-xtest/docker/docker-script.sh45
-rw-r--r--test/fixtures/_known_hosts_real/known_hosts1
-rw-r--r--test/fixtures/_longopt/grep--help.txt70
-rwxr-xr-xtest/fixtures/dnssec-keygen/dnssec-keygen76
-rw-r--r--test/fixtures/gdb/core0
-rw-r--r--test/fixtures/gdb/core-NOT0
-rw-r--r--test/fixtures/gdb/core.123450
-rw-r--r--test/fixtures/gdb/core.weston.1000.deadbeef.5308.15553621320000000
-rw-r--r--test/fixtures/gdb/corenot0
-rwxr-xr-xtest/generate124
-rw-r--r--test/lib/completions/2to3.exp18
-rw-r--r--test/lib/completions/7z.exp37
-rw-r--r--test/lib/completions/a2ps.exp20
-rw-r--r--test/lib/completions/a2x.exp20
-rw-r--r--test/lib/completions/abook.exp20
-rw-r--r--test/lib/completions/aclocal.exp20
-rw-r--r--test/lib/completions/acpi.exp18
-rw-r--r--test/lib/completions/acroread.exp20
-rw-r--r--test/lib/completions/adb.exp18
-rw-r--r--test/lib/completions/add_members.exp20
-rw-r--r--test/lib/completions/alias.exp12
-rw-r--r--test/lib/completions/alpine.exp18
-rw-r--r--test/lib/completions/animate.exp20
-rw-r--r--test/lib/completions/ant.exp39
-rw-r--r--test/lib/completions/apache2ctl.exp20
-rw-r--r--test/lib/completions/appdata-validate.exp18
-rw-r--r--test/lib/completions/apt-build.exp20
-rw-r--r--test/lib/completions/apt-cache.exp20
-rw-r--r--test/lib/completions/apt-get.exp29
-rw-r--r--test/lib/completions/aptitude.exp20
-rw-r--r--test/lib/completions/arch.exp18
-rw-r--r--test/lib/completions/arping.exp21
-rw-r--r--test/lib/completions/arpspoof.exp20
-rw-r--r--test/lib/completions/asciidoc.exp20
-rw-r--r--test/lib/completions/aspell.exp20
-rw-r--r--test/lib/completions/autoconf.exp20
-rw-r--r--test/lib/completions/autoheader.exp20
-rw-r--r--test/lib/completions/automake.exp20
-rw-r--r--test/lib/completions/autoreconf.exp20
-rw-r--r--test/lib/completions/autorpm.exp20
-rw-r--r--test/lib/completions/autoscan.exp20
-rw-r--r--test/lib/completions/autoupdate.exp20
-rw-r--r--test/lib/completions/avctrl.exp20
-rw-r--r--test/lib/completions/awk.exp20
-rw-r--r--test/lib/completions/badblocks.exp20
-rw-r--r--test/lib/completions/base64.exp20
-rw-r--r--test/lib/completions/bash.exp20
-rw-r--r--test/lib/completions/bc.exp20
-rw-r--r--test/lib/completions/bind.exp21
-rw-r--r--test/lib/completions/bison.exp20
-rw-r--r--test/lib/completions/bk.exp20
-rw-r--r--test/lib/completions/brctl.exp20
-rw-r--r--test/lib/completions/btdownloadcurses.py.exp20
-rw-r--r--test/lib/completions/btdownloadgui.py.exp20
-rw-r--r--test/lib/completions/btdownloadheadless.py.exp20
-rw-r--r--test/lib/completions/bts.exp21
-rw-r--r--test/lib/completions/bzip2.exp24
-rw-r--r--test/lib/completions/c++.exp20
-rw-r--r--test/lib/completions/cal.exp20
-rw-r--r--test/lib/completions/cancel.exp31
-rw-r--r--test/lib/completions/cardctl.exp20
-rw-r--r--test/lib/completions/cat.exp20
-rw-r--r--test/lib/completions/cc.exp20
-rw-r--r--test/lib/completions/ccache.exp43
-rw-r--r--test/lib/completions/ccze.exp27
-rw-r--r--test/lib/completions/cd.exp26
-rw-r--r--test/lib/completions/cdrecord.exp20
-rw-r--r--test/lib/completions/cfagent.exp20
-rw-r--r--test/lib/completions/cfrun.exp18
-rw-r--r--test/lib/completions/chage.exp20
-rw-r--r--test/lib/completions/change_pw.exp20
-rw-r--r--test/lib/completions/check_db.exp20
-rw-r--r--test/lib/completions/check_perms.exp20
-rw-r--r--test/lib/completions/checksec.exp18
-rw-r--r--test/lib/completions/chfn.exp18
-rw-r--r--test/lib/completions/chgrp.exp20
-rw-r--r--test/lib/completions/chkconfig.exp27
-rw-r--r--test/lib/completions/chown.exp36
-rw-r--r--test/lib/completions/chpasswd.exp20
-rw-r--r--test/lib/completions/chronyc.exp21
-rw-r--r--test/lib/completions/chroot.exp18
-rw-r--r--test/lib/completions/chrpath.exp21
-rw-r--r--test/lib/completions/chsh.exp26
-rw-r--r--test/lib/completions/ci.exp20
-rw-r--r--test/lib/completions/ciptool.exp20
-rw-r--r--test/lib/completions/civclient.exp20
-rw-r--r--test/lib/completions/civserver.exp20
-rw-r--r--test/lib/completions/cksfv.exp20
-rw-r--r--test/lib/completions/cleanarch.exp20
-rw-r--r--test/lib/completions/clisp.exp20
-rw-r--r--test/lib/completions/clone_member.exp20
-rw-r--r--test/lib/completions/co.exp20
-rw-r--r--test/lib/completions/compare.exp20
-rw-r--r--test/lib/completions/complete.exp18
-rw-r--r--test/lib/completions/composite.exp20
-rw-r--r--test/lib/completions/config_list.exp20
-rw-r--r--test/lib/completions/configure.exp24
-rw-r--r--test/lib/completions/conjure.exp20
-rw-r--r--test/lib/completions/convert.exp22
-rw-r--r--test/lib/completions/cowsay.exp20
-rw-r--r--test/lib/completions/cp.exp20
-rw-r--r--test/lib/completions/cpan2dist.exp18
-rw-r--r--test/lib/completions/cpio.exp26
-rw-r--r--test/lib/completions/cppcheck.exp42
-rw-r--r--test/lib/completions/createdb.exp18
-rw-r--r--test/lib/completions/createuser.exp18
-rw-r--r--test/lib/completions/crontab.exp20
-rw-r--r--test/lib/completions/cryptsetup.exp20
-rw-r--r--test/lib/completions/csplit.exp20
-rw-r--r--test/lib/completions/curl.exp20
-rw-r--r--test/lib/completions/cut.exp20
-rw-r--r--test/lib/completions/cvs.exp41
-rw-r--r--test/lib/completions/cvsps.exp36
-rw-r--r--test/lib/completions/date.exp20
-rw-r--r--test/lib/completions/dcop.exp22
-rw-r--r--test/lib/completions/dd.exp33
-rw-r--r--test/lib/completions/declare.exp26
-rw-r--r--test/lib/completions/deja-dup.exp21
-rw-r--r--test/lib/completions/desktop-file-validate.exp20
-rw-r--r--test/lib/completions/df.exp20
-rw-r--r--test/lib/completions/dfutool.exp20
-rw-r--r--test/lib/completions/dhclient.exp20
-rw-r--r--test/lib/completions/dict.exp20
-rw-r--r--test/lib/completions/diff.exp20
-rw-r--r--test/lib/completions/dir.exp20
-rw-r--r--test/lib/completions/display.exp26
-rw-r--r--test/lib/completions/dmesg.exp18
-rw-r--r--test/lib/completions/dnsspoof.exp20
-rw-r--r--test/lib/completions/dot.exp20
-rw-r--r--test/lib/completions/dpkg-deb.exp20
-rw-r--r--test/lib/completions/dpkg-reconfigure.exp20
-rw-r--r--test/lib/completions/dpkg-source.exp20
-rw-r--r--test/lib/completions/dpkg.exp29
-rw-r--r--test/lib/completions/dropdb.exp18
-rw-r--r--test/lib/completions/dropuser.exp18
-rw-r--r--test/lib/completions/dselect.exp20
-rw-r--r--test/lib/completions/dsniff.exp20
-rw-r--r--test/lib/completions/du.exp20
-rw-r--r--test/lib/completions/dumpdb.exp20
-rw-r--r--test/lib/completions/dumpe2fs.exp20
-rw-r--r--test/lib/completions/e2freefrag.exp20
-rw-r--r--test/lib/completions/e2label.exp20
-rw-r--r--test/lib/completions/ebtables.exp18
-rw-r--r--test/lib/completions/eject.exp18
-rw-r--r--test/lib/completions/enscript.exp20
-rw-r--r--test/lib/completions/env.exp22
-rw-r--r--test/lib/completions/eog.exp18
-rw-r--r--test/lib/completions/ether-wake.exp20
-rw-r--r--test/lib/completions/evince.exp35
-rw-r--r--test/lib/completions/expand.exp22
-rw-r--r--test/lib/completions/explodepkg.exp25
-rw-r--r--test/lib/completions/export.exp55
-rw-r--r--test/lib/completions/faillog.exp20
-rw-r--r--test/lib/completions/fbgs.exp20
-rw-r--r--test/lib/completions/fbi.exp20
-rw-r--r--test/lib/completions/feh.exp57
-rw-r--r--test/lib/completions/file-roller.exp18
-rw-r--r--test/lib/completions/file.exp21
-rw-r--r--test/lib/completions/filefrag.exp20
-rw-r--r--test/lib/completions/filesnarf.exp20
-rw-r--r--test/lib/completions/find.exp78
-rw-r--r--test/lib/completions/find_member.exp20
-rw-r--r--test/lib/completions/finger.exp9
-rw-r--r--test/lib/completions/flake8.exp24
-rw-r--r--test/lib/completions/fmt.exp22
-rw-r--r--test/lib/completions/fold.exp22
-rw-r--r--test/lib/completions/freebsd-update.exp18
-rw-r--r--test/lib/completions/freeciv-gtk2.exp18
-rw-r--r--test/lib/completions/freeciv-server.exp18
-rw-r--r--test/lib/completions/freerdp.exp20
-rw-r--r--test/lib/completions/function.exp18
-rw-r--r--test/lib/completions/fusermount.exp20
-rw-r--r--test/lib/completions/g++.exp20
-rw-r--r--test/lib/completions/g4.exp20
-rw-r--r--test/lib/completions/g77.exp20
-rw-r--r--test/lib/completions/gcc.exp20
-rw-r--r--test/lib/completions/gcj.exp20
-rw-r--r--test/lib/completions/gcl.exp20
-rw-r--r--test/lib/completions/gdb.exp20
-rw-r--r--test/lib/completions/genaliases.exp20
-rw-r--r--test/lib/completions/gendiff.exp20
-rw-r--r--test/lib/completions/genisoimage.exp18
-rw-r--r--test/lib/completions/geoiplookup.exp18
-rw-r--r--test/lib/completions/getconf.exp30
-rw-r--r--test/lib/completions/getent.exp20
-rw-r--r--test/lib/completions/gkrellm.exp20
-rw-r--r--test/lib/completions/gm.exp27
-rw-r--r--test/lib/completions/gmplayer.exp20
-rw-r--r--test/lib/completions/gnatmake.exp20
-rw-r--r--test/lib/completions/gnokii.exp18
-rw-r--r--test/lib/completions/gnome-mplayer.exp20
-rw-r--r--test/lib/completions/gpasswd.exp20
-rw-r--r--test/lib/completions/gpc.exp20
-rw-r--r--test/lib/completions/gperf.exp20
-rw-r--r--test/lib/completions/gpg.exp20
-rw-r--r--test/lib/completions/gpg2.exp18
-rw-r--r--test/lib/completions/gphoto2.exp18
-rw-r--r--test/lib/completions/gprof.exp22
-rw-r--r--test/lib/completions/grep.exp20
-rw-r--r--test/lib/completions/groupadd.exp21
-rw-r--r--test/lib/completions/groupdel.exp18
-rw-r--r--test/lib/completions/groupmems.exp18
-rw-r--r--test/lib/completions/groupmod.exp21
-rw-r--r--test/lib/completions/growisofs.exp20
-rw-r--r--test/lib/completions/grpck.exp20
-rw-r--r--test/lib/completions/grub.exp20
-rw-r--r--test/lib/completions/gzip.exp32
-rw-r--r--test/lib/completions/hciattach.exp20
-rw-r--r--test/lib/completions/hciconfig.exp20
-rw-r--r--test/lib/completions/hcitool.exp20
-rw-r--r--test/lib/completions/hddtemp.exp20
-rw-r--r--test/lib/completions/head.exp22
-rw-r--r--test/lib/completions/hexdump.exp18
-rw-r--r--test/lib/completions/hid2hci.exp18
-rw-r--r--test/lib/completions/host.exp20
-rw-r--r--test/lib/completions/hostname.exp18
-rw-r--r--test/lib/completions/hping2.exp20
-rw-r--r--test/lib/completions/hping3.exp18
-rw-r--r--test/lib/completions/htop.exp20
-rw-r--r--test/lib/completions/htpasswd.exp32
-rw-r--r--test/lib/completions/hwclock.exp18
-rw-r--r--test/lib/completions/iconv.exp20
-rw-r--r--test/lib/completions/id.exp20
-rw-r--r--test/lib/completions/identify.exp20
-rw-r--r--test/lib/completions/idn.exp20
-rw-r--r--test/lib/completions/ifdown.exp25
-rw-r--r--test/lib/completions/iftop.exp20
-rw-r--r--test/lib/completions/ifup.exp25
-rw-r--r--test/lib/completions/import.exp20
-rw-r--r--test/lib/completions/info.exp23
-rw-r--r--test/lib/completions/inject.exp20
-rw-r--r--test/lib/completions/insmod.exp20
-rw-r--r--test/lib/completions/installpkg.exp49
-rw-r--r--test/lib/completions/interdiff.exp18
-rw-r--r--test/lib/completions/invoke-rc.d.exp20
-rw-r--r--test/lib/completions/ionice.exp18
-rw-r--r--test/lib/completions/ip.exp21
-rw-r--r--test/lib/completions/iperf.exp20
-rw-r--r--test/lib/completions/ipmitool.exp20
-rw-r--r--test/lib/completions/ipsec.exp20
-rw-r--r--test/lib/completions/iptables.exp18
-rw-r--r--test/lib/completions/ipv6calc.exp26
-rw-r--r--test/lib/completions/irb.exp20
-rw-r--r--test/lib/completions/iscsiadm.exp20
-rw-r--r--test/lib/completions/isql.exp23
-rw-r--r--test/lib/completions/iwconfig.exp20
-rw-r--r--test/lib/completions/iwlist.exp20
-rw-r--r--test/lib/completions/iwpriv.exp20
-rw-r--r--test/lib/completions/iwspy.exp20
-rw-r--r--test/lib/completions/jar.exp20
-rw-r--r--test/lib/completions/jarsigner.exp20
-rw-r--r--test/lib/completions/java.exp53
-rw-r--r--test/lib/completions/javac.exp21
-rw-r--r--test/lib/completions/javadoc.exp26
-rw-r--r--test/lib/completions/javaws.exp20
-rw-r--r--test/lib/completions/jpegoptim.exp18
-rw-r--r--test/lib/completions/jps.exp20
-rw-r--r--test/lib/completions/jshint.exp18
-rw-r--r--test/lib/completions/k3b.exp20
-rw-r--r--test/lib/completions/kcov.exp25
-rw-r--r--test/lib/completions/kdvi.exp27
-rw-r--r--test/lib/completions/kill.exp30
-rw-r--r--test/lib/completions/killall.exp23
-rw-r--r--test/lib/completions/kldload.exp20
-rw-r--r--test/lib/completions/kldunload.exp24
-rw-r--r--test/lib/completions/koji.exp22
-rw-r--r--test/lib/completions/kpdf.exp26
-rw-r--r--test/lib/completions/kplayer.exp20
-rw-r--r--test/lib/completions/ktutil.exp21
-rw-r--r--test/lib/completions/l2ping.exp20
-rw-r--r--test/lib/completions/larch.exp20
-rw-r--r--test/lib/completions/lastlog.exp20
-rw-r--r--test/lib/completions/ld.exp20
-rw-r--r--test/lib/completions/ldapadd.exp20
-rw-r--r--test/lib/completions/ldapcompare.exp20
-rw-r--r--test/lib/completions/ldapdelete.exp20
-rw-r--r--test/lib/completions/ldapmodrdn.exp20
-rw-r--r--test/lib/completions/ldappasswd.exp20
-rw-r--r--test/lib/completions/ldapsearch.exp20
-rw-r--r--test/lib/completions/ldapvi.exp20
-rw-r--r--test/lib/completions/ldapwhoami.exp20
-rw-r--r--test/lib/completions/ldd.exp20
-rw-r--r--test/lib/completions/less.exp20
-rw-r--r--test/lib/completions/lftp.exp24
-rw-r--r--test/lib/completions/lftpget.exp20
-rw-r--r--test/lib/completions/lilo.exp20
-rw-r--r--test/lib/completions/links.exp20
-rw-r--r--test/lib/completions/lintian-info.exp21
-rw-r--r--test/lib/completions/lintian.exp18
-rw-r--r--test/lib/completions/lisp.exp20
-rw-r--r--test/lib/completions/list_admins.exp20
-rw-r--r--test/lib/completions/list_lists.exp20
-rw-r--r--test/lib/completions/list_members.exp20
-rw-r--r--test/lib/completions/list_owners.exp20
-rw-r--r--test/lib/completions/ln.exp20
-rw-r--r--test/lib/completions/look.exp22
-rw-r--r--test/lib/completions/lpq.exp20
-rw-r--r--test/lib/completions/lpr.exp20
-rw-r--r--test/lib/completions/lrzip.exp24
-rw-r--r--test/lib/completions/ls.exp36
-rw-r--r--test/lib/completions/lsof.exp21
-rw-r--r--test/lib/completions/lspci.exp21
-rw-r--r--test/lib/completions/lsscsi.exp21
-rw-r--r--test/lib/completions/lsusb.exp18
-rw-r--r--test/lib/completions/lua.exp18
-rw-r--r--test/lib/completions/luac.exp18
-rw-r--r--test/lib/completions/luseradd.exp18
-rw-r--r--test/lib/completions/luserdel.exp18
-rw-r--r--test/lib/completions/lusermod.exp18
-rw-r--r--test/lib/completions/lvchange.exp22
-rw-r--r--test/lib/completions/lvcreate.exp22
-rw-r--r--test/lib/completions/lvdisplay.exp22
-rw-r--r--test/lib/completions/lvextend.exp22
-rw-r--r--test/lib/completions/lvm.exp20
-rw-r--r--test/lib/completions/lvmdiskscan.exp22
-rw-r--r--test/lib/completions/lvreduce.exp22
-rw-r--r--test/lib/completions/lvremove.exp22
-rw-r--r--test/lib/completions/lvrename.exp22
-rw-r--r--test/lib/completions/lvresize.exp22
-rw-r--r--test/lib/completions/lvs.exp22
-rw-r--r--test/lib/completions/lvscan.exp22
-rw-r--r--test/lib/completions/lz4.exp21
-rw-r--r--test/lib/completions/lzip.exp20
-rw-r--r--test/lib/completions/lzma.exp30
-rw-r--r--test/lib/completions/lzop.exp24
-rw-r--r--test/lib/completions/m4.exp22
-rw-r--r--test/lib/completions/macof.exp20
-rw-r--r--test/lib/completions/mailmanctl.exp20
-rw-r--r--test/lib/completions/mailsnarf.exp20
-rw-r--r--test/lib/completions/make.exp77
-rw-r--r--test/lib/completions/makepkg.exp28
-rw-r--r--test/lib/completions/man.exp76
-rw-r--r--test/lib/completions/mc.exp20
-rw-r--r--test/lib/completions/mcrypt.exp24
-rw-r--r--test/lib/completions/md5sum.exp20
-rw-r--r--test/lib/completions/mdadm.exp18
-rw-r--r--test/lib/completions/mdecrypt.exp20
-rw-r--r--test/lib/completions/mdtool.exp20
-rw-r--r--test/lib/completions/medusa.exp20
-rw-r--r--test/lib/completions/mencoder.exp25
-rw-r--r--test/lib/completions/mii-diag.exp20
-rw-r--r--test/lib/completions/mii-tool.exp20
-rw-r--r--test/lib/completions/minicom.exp20
-rw-r--r--test/lib/completions/mkdir.exp33
-rw-r--r--test/lib/completions/mkfifo.exp20
-rw-r--r--test/lib/completions/mkinitrd.exp20
-rw-r--r--test/lib/completions/mkisofs.exp48
-rw-r--r--test/lib/completions/mknod.exp20
-rw-r--r--test/lib/completions/mktemp.exp20
-rw-r--r--test/lib/completions/mmsitepass.exp20
-rw-r--r--test/lib/completions/mock.exp18
-rw-r--r--test/lib/completions/modinfo.exp38
-rw-r--r--test/lib/completions/modprobe.exp52
-rw-r--r--test/lib/completions/module.exp20
-rw-r--r--test/lib/completions/mogrify.exp20
-rw-r--r--test/lib/completions/monodevelop.exp20
-rw-r--r--test/lib/completions/montage.exp20
-rw-r--r--test/lib/completions/mount.exp46
-rw-r--r--test/lib/completions/mplayer.exp25
-rw-r--r--test/lib/completions/mr.exp46
-rw-r--r--test/lib/completions/msgsnarf.exp20
-rw-r--r--test/lib/completions/msynctool.exp20
-rw-r--r--test/lib/completions/mtx.exp20
-rw-r--r--test/lib/completions/munin-node-configure.exp18
-rw-r--r--test/lib/completions/munin-run.exp18
-rw-r--r--test/lib/completions/munindoc.exp19
-rw-r--r--test/lib/completions/mussh.exp18
-rw-r--r--test/lib/completions/mutt.exp43
-rw-r--r--test/lib/completions/muttng.exp20
-rw-r--r--test/lib/completions/mv.exp20
-rw-r--r--test/lib/completions/mysql.exp22
-rw-r--r--test/lib/completions/mysqladmin.exp20
-rw-r--r--test/lib/completions/nc.exp18
-rw-r--r--test/lib/completions/ncftp.exp22
-rw-r--r--test/lib/completions/nethogs.exp20
-rw-r--r--test/lib/completions/netstat.exp20
-rw-r--r--test/lib/completions/newgrp.exp18
-rw-r--r--test/lib/completions/newlist.exp20
-rw-r--r--test/lib/completions/newusers.exp20
-rw-r--r--test/lib/completions/ngrep.exp21
-rw-r--r--test/lib/completions/nl.exp20
-rw-r--r--test/lib/completions/nm.exp20
-rw-r--r--test/lib/completions/nmap.exp18
-rw-r--r--test/lib/completions/nmcli.exp18
-rw-r--r--test/lib/completions/nproc.exp21
-rw-r--r--test/lib/completions/nslookup.exp20
-rw-r--r--test/lib/completions/ntpdate.exp20
-rw-r--r--test/lib/completions/objcopy.exp20
-rw-r--r--test/lib/completions/objdump.exp20
-rw-r--r--test/lib/completions/od.exp20
-rw-r--r--test/lib/completions/oggdec.exp21
-rw-r--r--test/lib/completions/openssl.exp35
-rw-r--r--test/lib/completions/opera.exp18
-rw-r--r--test/lib/completions/optipng.exp18
-rw-r--r--test/lib/completions/p4.exp20
-rw-r--r--test/lib/completions/pack200.exp20
-rw-r--r--test/lib/completions/passwd.exp20
-rw-r--r--test/lib/completions/paste.exp20
-rw-r--r--test/lib/completions/patch.exp20
-rw-r--r--test/lib/completions/pdftotext.exp18
-rw-r--r--test/lib/completions/perl.exp131
-rw-r--r--test/lib/completions/perldoc.exp39
-rw-r--r--test/lib/completions/perltidy.exp27
-rw-r--r--test/lib/completions/pgrep.exp19
-rw-r--r--test/lib/completions/phing.exp20
-rw-r--r--test/lib/completions/pidof.exp19
-rw-r--r--test/lib/completions/pine.exp18
-rw-r--r--test/lib/completions/pinfo.exp23
-rw-r--r--test/lib/completions/ping.exp21
-rw-r--r--test/lib/completions/pkg-config.exp20
-rw-r--r--test/lib/completions/pkg-get.exp18
-rw-r--r--test/lib/completions/pkg_deinstall.exp22
-rw-r--r--test/lib/completions/pkg_delete.exp20
-rw-r--r--test/lib/completions/pkg_info.exp20
-rw-r--r--test/lib/completions/pkgadd.exp18
-rw-r--r--test/lib/completions/pkgrm.exp18
-rw-r--r--test/lib/completions/pkgtool.exp20
-rw-r--r--test/lib/completions/pkgutil.exp18
-rw-r--r--test/lib/completions/pkill.exp20
-rw-r--r--test/lib/completions/plague-client.exp20
-rw-r--r--test/lib/completions/pm-hibernate.exp18
-rw-r--r--test/lib/completions/pm-is-supported.exp18
-rw-r--r--test/lib/completions/pm-powersave.exp18
-rw-r--r--test/lib/completions/pngfix.exp21
-rw-r--r--test/lib/completions/portinstall.exp22
-rw-r--r--test/lib/completions/portsnap.exp18
-rw-r--r--test/lib/completions/portupgrade.exp21
-rw-r--r--test/lib/completions/postcat.exp20
-rw-r--r--test/lib/completions/postconf.exp29
-rw-r--r--test/lib/completions/postfix.exp20
-rw-r--r--test/lib/completions/postmap.exp20
-rw-r--r--test/lib/completions/postsuper.exp20
-rw-r--r--test/lib/completions/povray.exp20
-rw-r--r--test/lib/completions/pr.exp20
-rw-r--r--test/lib/completions/prelink.exp21
-rw-r--r--test/lib/completions/protoc.exp20
-rw-r--r--test/lib/completions/psql.exp20
-rw-r--r--test/lib/completions/ptx.exp20
-rw-r--r--test/lib/completions/puppet.exp21
-rw-r--r--test/lib/completions/pushd.exp18
-rw-r--r--test/lib/completions/pv.exp24
-rw-r--r--test/lib/completions/pvchange.exp22
-rw-r--r--test/lib/completions/pvcreate.exp22
-rw-r--r--test/lib/completions/pvdisplay.exp22
-rw-r--r--test/lib/completions/pvmove.exp20
-rw-r--r--test/lib/completions/pvremove.exp22
-rw-r--r--test/lib/completions/pvs.exp22
-rw-r--r--test/lib/completions/pvscan.exp20
-rw-r--r--test/lib/completions/pwck.exp20
-rw-r--r--test/lib/completions/pwd.exp18
-rw-r--r--test/lib/completions/pwdx.exp20
-rw-r--r--test/lib/completions/pwgen.exp20
-rw-r--r--test/lib/completions/py.test.exp21
-rw-r--r--test/lib/completions/pycodestyle.exp24
-rw-r--r--test/lib/completions/pydoc.exp18
-rw-r--r--test/lib/completions/pyflakes.exp18
-rw-r--r--test/lib/completions/pylint.exp18
-rw-r--r--test/lib/completions/python.exp48
-rw-r--r--test/lib/completions/pyvenv.exp18
-rw-r--r--test/lib/completions/qemu.exp20
-rw-r--r--test/lib/completions/qrunner.exp20
-rw-r--r--test/lib/completions/querybts.exp20
-rw-r--r--test/lib/completions/quota.exp20
-rw-r--r--test/lib/completions/quotacheck.exp20
-rw-r--r--test/lib/completions/quotaon.exp20
-rw-r--r--test/lib/completions/radvdump.exp18
-rw-r--r--test/lib/completions/rcs.exp20
-rw-r--r--test/lib/completions/rcsdiff.exp20
-rw-r--r--test/lib/completions/rdesktop.exp20
-rw-r--r--test/lib/completions/rdict.exp20
-rw-r--r--test/lib/completions/readelf.exp20
-rw-r--r--test/lib/completions/readonly.exp20
-rw-r--r--test/lib/completions/remove_members.exp20
-rw-r--r--test/lib/completions/removepkg.exp35
-rw-r--r--test/lib/completions/renice.exp25
-rw-r--r--test/lib/completions/repomanage.exp18
-rw-r--r--test/lib/completions/reportbug.exp20
-rw-r--r--test/lib/completions/reptyr.exp22
-rw-r--r--test/lib/completions/resolvconf.exp18
-rw-r--r--test/lib/completions/rfcomm.exp20
-rw-r--r--test/lib/completions/rfkill.exp21
-rw-r--r--test/lib/completions/ri.exp26
-rw-r--r--test/lib/completions/rlog.exp20
-rw-r--r--test/lib/completions/rm.exp20
-rw-r--r--test/lib/completions/rmdir.exp26
-rw-r--r--test/lib/completions/rmlist.exp20
-rw-r--r--test/lib/completions/rmmod.exp18
-rw-r--r--test/lib/completions/route.exp20
-rw-r--r--test/lib/completions/rpcdebug.exp20
-rw-r--r--test/lib/completions/rpm.exp29
-rw-r--r--test/lib/completions/rpm2tgz.exp31
-rw-r--r--test/lib/completions/rpmbuild.exp20
-rw-r--r--test/lib/completions/rrdtool.exp18
-rw-r--r--test/lib/completions/rsync.exp28
-rw-r--r--test/lib/completions/rtcwake.exp18
-rw-r--r--test/lib/completions/runuser.exp18
-rw-r--r--test/lib/completions/sbcl-mt.exp20
-rw-r--r--test/lib/completions/sbcl.exp20
-rw-r--r--test/lib/completions/sbopkg.exp20
-rw-r--r--test/lib/completions/scp.exp6
-rw-r--r--test/lib/completions/screen.exp36
-rw-r--r--test/lib/completions/sdptool.exp20
-rw-r--r--test/lib/completions/sed.exp22
-rw-r--r--test/lib/completions/seq.exp20
-rw-r--r--test/lib/completions/service.exp20
-rw-r--r--test/lib/completions/set.exp20
-rw-r--r--test/lib/completions/setquota.exp20
-rw-r--r--test/lib/completions/sftp.exp4
-rw-r--r--test/lib/completions/sh.exp38
-rw-r--r--test/lib/completions/sha1sum.exp20
-rw-r--r--test/lib/completions/shar.exp20
-rw-r--r--test/lib/completions/sitecopy.exp20
-rw-r--r--test/lib/completions/slackpkg.exp20
-rw-r--r--test/lib/completions/slapt-get.exp20
-rw-r--r--test/lib/completions/slapt-src.exp20
-rw-r--r--test/lib/completions/smartctl.exp20
-rw-r--r--test/lib/completions/smbcacls.exp20
-rw-r--r--test/lib/completions/smbclient.exp20
-rw-r--r--test/lib/completions/smbcquotas.exp20
-rw-r--r--test/lib/completions/smbget.exp20
-rw-r--r--test/lib/completions/smbpasswd.exp20
-rw-r--r--test/lib/completions/smbtar.exp20
-rw-r--r--test/lib/completions/smbtree.exp20
-rw-r--r--test/lib/completions/snownews.exp20
-rw-r--r--test/lib/completions/sort.exp20
-rw-r--r--test/lib/completions/split.exp22
-rw-r--r--test/lib/completions/spovray.exp20
-rw-r--r--test/lib/completions/sqlite3.exp20
-rw-r--r--test/lib/completions/ss.exp24
-rw-r--r--test/lib/completions/ssh-add.exp20
-rw-r--r--test/lib/completions/ssh-copy-id.exp26
-rw-r--r--test/lib/completions/ssh-keygen.exp18
-rw-r--r--test/lib/completions/ssh.exp31
-rw-r--r--test/lib/completions/sshfs.exp20
-rw-r--r--test/lib/completions/sshmitm.exp20
-rw-r--r--test/lib/completions/sshow.exp20
-rw-r--r--test/lib/completions/strace.exp20
-rw-r--r--test/lib/completions/stream.exp20
-rw-r--r--test/lib/completions/strings.exp18
-rw-r--r--test/lib/completions/strip.exp20
-rw-r--r--test/lib/completions/su.exp18
-rw-r--r--test/lib/completions/sudo.exp53
-rw-r--r--test/lib/completions/svcadm.exp18
-rw-r--r--test/lib/completions/svk.exp20
-rw-r--r--test/lib/completions/svn.exp20
-rw-r--r--test/lib/completions/svnadmin.exp20
-rw-r--r--test/lib/completions/svnlook.exp20
-rw-r--r--test/lib/completions/sync_members.exp20
-rw-r--r--test/lib/completions/synclient.exp26
-rw-r--r--test/lib/completions/sysbench.exp20
-rw-r--r--test/lib/completions/sysctl.exp23
-rw-r--r--test/lib/completions/tac.exp20
-rw-r--r--test/lib/completions/tail.exp22
-rw-r--r--test/lib/completions/tar.exp132
-rw-r--r--test/lib/completions/tcpdump.exp20
-rw-r--r--test/lib/completions/tcpkill.exp20
-rw-r--r--test/lib/completions/tcpnice.exp20
-rw-r--r--test/lib/completions/tee.exp20
-rw-r--r--test/lib/completions/texindex.exp20
-rw-r--r--test/lib/completions/tightvncviewer.exp20
-rw-r--r--test/lib/completions/time.exp36
-rw-r--r--test/lib/completions/timeout.exp21
-rw-r--r--test/lib/completions/tipc.exp18
-rw-r--r--test/lib/completions/touch.exp22
-rw-r--r--test/lib/completions/tox.exp24
-rw-r--r--test/lib/completions/tr.exp22
-rw-r--r--test/lib/completions/tracepath.exp21
-rw-r--r--test/lib/completions/tshark.exp24
-rw-r--r--test/lib/completions/tune2fs.exp20
-rw-r--r--test/lib/completions/udevadm.exp18
-rw-r--r--test/lib/completions/umount.exp6
-rw-r--r--test/lib/completions/unace.exp20
-rw-r--r--test/lib/completions/uname.exp22
-rw-r--r--test/lib/completions/unexpand.exp22
-rw-r--r--test/lib/completions/uniq.exp22
-rw-r--r--test/lib/completions/units.exp22
-rw-r--r--test/lib/completions/unpack200.exp20
-rw-r--r--test/lib/completions/unrar.exp20
-rw-r--r--test/lib/completions/unset.exp20
-rw-r--r--test/lib/completions/unshunt.exp20
-rw-r--r--test/lib/completions/update-alternatives.exp20
-rw-r--r--test/lib/completions/update-rc.d.exp20
-rw-r--r--test/lib/completions/upgradepkg.exp25
-rw-r--r--test/lib/completions/urlsnarf.exp20
-rw-r--r--test/lib/completions/uscan.exp18
-rw-r--r--test/lib/completions/useradd.exp21
-rw-r--r--test/lib/completions/userdel.exp22
-rw-r--r--test/lib/completions/usermod.exp21
-rw-r--r--test/lib/completions/valgrind.exp50
-rw-r--r--test/lib/completions/vdir.exp20
-rw-r--r--test/lib/completions/vgcfgbackup.exp22
-rw-r--r--test/lib/completions/vgcfgrestore.exp22
-rw-r--r--test/lib/completions/vgchange.exp20
-rw-r--r--test/lib/completions/vgck.exp22
-rw-r--r--test/lib/completions/vgconvert.exp22
-rw-r--r--test/lib/completions/vgcreate.exp22
-rw-r--r--test/lib/completions/vgdisplay.exp22
-rw-r--r--test/lib/completions/vgexport.exp22
-rw-r--r--test/lib/completions/vgextend.exp22
-rw-r--r--test/lib/completions/vgimport.exp22
-rw-r--r--test/lib/completions/vgmerge.exp22
-rw-r--r--test/lib/completions/vgmknodes.exp22
-rw-r--r--test/lib/completions/vgreduce.exp22
-rw-r--r--test/lib/completions/vgremove.exp22
-rw-r--r--test/lib/completions/vgrename.exp22
-rw-r--r--test/lib/completions/vgs.exp22
-rw-r--r--test/lib/completions/vgscan.exp22
-rw-r--r--test/lib/completions/vgsplit.exp20
-rw-r--r--test/lib/completions/vi.exp22
-rw-r--r--test/lib/completions/vipw.exp20
-rw-r--r--test/lib/completions/vmstat.exp18
-rw-r--r--test/lib/completions/vncviewer.exp22
-rw-r--r--test/lib/completions/vpnc.exp18
-rw-r--r--test/lib/completions/watch.exp18
-rw-r--r--test/lib/completions/wc.exp22
-rw-r--r--test/lib/completions/webmitm.exp20
-rw-r--r--test/lib/completions/wget.exp26
-rw-r--r--test/lib/completions/who.exp22
-rw-r--r--test/lib/completions/wine.exp31
-rw-r--r--test/lib/completions/withlist.exp20
-rw-r--r--test/lib/completions/wodim.exp18
-rw-r--r--test/lib/completions/wol.exp29
-rw-r--r--test/lib/completions/write.exp19
-rw-r--r--test/lib/completions/wsimport.exp18
-rw-r--r--test/lib/completions/wtf.exp20
-rw-r--r--test/lib/completions/wvdial.exp20
-rw-r--r--test/lib/completions/xdg-mime.exp39
-rw-r--r--test/lib/completions/xdg-settings.exp24
-rw-r--r--test/lib/completions/xfreerdp.exp28
-rw-r--r--test/lib/completions/xgamma.exp21
-rw-r--r--test/lib/completions/xm.exp18
-rw-r--r--test/lib/completions/xmllint.exp20
-rw-r--r--test/lib/completions/xmlwf.exp20
-rw-r--r--test/lib/completions/xmms.exp20
-rw-r--r--test/lib/completions/xmodmap.exp20
-rw-r--r--test/lib/completions/xpovray.exp20
-rw-r--r--test/lib/completions/xrandr.exp21
-rw-r--r--test/lib/completions/xrdb.exp20
-rw-r--r--test/lib/completions/xsltproc.exp20
-rw-r--r--test/lib/completions/xvnc4viewer.exp45
-rw-r--r--test/lib/completions/xxd.exp18
-rw-r--r--test/lib/completions/xz.exp37
-rw-r--r--test/lib/completions/xzdec.exp20
-rw-r--r--test/lib/completions/ypcat.exp20
-rw-r--r--test/lib/completions/ypmatch.exp20
-rw-r--r--test/lib/completions/yum-arch.exp20
-rw-r--r--test/lib/completions/yum.exp20
-rw-r--r--test/lib/completions/zopfli.exp22
-rw-r--r--test/lib/completions/zopflipng.exp18
-rw-r--r--test/lib/library.exp103
-rw-r--r--test/lib/library.sh28
-rw-r--r--test/log/.gitignore1
-rw-r--r--test/requirements.txt5
-rwxr-xr-xtest/run2
-rwxr-xr-xtest/run-shellcheck4
-rwxr-xr-xtest/runLint4
-rw-r--r--test/t/Makefile.am680
-rw-r--r--test/t/conftest.py461
-rw-r--r--test/t/test_2to3.py7
-rw-r--r--test/t/test_7z.py34
-rw-r--r--test/t/test_a2ps.py7
-rw-r--r--test/t/test_a2x.py7
-rw-r--r--test/t/test_abook.py7
-rw-r--r--test/t/test_aclocal.py7
-rw-r--r--test/t/test_acpi.py7
-rw-r--r--test/t/test_acroread.py7
-rw-r--r--test/t/test_adb.py7
-rw-r--r--test/t/test_add_members.py7
-rw-r--r--test/t/test_alias.py17
-rw-r--r--test/t/test_alpine.py7
-rw-r--r--test/t/test_animate.py7
-rw-r--r--test/t/test_ant.py26
-rw-r--r--test/t/test_apache2ctl.py7
-rw-r--r--test/t/test_appdata_validate.py8
-rw-r--r--test/t/test_apt_build.py8
-rw-r--r--test/t/test_apt_cache.py13
-rw-r--r--test/t/test_apt_get.py12
-rw-r--r--test/t/test_aptitude.py7
-rw-r--r--test/t/test_arch.py8
-rw-r--r--test/t/test_arp.py14
-rw-r--r--test/t/test_arping.py11
-rw-r--r--test/t/test_arpspoof.py7
-rw-r--r--test/t/test_asciidoc.py7
-rw-r--r--test/t/test_aspell.py7
-rw-r--r--test/t/test_autoconf.py7
-rw-r--r--test/t/test_autoheader.py7
-rw-r--r--test/t/test_automake.py7
-rw-r--r--test/t/test_autoreconf.py7
-rw-r--r--test/t/test_autorpm.py7
-rw-r--r--test/t/test_autoscan.py7
-rw-r--r--test/t/test_autoupdate.py7
-rw-r--r--test/t/test_avctrl.py7
-rw-r--r--test/t/test_awk.py7
-rw-r--r--test/t/test_badblocks.py7
-rw-r--r--test/t/test_base64.py7
-rw-r--r--test/t/test_bash.py7
-rw-r--r--test/t/test_bc.py7
-rw-r--r--test/t/test_bind.py11
-rw-r--r--test/t/test_bison.py7
-rw-r--r--test/t/test_bk.py7
-rw-r--r--test/t/test_brctl.py7
-rw-r--r--test/t/test_btdownloadcurses_py.py8
-rw-r--r--test/t/test_btdownloadgui_py.py8
-rw-r--r--test/t/test_btdownloadheadless_py.py8
-rw-r--r--test/t/test_bts.py11
-rw-r--r--test/t/test_bzip2.py11
-rw-r--r--test/t/test_cal.py7
-rw-r--r--test/t/test_cancel.py34
-rw-r--r--test/t/test_cardctl.py7
-rw-r--r--test/t/test_cat.py7
-rw-r--r--test/t/test_cc.py7
-rw-r--r--test/t/test_ccache.py27
-rw-r--r--test/t/test_ccze.py19
-rw-r--r--test/t/test_cd.py22
-rw-r--r--test/t/test_cdrecord.py7
-rw-r--r--test/t/test_cfagent.py7
-rw-r--r--test/t/test_cfrun.py7
-rw-r--r--test/t/test_chage.py7
-rw-r--r--test/t/test_change_pw.py8
-rw-r--r--test/t/test_check_db.py7
-rw-r--r--test/t/test_check_perms.py7
-rw-r--r--test/t/test_checksec.py7
-rw-r--r--test/t/test_chfn.py7
-rw-r--r--test/t/test_chgrp.py7
-rw-r--r--test/t/test_chkconfig.py15
-rw-r--r--test/t/test_chmod.py25
-rw-r--r--test/t/test_chown.py82
-rw-r--r--test/t/test_chpasswd.py7
-rw-r--r--test/t/test_chromium_browser.py13
-rw-r--r--test/t/test_chronyc.py11
-rw-r--r--test/t/test_chroot.py12
-rw-r--r--test/t/test_chrpath.py11
-rw-r--r--test/t/test_chsh.py11
-rw-r--r--test/t/test_ci.py7
-rw-r--r--test/t/test_ciptool.py7
-rw-r--r--test/t/test_civclient.py7
-rw-r--r--test/t/test_civserver.py7
-rw-r--r--test/t/test_cksfv.py7
-rw-r--r--test/t/test_cleanarch.py8
-rw-r--r--test/t/test_clisp.py7
-rw-r--r--test/t/test_clone_member.py7
-rw-r--r--test/t/test_co.py7
-rw-r--r--test/t/test_compare.py7
-rw-r--r--test/t/test_complete.py7
-rw-r--r--test/t/test_composite.py7
-rw-r--r--test/t/test_config_list.py7
-rw-r--r--test/t/test_configure.py17
-rw-r--r--test/t/test_conjure.py7
-rw-r--r--test/t/test_convert.py11
-rw-r--r--test/t/test_cowsay.py7
-rw-r--r--test/t/test_cp.py7
-rw-r--r--test/t/test_cpan2dist.py7
-rw-r--r--test/t/test_cpio.py16
-rw-r--r--test/t/test_cplusplus.py8
-rw-r--r--test/t/test_cppcheck.py31
-rw-r--r--test/t/test_createdb.py9
-rw-r--r--test/t/test_createuser.py11
-rw-r--r--test/t/test_crontab.py7
-rw-r--r--test/t/test_cryptsetup.py7
-rw-r--r--test/t/test_csplit.py7
-rw-r--r--test/t/test_curl.py19
-rw-r--r--test/t/test_cut.py7
-rw-r--r--test/t/test_cvs.py16
-rw-r--r--test/t/test_cvsps.py12
-rw-r--r--test/t/test_date.py7
-rw-r--r--test/t/test_dcop.py14
-rw-r--r--test/t/test_dd.py11
-rw-r--r--test/t/test_declare.py20
-rw-r--r--test/t/test_deja_dup.py12
-rw-r--r--test/t/test_desktop_file_validate.py8
-rw-r--r--test/t/test_df.py7
-rw-r--r--test/t/test_dfutool.py7
-rw-r--r--test/t/test_dhclient.py7
-rw-r--r--test/t/test_dict.py7
-rw-r--r--test/t/test_diff.py7
-rw-r--r--test/t/test_dir.py7
-rw-r--r--test/t/test_display.py11
-rw-r--r--test/t/test_dmesg.py7
-rw-r--r--test/t/test_dnssec_keygen.py80
-rw-r--r--test/t/test_dnsspoof.py7
-rw-r--r--test/t/test_dot.py7
-rw-r--r--test/t/test_dpkg.py17
-rw-r--r--test/t/test_dpkg_deb.py8
-rw-r--r--test/t/test_dpkg_reconfigure.py8
-rw-r--r--test/t/test_dpkg_source.py8
-rw-r--r--test/t/test_dropdb.py9
-rw-r--r--test/t/test_dropuser.py7
-rw-r--r--test/t/test_dselect.py11
-rw-r--r--test/t/test_dsniff.py7
-rw-r--r--test/t/test_du.py7
-rw-r--r--test/t/test_dumpdb.py8
-rw-r--r--test/t/test_dumpe2fs.py7
-rw-r--r--test/t/test_e2freefrag.py7
-rw-r--r--test/t/test_e2label.py7
-rw-r--r--test/t/test_ebtables.py7
-rw-r--r--test/t/test_ecryptfs_migrate_home.py8
-rw-r--r--test/t/test_eject.py7
-rw-r--r--test/t/test_enscript.py7
-rw-r--r--test/t/test_env.py7
-rw-r--r--test/t/test_eog.py7
-rw-r--r--test/t/test_ether_wake.py8
-rw-r--r--test/t/test_etherwake.py7
-rw-r--r--test/t/test_evince.py18
-rw-r--r--test/t/test_expand.py7
-rw-r--r--test/t/test_explodepkg.py18
-rw-r--r--test/t/test_export.py36
-rw-r--r--test/t/test_faillog.py7
-rw-r--r--test/t/test_fbgs.py7
-rw-r--r--test/t/test_fbi.py7
-rw-r--r--test/t/test_feh.py29
-rw-r--r--test/t/test_file.py11
-rw-r--r--test/t/test_file_roller.py8
-rw-r--r--test/t/test_filefrag.py7
-rw-r--r--test/t/test_filesnarf.py7
-rw-r--r--test/t/test_find.py28
-rw-r--r--test/t/test_find_member.py7
-rw-r--r--test/t/test_finger.py14
-rw-r--r--test/t/test_fio.py15
-rw-r--r--test/t/test_firefox.py12
-rw-r--r--test/t/test_flake8.py16
-rw-r--r--test/t/test_fmt.py7
-rw-r--r--test/t/test_fold.py7
-rw-r--r--test/t/test_freebsd_update.py8
-rw-r--r--test/t/test_freeciv.py7
-rw-r--r--test/t/test_freeciv_server.py8
-rw-r--r--test/t/test_function.py7
-rw-r--r--test/t/test_fusermount.py7
-rw-r--r--test/t/test_g4.py7
-rw-r--r--test/t/test_g77.py7
-rw-r--r--test/t/test_gcc.py7
-rw-r--r--test/t/test_gcj.py7
-rw-r--r--test/t/test_gcl.py7
-rw-r--r--test/t/test_gdb.py14
-rw-r--r--test/t/test_genaliases.py8
-rw-r--r--test/t/test_gendiff.py7
-rw-r--r--test/t/test_genisoimage.py7
-rw-r--r--test/t/test_geoiplookup.py7
-rw-r--r--test/t/test_getconf.py23
-rw-r--r--test/t/test_getent.py7
-rw-r--r--test/t/test_gkrellm.py10
-rw-r--r--test/t/test_gm.py19
-rw-r--r--test/t/test_gmplayer.py7
-rw-r--r--test/t/test_gnatmake.py7
-rw-r--r--test/t/test_gnokii.py7
-rw-r--r--test/t/test_gnome_mplayer.py8
-rw-r--r--test/t/test_gnome_screenshot.py8
-rw-r--r--test/t/test_gpasswd.py7
-rw-r--r--test/t/test_gpc.py7
-rw-r--r--test/t/test_gperf.py7
-rw-r--r--test/t/test_gpg.py7
-rw-r--r--test/t/test_gpg2.py7
-rw-r--r--test/t/test_gpgv.py15
-rw-r--r--test/t/test_gphoto2.py7
-rw-r--r--test/t/test_gplusplus.py8
-rw-r--r--test/t/test_gprof.py7
-rw-r--r--test/t/test_grep.py16
-rw-r--r--test/t/test_groupadd.py11
-rw-r--r--test/t/test_groupdel.py7
-rw-r--r--test/t/test_groupmems.py7
-rw-r--r--test/t/test_groupmod.py11
-rw-r--r--test/t/test_growisofs.py7
-rw-r--r--test/t/test_grpck.py11
-rw-r--r--test/t/test_grub.py7
-rw-r--r--test/t/test_gzip.py11
-rw-r--r--test/t/test_hciattach.py7
-rw-r--r--test/t/test_hciconfig.py7
-rw-r--r--test/t/test_hcitool.py7
-rw-r--r--test/t/test_hddtemp.py7
-rw-r--r--test/t/test_head.py7
-rw-r--r--test/t/test_hexdump.py7
-rw-r--r--test/t/test_hid2hci.py8
-rw-r--r--test/t/test_host.py7
-rw-r--r--test/t/test_hostname.py7
-rw-r--r--test/t/test_hping2.py7
-rw-r--r--test/t/test_hping3.py7
-rw-r--r--test/t/test_htop.py7
-rw-r--r--test/t/test_htpasswd.py19
-rw-r--r--test/t/test_hunspell.py11
-rw-r--r--test/t/test_hwclock.py7
-rw-r--r--test/t/test_iconv.py11
-rw-r--r--test/t/test_id.py7
-rw-r--r--test/t/test_identify.py7
-rw-r--r--test/t/test_idn.py7
-rw-r--r--test/t/test_ifdown.py14
-rw-r--r--test/t/test_ifstat.py19
-rw-r--r--test/t/test_iftop.py7
-rw-r--r--test/t/test_ifup.py18
-rw-r--r--test/t/test_import.py7
-rw-r--r--test/t/test_info.py12
-rw-r--r--test/t/test_inject.py8
-rw-r--r--test/t/test_inotifywait.py15
-rw-r--r--test/t/test_inotifywatch.py15
-rw-r--r--test/t/test_insmod.py7
-rw-r--r--test/t/test_installpkg.py39
-rw-r--r--test/t/test_interdiff.py7
-rw-r--r--test/t/test_invoke_rc_d.py14
-rw-r--r--test/t/test_ionice.py7
-rw-r--r--test/t/test_ip.py11
-rw-r--r--test/t/test_iperf.py20
-rw-r--r--test/t/test_iperf3.py20
-rw-r--r--test/t/test_ipmitool.py7
-rw-r--r--test/t/test_ipsec.py7
-rw-r--r--test/t/test_iptables.py7
-rw-r--r--test/t/test_ipv6calc.py11
-rw-r--r--test/t/test_irb.py7
-rw-r--r--test/t/test_iscsiadm.py7
-rw-r--r--test/t/test_isort.py11
-rw-r--r--test/t/test_isql.py8
-rw-r--r--test/t/test_iwconfig.py7
-rw-r--r--test/t/test_iwlist.py7
-rw-r--r--test/t/test_iwpriv.py7
-rw-r--r--test/t/test_iwspy.py7
-rw-r--r--test/t/test_jar.py7
-rw-r--r--test/t/test_jarsigner.py7
-rw-r--r--test/t/test_java.py30
-rw-r--r--test/t/test_javac.py11
-rw-r--r--test/t/test_javadoc.py17
-rw-r--r--test/t/test_javaws.py7
-rw-r--r--test/t/test_jpegoptim.py7
-rw-r--r--test/t/test_jps.py7
-rw-r--r--test/t/test_jq.py31
-rw-r--r--test/t/test_jshint.py7
-rw-r--r--test/t/test_json_xs.py11
-rw-r--r--test/t/test_jsonschema.py11
-rw-r--r--test/t/test_k3b.py7
-rw-r--r--test/t/test_kcov.py16
-rw-r--r--test/t/test_kdvi.py10
-rw-r--r--test/t/test_kill.py15
-rw-r--r--test/t/test_killall.py13
-rw-r--r--test/t/test_kldload.py7
-rw-r--r--test/t/test_kldunload.py16
-rw-r--r--test/t/test_koji.py11
-rw-r--r--test/t/test_kpdf.py7
-rw-r--r--test/t/test_kplayer.py7
-rw-r--r--test/t/test_ktutil.py11
-rw-r--r--test/t/test_l2ping.py7
-rw-r--r--test/t/test_larch.py7
-rw-r--r--test/t/test_lastlog.py7
-rw-r--r--test/t/test_ld.py7
-rw-r--r--test/t/test_ldapadd.py7
-rw-r--r--test/t/test_ldapcompare.py7
-rw-r--r--test/t/test_ldapdelete.py7
-rw-r--r--test/t/test_ldapmodrdn.py7
-rw-r--r--test/t/test_ldappasswd.py7
-rw-r--r--test/t/test_ldapsearch.py7
-rw-r--r--test/t/test_ldapvi.py7
-rw-r--r--test/t/test_ldapwhoami.py7
-rw-r--r--test/t/test_ldd.py7
-rw-r--r--test/t/test_less.py7
-rw-r--r--test/t/test_lftp.py14
-rw-r--r--test/t/test_lftpget.py7
-rw-r--r--test/t/test_lilo.py7
-rw-r--r--test/t/test_links.py11
-rw-r--r--test/t/test_lintian.py7
-rw-r--r--test/t/test_lintian_info.py12
-rw-r--r--test/t/test_lisp.py7
-rw-r--r--test/t/test_list_admins.py7
-rw-r--r--test/t/test_list_lists.py7
-rw-r--r--test/t/test_list_members.py7
-rw-r--r--test/t/test_list_owners.py8
-rw-r--r--test/t/test_ln.py7
-rw-r--r--test/t/test_locale_gen.py12
-rw-r--r--test/t/test_look.py16
-rw-r--r--test/t/test_lpq.py7
-rw-r--r--test/t/test_lpr.py7
-rw-r--r--test/t/test_lrzip.py11
-rw-r--r--test/t/test_ls.py38
-rw-r--r--test/t/test_lsof.py11
-rw-r--r--test/t/test_lspci.py11
-rw-r--r--test/t/test_lsscsi.py11
-rw-r--r--test/t/test_lsusb.py7
-rw-r--r--test/t/test_lua.py7
-rw-r--r--test/t/test_luac.py7
-rw-r--r--test/t/test_luseradd.py7
-rw-r--r--test/t/test_luserdel.py7
-rw-r--r--test/t/test_lusermod.py7
-rw-r--r--test/t/test_lvchange.py9
-rw-r--r--test/t/test_lvcreate.py9
-rw-r--r--test/t/test_lvdisplay.py9
-rw-r--r--test/t/test_lvextend.py9
-rw-r--r--test/t/test_lvm.py7
-rw-r--r--test/t/test_lvmdiskscan.py9
-rw-r--r--test/t/test_lvreduce.py9
-rw-r--r--test/t/test_lvremove.py9
-rw-r--r--test/t/test_lvrename.py9
-rw-r--r--test/t/test_lvresize.py9
-rw-r--r--test/t/test_lvs.py7
-rw-r--r--test/t/test_lvscan.py7
-rw-r--r--test/t/test_lz4.py11
-rw-r--r--test/t/test_lzip.py7
-rw-r--r--test/t/test_lzma.py19
-rw-r--r--test/t/test_lzop.py11
-rw-r--r--test/t/test_m4.py7
-rw-r--r--test/t/test_macof.py7
-rw-r--r--test/t/test_mailmanctl.py8
-rw-r--r--test/t/test_mailsnarf.py7
-rw-r--r--test/t/test_make.py50
-rw-r--r--test/t/test_makepkg.py14
-rw-r--r--test/t/test_man.py108
-rw-r--r--test/t/test_mc.py7
-rw-r--r--test/t/test_mcrypt.py15
-rw-r--r--test/t/test_md5sum.py7
-rw-r--r--test/t/test_mdadm.py7
-rw-r--r--test/t/test_mdecrypt.py7
-rw-r--r--test/t/test_mdtool.py7
-rw-r--r--test/t/test_medusa.py7
-rw-r--r--test/t/test_mencoder.py12
-rw-r--r--test/t/test_mii_diag.py8
-rw-r--r--test/t/test_mii_tool.py8
-rw-r--r--test/t/test_minicom.py7
-rw-r--r--test/t/test_mkdir.py18
-rw-r--r--test/t/test_mkfifo.py7
-rw-r--r--test/t/test_mkinitrd.py7
-rw-r--r--test/t/test_mkisofs.py15
-rw-r--r--test/t/test_mknod.py7
-rw-r--r--test/t/test_mktemp.py7
-rw-r--r--test/t/test_mmsitepass.py7
-rw-r--r--test/t/test_mock.py7
-rw-r--r--test/t/test_modinfo.py32
-rw-r--r--test/t/test_modprobe.py36
-rw-r--r--test/t/test_module.py7
-rw-r--r--test/t/test_mogrify.py7
-rw-r--r--test/t/test_monodevelop.py7
-rw-r--r--test/t/test_montage.py7
-rw-r--r--test/t/test_mount.py22
-rw-r--r--test/t/test_mplayer.py12
-rw-r--r--test/t/test_mr.py43
-rw-r--r--test/t/test_msgsnarf.py7
-rw-r--r--test/t/test_msynctool.py7
-rw-r--r--test/t/test_mtx.py7
-rw-r--r--test/t/test_munin_node_configure.py8
-rw-r--r--test/t/test_munin_run.py8
-rw-r--r--test/t/test_munindoc.py9
-rw-r--r--test/t/test_mussh.py7
-rw-r--r--test/t/test_mutt.py33
-rw-r--r--test/t/test_muttng.py7
-rw-r--r--test/t/test_mv.py7
-rw-r--r--test/t/test_mypy.py15
-rw-r--r--test/t/test_mysql.py15
-rw-r--r--test/t/test_mysqladmin.py7
-rw-r--r--test/t/test_nc.py7
-rw-r--r--test/t/test_ncftp.py11
-rw-r--r--test/t/test_nethogs.py7
-rw-r--r--test/t/test_netstat.py7
-rw-r--r--test/t/test_newgrp.py7
-rw-r--r--test/t/test_newlist.py7
-rw-r--r--test/t/test_newusers.py7
-rw-r--r--test/t/test_ngrep.py11
-rw-r--r--test/t/test_nl.py7
-rw-r--r--test/t/test_nm.py7
-rw-r--r--test/t/test_nmap.py7
-rw-r--r--test/t/test_nmcli.py7
-rw-r--r--test/t/test_nproc.py11
-rw-r--r--test/t/test_nslookup.py7
-rw-r--r--test/t/test_nsupdate.py11
-rw-r--r--test/t/test_ntpdate.py7
-rw-r--r--test/t/test_objcopy.py7
-rw-r--r--test/t/test_objdump.py7
-rw-r--r--test/t/test_od.py7
-rw-r--r--test/t/test_oggdec.py11
-rw-r--r--test/t/test_op.py11
-rw-r--r--test/t/test_openssl.py15
-rw-r--r--test/t/test_opera.py7
-rw-r--r--test/t/test_optipng.py7
-rw-r--r--test/t/test_p4.py7
-rw-r--r--test/t/test_pack200.py7
-rw-r--r--test/t/test_passwd.py11
-rw-r--r--test/t/test_paste.py7
-rw-r--r--test/t/test_patch.py7
-rw-r--r--test/t/test_pdftotext.py7
-rw-r--r--test/t/test_perl.py79
-rw-r--r--test/t/test_perlcritic.py15
-rw-r--r--test/t/test_perldoc.py18
-rw-r--r--test/t/test_perltidy.py19
-rw-r--r--test/t/test_pgrep.py9
-rw-r--r--test/t/test_phing.py11
-rw-r--r--test/t/test_pidof.py9
-rw-r--r--test/t/test_pine.py7
-rw-r--r--test/t/test_pinfo.py12
-rw-r--r--test/t/test_ping.py11
-rw-r--r--test/t/test_pkg_config.py12
-rw-r--r--test/t/test_pkg_deinstall.py15
-rw-r--r--test/t/test_pkg_delete.py7
-rw-r--r--test/t/test_pkg_get.py8
-rw-r--r--test/t/test_pkg_info.py7
-rw-r--r--test/t/test_pkgadd.py7
-rw-r--r--test/t/test_pkgrm.py7
-rw-r--r--test/t/test_pkgtool.py7
-rw-r--r--test/t/test_pkgutil.py7
-rw-r--r--test/t/test_pkill.py7
-rw-r--r--test/t/test_plague_client.py8
-rw-r--r--test/t/test_pm_hibernate.py8
-rw-r--r--test/t/test_pm_is_supported.py8
-rw-r--r--test/t/test_pm_powersave.py8
-rw-r--r--test/t/test_pngfix.py11
-rw-r--r--test/t/test_portinstall.py26
-rw-r--r--test/t/test_portsnap.py7
-rw-r--r--test/t/test_portupgrade.py9
-rw-r--r--test/t/test_postcat.py7
-rw-r--r--test/t/test_postconf.py18
-rw-r--r--test/t/test_postfix.py7
-rw-r--r--test/t/test_postmap.py7
-rw-r--r--test/t/test_postsuper.py7
-rw-r--r--test/t/test_povray.py7
-rw-r--r--test/t/test_pr.py7
-rw-r--r--test/t/test_prelink.py11
-rw-r--r--test/t/test_protoc.py7
-rw-r--r--test/t/test_psql.py9
-rw-r--r--test/t/test_ptx.py7
-rw-r--r--test/t/test_puppet.py11
-rw-r--r--test/t/test_pushd.py7
-rw-r--r--test/t/test_pv.py15
-rw-r--r--test/t/test_pvchange.py9
-rw-r--r--test/t/test_pvcreate.py9
-rw-r--r--test/t/test_pvdisplay.py9
-rw-r--r--test/t/test_pvmove.py7
-rw-r--r--test/t/test_pvremove.py9
-rw-r--r--test/t/test_pvs.py7
-rw-r--r--test/t/test_pvscan.py7
-rw-r--r--test/t/test_pwck.py7
-rw-r--r--test/t/test_pwd.py7
-rw-r--r--test/t/test_pwdx.py7
-rw-r--r--test/t/test_pwgen.py7
-rw-r--r--test/t/test_pycodestyle.py15
-rw-r--r--test/t/test_pydoc.py7
-rw-r--r--test/t/test_pydocstyle.py11
-rw-r--r--test/t/test_pyflakes.py7
-rw-r--r--test/t/test_pylint.py11
-rw-r--r--test/t/test_pylint_3.py12
-rw-r--r--test/t/test_pytest.py11
-rw-r--r--test/t/test_python.py35
-rw-r--r--test/t/test_python3.py35
-rw-r--r--test/t/test_pyvenv.py7
-rw-r--r--test/t/test_qemu.py7
-rw-r--r--test/t/test_qrunner.py7
-rw-r--r--test/t/test_querybts.py7
-rw-r--r--test/t/test_quota.py7
-rw-r--r--test/t/test_quotacheck.py7
-rw-r--r--test/t/test_quotaon.py7
-rw-r--r--test/t/test_radvdump.py7
-rw-r--r--test/t/test_rcs.py7
-rw-r--r--test/t/test_rcsdiff.py7
-rw-r--r--test/t/test_rdesktop.py7
-rw-r--r--test/t/test_rdict.py7
-rw-r--r--test/t/test_readelf.py7
-rw-r--r--test/t/test_readonly.py7
-rw-r--r--test/t/test_remove_members.py7
-rw-r--r--test/t/test_removepkg.py15
-rw-r--r--test/t/test_renice.py11
-rw-r--r--test/t/test_repomanage.py7
-rw-r--r--test/t/test_reportbug.py7
-rw-r--r--test/t/test_reptyr.py11
-rw-r--r--test/t/test_resolvconf.py7
-rw-r--r--test/t/test_rfcomm.py7
-rw-r--r--test/t/test_rfkill.py11
-rw-r--r--test/t/test_ri.py16
-rw-r--r--test/t/test_rlog.py7
-rw-r--r--test/t/test_rm.py7
-rw-r--r--test/t/test_rmdir.py12
-rw-r--r--test/t/test_rmlist.py7
-rw-r--r--test/t/test_rmmod.py7
-rw-r--r--test/t/test_route.py7
-rw-r--r--test/t/test_rpcdebug.py7
-rw-r--r--test/t/test_rpm.py11
-rw-r--r--test/t/test_rpm2tgz.py26
-rw-r--r--test/t/test_rpmbuild.py7
-rw-r--r--test/t/test_rrdtool.py7
-rw-r--r--test/t/test_rsync.py16
-rw-r--r--test/t/test_rtcwake.py7
-rw-r--r--test/t/test_runuser.py7
-rw-r--r--test/t/test_sbcl.py8
-rw-r--r--test/t/test_sbcl_mt.py8
-rw-r--r--test/t/test_sbopkg.py7
-rw-r--r--test/t/test_screen.py24
-rw-r--r--test/t/test_scrub.py19
-rw-r--r--test/t/test_sdptool.py7
-rw-r--r--test/t/test_sed.py7
-rw-r--r--test/t/test_seq.py7
-rw-r--r--test/t/test_service.py7
-rw-r--r--test/t/test_set.py7
-rw-r--r--test/t/test_setquota.py7
-rw-r--r--test/t/test_sftp.py7
-rw-r--r--test/t/test_sh.py19
-rw-r--r--test/t/test_sha1sum.py7
-rw-r--r--test/t/test_shar.py7
-rw-r--r--test/t/test_shellcheck.py19
-rw-r--r--test/t/test_sitecopy.py7
-rw-r--r--test/t/test_slackpkg.py7
-rw-r--r--test/t/test_slapt_get.py16
-rw-r--r--test/t/test_slapt_src.py16
-rw-r--r--test/t/test_smartctl.py7
-rw-r--r--test/t/test_smbcacls.py7
-rw-r--r--test/t/test_smbclient.py7
-rw-r--r--test/t/test_smbcquotas.py7
-rw-r--r--test/t/test_smbget.py7
-rw-r--r--test/t/test_smbpasswd.py7
-rw-r--r--test/t/test_smbtar.py7
-rw-r--r--test/t/test_smbtree.py7
-rw-r--r--test/t/test_snownews.py7
-rw-r--r--test/t/test_sort.py7
-rw-r--r--test/t/test_split.py7
-rw-r--r--test/t/test_spovray.py7
-rw-r--r--test/t/test_sqlite3.py15
-rw-r--r--test/t/test_ss.py15
-rw-r--r--test/t/test_ssh.py30
-rw-r--r--test/t/test_ssh_add.py8
-rw-r--r--test/t/test_ssh_copy_id.py16
-rw-r--r--test/t/test_ssh_keygen.py8
-rw-r--r--test/t/test_sshfs.py8
-rw-r--r--test/t/test_sshmitm.py7
-rw-r--r--test/t/test_sshow.py7
-rw-r--r--test/t/test_strace.py7
-rw-r--r--test/t/test_stream.py7
-rw-r--r--test/t/test_strings.py7
-rw-r--r--test/t/test_strip.py7
-rw-r--r--test/t/test_su.py7
-rw-r--r--test/t/test_sudo.py83
-rw-r--r--test/t/test_svcadm.py7
-rw-r--r--test/t/test_svk.py7
-rw-r--r--test/t/test_svn.py7
-rw-r--r--test/t/test_svnadmin.py7
-rw-r--r--test/t/test_svnlook.py7
-rw-r--r--test/t/test_sync_members.py7
-rw-r--r--test/t/test_synclient.py14
-rw-r--r--test/t/test_sysbench.py7
-rw-r--r--test/t/test_sysctl.py14
-rw-r--r--test/t/test_tac.py7
-rw-r--r--test/t/test_tail.py7
-rw-r--r--test/t/test_tar.py126
-rw-r--r--test/t/test_tcpdump.py7
-rw-r--r--test/t/test_tcpkill.py7
-rw-r--r--test/t/test_tcpnice.py7
-rw-r--r--test/t/test_tee.py7
-rw-r--r--test/t/test_texindex.py7
-rw-r--r--test/t/test_tightvncviewer.py7
-rw-r--r--test/t/test_time.py23
-rw-r--r--test/t/test_timeout.py11
-rw-r--r--test/t/test_tipc.py7
-rw-r--r--test/t/test_touch.py7
-rw-r--r--test/t/test_tox.py15
-rw-r--r--test/t/test_tr.py7
-rw-r--r--test/t/test_tracepath.py11
-rw-r--r--test/t/test_tshark.py31
-rw-r--r--test/t/test_tune2fs.py7
-rw-r--r--test/t/test_udevadm.py7
-rw-r--r--test/t/test_ulimit.py35
-rw-r--r--test/t/test_umount.py7
-rw-r--r--test/t/test_unace.py7
-rw-r--r--test/t/test_uname.py7
-rw-r--r--test/t/test_unexpand.py9
-rw-r--r--test/t/test_uniq.py7
-rw-r--r--test/t/test_units.py7
-rw-r--r--test/t/test_unpack200.py7
-rw-r--r--test/t/test_unrar.py7
-rw-r--r--test/t/test_unset.py7
-rw-r--r--test/t/test_unshunt.py7
-rw-r--r--test/t/test_update_alternatives.py8
-rw-r--r--test/t/test_update_rc_d.py8
-rw-r--r--test/t/test_upgradepkg.py34
-rw-r--r--test/t/test_urlsnarf.py7
-rw-r--r--test/t/test_uscan.py7
-rw-r--r--test/t/test_useradd.py11
-rw-r--r--test/t/test_userdel.py11
-rw-r--r--test/t/test_usermod.py11
-rw-r--r--test/t/test_valgrind.py40
-rw-r--r--test/t/test_vdir.py7
-rw-r--r--test/t/test_vgcfgbackup.py9
-rw-r--r--test/t/test_vgcfgrestore.py9
-rw-r--r--test/t/test_vgchange.py7
-rw-r--r--test/t/test_vgck.py7
-rw-r--r--test/t/test_vgconvert.py9
-rw-r--r--test/t/test_vgcreate.py11
-rw-r--r--test/t/test_vgdisplay.py9
-rw-r--r--test/t/test_vgexport.py7
-rw-r--r--test/t/test_vgextend.py7
-rw-r--r--test/t/test_vgimport.py7
-rw-r--r--test/t/test_vgmerge.py7
-rw-r--r--test/t/test_vgmknodes.py9
-rw-r--r--test/t/test_vgreduce.py7
-rw-r--r--test/t/test_vgremove.py7
-rw-r--r--test/t/test_vgrename.py7
-rw-r--r--test/t/test_vgs.py7
-rw-r--r--test/t/test_vgscan.py7
-rw-r--r--test/t/test_vgsplit.py7
-rw-r--r--test/t/test_vi.py11
-rw-r--r--test/t/test_vipw.py7
-rw-r--r--test/t/test_vmstat.py7
-rw-r--r--test/t/test_vncviewer.py8
-rw-r--r--test/t/test_vpnc.py13
-rw-r--r--test/t/test_watch.py7
-rw-r--r--test/t/test_wc.py7
-rw-r--r--test/t/test_webmitm.py7
-rw-r--r--test/t/test_wget.py11
-rw-r--r--test/t/test_who.py7
-rw-r--r--test/t/test_wine.py11
-rw-r--r--test/t/test_withlist.py7
-rw-r--r--test/t/test_wodim.py7
-rw-r--r--test/t/test_wol.py15
-rw-r--r--test/t/test_write.py7
-rw-r--r--test/t/test_wsimport.py7
-rw-r--r--test/t/test_wtf.py7
-rw-r--r--test/t/test_wvdial.py7
-rw-r--r--test/t/test_xdg_mime.py28
-rw-r--r--test/t/test_xdg_settings.py16
-rw-r--r--test/t/test_xfreerdp.py46
-rw-r--r--test/t/test_xgamma.py12
-rw-r--r--test/t/test_xm.py7
-rw-r--r--test/t/test_xmllint.py11
-rw-r--r--test/t/test_xmlwf.py7
-rw-r--r--test/t/test_xmms.py11
-rw-r--r--test/t/test_xmodmap.py11
-rw-r--r--test/t/test_xpovray.py7
-rw-r--r--test/t/test_xrandr.py11
-rw-r--r--test/t/test_xrdb.py7
-rw-r--r--test/t/test_xsltproc.py11
-rw-r--r--test/t/test_xvnc4viewer.py15
-rw-r--r--test/t/test_xxd.py11
-rw-r--r--test/t/test_xz.py22
-rw-r--r--test/t/test_xzdec.py7
-rw-r--r--test/t/test_ypcat.py7
-rw-r--r--test/t/test_ypmatch.py7
-rw-r--r--test/t/test_yum.py7
-rw-r--r--test/t/test_yum_arch.py8
-rw-r--r--test/t/test_zopfli.py11
-rw-r--r--test/t/test_zopflipng.py7
-rw-r--r--test/t/unit/Makefile.am19
-rw-r--r--test/t/unit/test_unit_count_args.py66
-rw-r--r--test/t/unit/test_unit_expand.py13
-rw-r--r--test/t/unit/test_unit_expand_tilde_by_ref.py16
-rw-r--r--test/t/unit/test_unit_filedir.py9
-rw-r--r--test/t/unit/test_unit_find_unique_completion_pair.py55
-rw-r--r--test/t/unit/test_unit_get_comp_words_by_ref.py167
-rw-r--r--test/t/unit/test_unit_get_cword.py135
-rw-r--r--test/t/unit/test_unit_init_completion.py24
-rw-r--r--test/t/unit/test_unit_ip_addresses.py49
-rw-r--r--test/t/unit/test_unit_longopt.py34
-rw-r--r--test/t/unit/test_unit_parse_help.py183
-rw-r--r--test/t/unit/test_unit_parse_usage.py69
-rw-r--r--test/t/unit/test_unit_tilde.py42
-rw-r--r--test/tmp/.gitignore1
-rw-r--r--test/unit/__expand_tilde_by_ref.exp9
-rw-r--r--test/unit/_count_args.exp51
-rw-r--r--test/unit/_expand.exp9
-rw-r--r--test/unit/_filedir.exp4
-rw-r--r--test/unit/_get_comp_words_by_ref.exp219
-rw-r--r--test/unit/_get_cword.exp158
-rw-r--r--test/unit/_init_completion.exp30
-rw-r--r--test/unit/_parse_help.exp138
-rw-r--r--test/unit/_parse_usage.exp64
-rw-r--r--test/unit/_tilde.exp53
-rw-r--r--test/unit/find_unique_completion_pair.exp38
1980 files changed, 9442 insertions, 15814 deletions
diff --git a/test/.gitignore b/test/.gitignore
index 2ea9dc1e..aa9a8096 100644
--- a/test/.gitignore
+++ b/test/.gitignore
@@ -1,4 +1,7 @@
+log/
+tmp/
dbg.log
xtrace.log
site.exp
site.bak
+pytestdebug.log
diff --git a/test/Makefile.am b/test/Makefile.am
index 19d75573..454f1ecd 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -1,6 +1,9 @@
+AUTOMAKE_OPTIONS = dejagnu
DEJATOOL = completion install unit
AM_RUNTESTFLAGS = --outdir log --ignore $(PACKAGE).log
+SUBDIRS = t
+
EXTRA_DIST = completion \
config \
fixtures \
@@ -10,7 +13,8 @@ EXTRA_DIST = completion \
all:
$(MKDIR_P) log tmp
-distclean-local:
- rm -rf log tmp
+CLEANFILES = \
+ fixtures/make/extra_makefile
-AUTOMAKE_OPTIONS = dejagnu
+clean-local:
+ $(RM) -rf log tmp
diff --git a/test/completion/2to3.exp b/test/completion/2to3.exp
deleted file mode 100644
index 9efdd77e..00000000
--- a/test/completion/2to3.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions 2to3
diff --git a/test/completion/7z.exp b/test/completion/7z.exp
deleted file mode 100644
index 0796b7a5..00000000
--- a/test/completion/7z.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions 7z
diff --git a/test/completion/a2ps.exp b/test/completion/a2ps.exp
deleted file mode 100644
index 06927b56..00000000
--- a/test/completion/a2ps.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions a2ps
diff --git a/test/completion/a2x.exp b/test/completion/a2x.exp
deleted file mode 100644
index 5d4098f1..00000000
--- a/test/completion/a2x.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions a2x
diff --git a/test/completion/abook.exp b/test/completion/abook.exp
deleted file mode 100644
index eaa4b308..00000000
--- a/test/completion/abook.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions abook
diff --git a/test/completion/aclocal.exp b/test/completion/aclocal.exp
deleted file mode 100644
index 477921a9..00000000
--- a/test/completion/aclocal.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions aclocal
diff --git a/test/completion/acpi.exp b/test/completion/acpi.exp
deleted file mode 100644
index 934f6d1c..00000000
--- a/test/completion/acpi.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions acpi
diff --git a/test/completion/acroread.exp b/test/completion/acroread.exp
deleted file mode 100644
index e23e98dd..00000000
--- a/test/completion/acroread.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions acroread
diff --git a/test/completion/adb.exp b/test/completion/adb.exp
deleted file mode 100644
index 0da0ad12..00000000
--- a/test/completion/adb.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions adb
diff --git a/test/completion/add_members.exp b/test/completion/add_members.exp
deleted file mode 100644
index 17aacd0a..00000000
--- a/test/completion/add_members.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions add_members
diff --git a/test/completion/alpine.exp b/test/completion/alpine.exp
deleted file mode 100644
index 04ac8b01..00000000
--- a/test/completion/alpine.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions alpine
diff --git a/test/completion/animate.exp b/test/completion/animate.exp
deleted file mode 100644
index 2f4e749e..00000000
--- a/test/completion/animate.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions animate
diff --git a/test/completion/ant.exp b/test/completion/ant.exp
deleted file mode 100644
index ad6996bd..00000000
--- a/test/completion/ant.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ant
diff --git a/test/completion/apache2ctl.exp b/test/completion/apache2ctl.exp
deleted file mode 100644
index f3d5d771..00000000
--- a/test/completion/apache2ctl.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions apache2ctl
diff --git a/test/completion/appdata-validate.exp b/test/completion/appdata-validate.exp
deleted file mode 100644
index 5fae5959..00000000
--- a/test/completion/appdata-validate.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions appdata-validate
diff --git a/test/completion/apt-build.exp b/test/completion/apt-build.exp
deleted file mode 100644
index 48bbe583..00000000
--- a/test/completion/apt-build.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions apt-build
diff --git a/test/completion/apt-cache.exp b/test/completion/apt-cache.exp
deleted file mode 100644
index 901c5e87..00000000
--- a/test/completion/apt-cache.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions apt-cache
diff --git a/test/completion/apt-get.exp b/test/completion/apt-get.exp
deleted file mode 100644
index 04fbf631..00000000
--- a/test/completion/apt-get.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions apt-get
diff --git a/test/completion/aptitude.exp b/test/completion/aptitude.exp
deleted file mode 100644
index 6afbacc8..00000000
--- a/test/completion/aptitude.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions aptitude
diff --git a/test/completion/arch.exp b/test/completion/arch.exp
deleted file mode 100644
index 25cda56f..00000000
--- a/test/completion/arch.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-assert_bash_exec {OLDPATH="$PATH"; PATH="$PATH:/usr/lib/mailman/bin"}
-assert_source_completions arch
-assert_bash_exec {PATH="$OLDPATH"; unset -v OLDPATH}
diff --git a/test/completion/arping.exp b/test/completion/arping.exp
deleted file mode 100644
index 5a64b1a3..00000000
--- a/test/completion/arping.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions arping
diff --git a/test/completion/arpspoof.exp b/test/completion/arpspoof.exp
deleted file mode 100644
index d4f9341e..00000000
--- a/test/completion/arpspoof.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions arpspoof
diff --git a/test/completion/asciidoc.exp b/test/completion/asciidoc.exp
deleted file mode 100644
index 05b3f1f2..00000000
--- a/test/completion/asciidoc.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions asciidoc
diff --git a/test/completion/aspell.exp b/test/completion/aspell.exp
deleted file mode 100644
index 5592574f..00000000
--- a/test/completion/aspell.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions aspell
diff --git a/test/completion/autoconf.exp b/test/completion/autoconf.exp
deleted file mode 100644
index 64942435..00000000
--- a/test/completion/autoconf.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions autoconf
diff --git a/test/completion/autoheader.exp b/test/completion/autoheader.exp
deleted file mode 100644
index b797371a..00000000
--- a/test/completion/autoheader.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions autoheader
diff --git a/test/completion/automake.exp b/test/completion/automake.exp
deleted file mode 100644
index af412413..00000000
--- a/test/completion/automake.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions automake
diff --git a/test/completion/autoreconf.exp b/test/completion/autoreconf.exp
deleted file mode 100644
index 337d11f7..00000000
--- a/test/completion/autoreconf.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions autoreconf
diff --git a/test/completion/autorpm.exp b/test/completion/autorpm.exp
deleted file mode 100644
index 5931bdb1..00000000
--- a/test/completion/autorpm.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions autorpm
diff --git a/test/completion/autoscan.exp b/test/completion/autoscan.exp
deleted file mode 100644
index 9fc76858..00000000
--- a/test/completion/autoscan.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions autoscan
diff --git a/test/completion/autoupdate.exp b/test/completion/autoupdate.exp
deleted file mode 100644
index f56f4c6d..00000000
--- a/test/completion/autoupdate.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions autoupdate
diff --git a/test/completion/avctrl.exp b/test/completion/avctrl.exp
deleted file mode 100644
index ea323c51..00000000
--- a/test/completion/avctrl.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions avctrl
diff --git a/test/completion/awk.exp b/test/completion/awk.exp
deleted file mode 100644
index 42572591..00000000
--- a/test/completion/awk.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions awk
diff --git a/test/completion/badblocks.exp b/test/completion/badblocks.exp
deleted file mode 100644
index 74bfcd5d..00000000
--- a/test/completion/badblocks.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions badblocks
diff --git a/test/completion/base64.exp b/test/completion/base64.exp
deleted file mode 100644
index 2f5f6122..00000000
--- a/test/completion/base64.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions base64
diff --git a/test/completion/bash.exp b/test/completion/bash.exp
deleted file mode 100644
index c00fc09b..00000000
--- a/test/completion/bash.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions bash
diff --git a/test/completion/bc.exp b/test/completion/bc.exp
deleted file mode 100644
index 8b7a3d0b..00000000
--- a/test/completion/bc.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions bc
diff --git a/test/completion/bind.exp b/test/completion/bind.exp
deleted file mode 100644
index d93003b7..00000000
--- a/test/completion/bind.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions bind
diff --git a/test/completion/bison.exp b/test/completion/bison.exp
deleted file mode 100644
index ac40cccc..00000000
--- a/test/completion/bison.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions bison
diff --git a/test/completion/bk.exp b/test/completion/bk.exp
deleted file mode 100644
index 10540b7a..00000000
--- a/test/completion/bk.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions bk
diff --git a/test/completion/brctl.exp b/test/completion/brctl.exp
deleted file mode 100644
index efb5a75a..00000000
--- a/test/completion/brctl.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions brctl
diff --git a/test/completion/btdownloadcurses.py.exp b/test/completion/btdownloadcurses.py.exp
deleted file mode 100644
index fc9d95f7..00000000
--- a/test/completion/btdownloadcurses.py.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions btdownloadcurses.py
diff --git a/test/completion/btdownloadgui.py.exp b/test/completion/btdownloadgui.py.exp
deleted file mode 100644
index e617156b..00000000
--- a/test/completion/btdownloadgui.py.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions btdownloadgui.py
diff --git a/test/completion/btdownloadheadless.py.exp b/test/completion/btdownloadheadless.py.exp
deleted file mode 100644
index fc4f2561..00000000
--- a/test/completion/btdownloadheadless.py.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions btdownloadheadless.py
diff --git a/test/completion/bzip2.exp b/test/completion/bzip2.exp
deleted file mode 100644
index b3953144..00000000
--- a/test/completion/bzip2.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions bzip2
diff --git a/test/completion/c++.exp b/test/completion/c++.exp
deleted file mode 100644
index b00bf8c2..00000000
--- a/test/completion/c++.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions c++
diff --git a/test/completion/cal.exp b/test/completion/cal.exp
deleted file mode 100644
index 5fba48be..00000000
--- a/test/completion/cal.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions cal
diff --git a/test/completion/cancel.exp b/test/completion/cancel.exp
deleted file mode 100644
index 67c47100..00000000
--- a/test/completion/cancel.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions cancel
diff --git a/test/completion/cardctl.exp b/test/completion/cardctl.exp
deleted file mode 100644
index 99d0276b..00000000
--- a/test/completion/cardctl.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions cardctl
diff --git a/test/completion/cat.exp b/test/completion/cat.exp
deleted file mode 100644
index 15588ac7..00000000
--- a/test/completion/cat.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions cat
diff --git a/test/completion/cc.exp b/test/completion/cc.exp
deleted file mode 100644
index af39132d..00000000
--- a/test/completion/cc.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions cc
diff --git a/test/completion/ccache.exp b/test/completion/ccache.exp
deleted file mode 100644
index 4d88bf98..00000000
--- a/test/completion/ccache.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ccache
diff --git a/test/completion/ccze.exp b/test/completion/ccze.exp
deleted file mode 100644
index 4ec83394..00000000
--- a/test/completion/ccze.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ccze
diff --git a/test/completion/cdrecord.exp b/test/completion/cdrecord.exp
deleted file mode 100644
index 9aaa7573..00000000
--- a/test/completion/cdrecord.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions cdrecord
diff --git a/test/completion/cfagent.exp b/test/completion/cfagent.exp
deleted file mode 100644
index 21d71e20..00000000
--- a/test/completion/cfagent.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions cfagent
diff --git a/test/completion/cfrun.exp b/test/completion/cfrun.exp
deleted file mode 100644
index f261c3ba..00000000
--- a/test/completion/cfrun.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions cfrun
diff --git a/test/completion/chage.exp b/test/completion/chage.exp
deleted file mode 100644
index 32dc4409..00000000
--- a/test/completion/chage.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions chage
diff --git a/test/completion/change_pw.exp b/test/completion/change_pw.exp
deleted file mode 100644
index aed916fb..00000000
--- a/test/completion/change_pw.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-assert_bash_exec {OLDPATH="$PATH"; PATH="$PATH:/usr/lib/mailman/bin"}
-assert_source_completions change_pw
-assert_bash_exec {PATH="$OLDPATH"; unset -v OLDPATH}
diff --git a/test/completion/check_db.exp b/test/completion/check_db.exp
deleted file mode 100644
index cf136872..00000000
--- a/test/completion/check_db.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions check_db
diff --git a/test/completion/check_perms.exp b/test/completion/check_perms.exp
deleted file mode 100644
index 860e8d79..00000000
--- a/test/completion/check_perms.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions check_perms
diff --git a/test/completion/checksec.exp b/test/completion/checksec.exp
deleted file mode 100644
index 7e25e898..00000000
--- a/test/completion/checksec.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions checksec
diff --git a/test/completion/chfn.exp b/test/completion/chfn.exp
deleted file mode 100644
index c67743c2..00000000
--- a/test/completion/chfn.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions chfn
diff --git a/test/completion/chgrp.exp b/test/completion/chgrp.exp
deleted file mode 100644
index 2b1d2251..00000000
--- a/test/completion/chgrp.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions chgrp
diff --git a/test/completion/chkconfig.exp b/test/completion/chkconfig.exp
deleted file mode 100644
index 38b4226d..00000000
--- a/test/completion/chkconfig.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions chkconfig
diff --git a/test/completion/chpasswd.exp b/test/completion/chpasswd.exp
deleted file mode 100644
index 854266c1..00000000
--- a/test/completion/chpasswd.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions chpasswd
diff --git a/test/completion/chronyc.exp b/test/completion/chronyc.exp
deleted file mode 100644
index 9f7d8216..00000000
--- a/test/completion/chronyc.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions chronyc
diff --git a/test/completion/chroot.exp b/test/completion/chroot.exp
deleted file mode 100644
index 5cdf8f52..00000000
--- a/test/completion/chroot.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions chroot
diff --git a/test/completion/chrpath.exp b/test/completion/chrpath.exp
deleted file mode 100644
index eee81ec7..00000000
--- a/test/completion/chrpath.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions chrpath
diff --git a/test/completion/chsh.exp b/test/completion/chsh.exp
deleted file mode 100644
index 3caa0c55..00000000
--- a/test/completion/chsh.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions chsh
diff --git a/test/completion/ci.exp b/test/completion/ci.exp
deleted file mode 100644
index 03e417a1..00000000
--- a/test/completion/ci.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ci
diff --git a/test/completion/ciptool.exp b/test/completion/ciptool.exp
deleted file mode 100644
index 206f21c6..00000000
--- a/test/completion/ciptool.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ciptool
diff --git a/test/completion/civclient.exp b/test/completion/civclient.exp
deleted file mode 100644
index 9ad3a3a6..00000000
--- a/test/completion/civclient.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions civclient
diff --git a/test/completion/civserver.exp b/test/completion/civserver.exp
deleted file mode 100644
index d590e0c6..00000000
--- a/test/completion/civserver.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions civserver
diff --git a/test/completion/cksfv.exp b/test/completion/cksfv.exp
deleted file mode 100644
index 293096f7..00000000
--- a/test/completion/cksfv.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions cksfv
diff --git a/test/completion/cleanarch.exp b/test/completion/cleanarch.exp
deleted file mode 100644
index 504f6865..00000000
--- a/test/completion/cleanarch.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-assert_bash_exec {OLDPATH="$PATH"; PATH="$PATH:/usr/lib/mailman/bin"}
-assert_source_completions cleanarch
-assert_bash_exec {PATH="$OLDPATH"; unset -v OLDPATH}
diff --git a/test/completion/clisp.exp b/test/completion/clisp.exp
deleted file mode 100644
index f4203ef4..00000000
--- a/test/completion/clisp.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions clisp
diff --git a/test/completion/clone_member.exp b/test/completion/clone_member.exp
deleted file mode 100644
index 04dcfe9f..00000000
--- a/test/completion/clone_member.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions clone_member
diff --git a/test/completion/co.exp b/test/completion/co.exp
deleted file mode 100644
index e8babba4..00000000
--- a/test/completion/co.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions co
diff --git a/test/completion/compare.exp b/test/completion/compare.exp
deleted file mode 100644
index d2ea0cc7..00000000
--- a/test/completion/compare.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions compare
diff --git a/test/completion/complete.exp b/test/completion/complete.exp
deleted file mode 100644
index 3872244f..00000000
--- a/test/completion/complete.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions complete
diff --git a/test/completion/composite.exp b/test/completion/composite.exp
deleted file mode 100644
index 0eaf6150..00000000
--- a/test/completion/composite.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions composite
diff --git a/test/completion/config_list.exp b/test/completion/config_list.exp
deleted file mode 100644
index 40986234..00000000
--- a/test/completion/config_list.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions config_list
diff --git a/test/completion/configure.exp b/test/completion/configure.exp
deleted file mode 100644
index 16130d48..00000000
--- a/test/completion/configure.exp
+++ /dev/null
@@ -1 +0,0 @@
-source "$::srcdir/lib/completions/configure.exp"
diff --git a/test/completion/conjure.exp b/test/completion/conjure.exp
deleted file mode 100644
index 687c6107..00000000
--- a/test/completion/conjure.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions conjure
diff --git a/test/completion/convert.exp b/test/completion/convert.exp
deleted file mode 100644
index 27fcc6d0..00000000
--- a/test/completion/convert.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions convert
diff --git a/test/completion/cowsay.exp b/test/completion/cowsay.exp
deleted file mode 100644
index b82d66d3..00000000
--- a/test/completion/cowsay.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions cowsay
diff --git a/test/completion/cp.exp b/test/completion/cp.exp
deleted file mode 100644
index db7b6991..00000000
--- a/test/completion/cp.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions cp
diff --git a/test/completion/cpan2dist.exp b/test/completion/cpan2dist.exp
deleted file mode 100644
index c9913b3b..00000000
--- a/test/completion/cpan2dist.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions cpan2dist
diff --git a/test/completion/cpio.exp b/test/completion/cpio.exp
deleted file mode 100644
index c3fae7ad..00000000
--- a/test/completion/cpio.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions cpio
diff --git a/test/completion/cppcheck.exp b/test/completion/cppcheck.exp
deleted file mode 100644
index 1cfb9c56..00000000
--- a/test/completion/cppcheck.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions cppcheck
diff --git a/test/completion/createdb.exp b/test/completion/createdb.exp
deleted file mode 100644
index db76b2cc..00000000
--- a/test/completion/createdb.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions createdb
diff --git a/test/completion/createuser.exp b/test/completion/createuser.exp
deleted file mode 100644
index ad1c24c9..00000000
--- a/test/completion/createuser.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions createuser
diff --git a/test/completion/crontab.exp b/test/completion/crontab.exp
deleted file mode 100644
index 2a649491..00000000
--- a/test/completion/crontab.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions crontab
diff --git a/test/completion/cryptsetup.exp b/test/completion/cryptsetup.exp
deleted file mode 100644
index c28169af..00000000
--- a/test/completion/cryptsetup.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions cryptsetup
diff --git a/test/completion/csplit.exp b/test/completion/csplit.exp
deleted file mode 100644
index d1049855..00000000
--- a/test/completion/csplit.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions csplit
diff --git a/test/completion/curl.exp b/test/completion/curl.exp
deleted file mode 100644
index e8bf2135..00000000
--- a/test/completion/curl.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions curl
diff --git a/test/completion/cut.exp b/test/completion/cut.exp
deleted file mode 100644
index 87858132..00000000
--- a/test/completion/cut.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions cut
diff --git a/test/completion/cvs.exp b/test/completion/cvs.exp
deleted file mode 100644
index 3515047a..00000000
--- a/test/completion/cvs.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions cvs
diff --git a/test/completion/cvsps.exp b/test/completion/cvsps.exp
deleted file mode 100644
index e6e3173c..00000000
--- a/test/completion/cvsps.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions cvsps
diff --git a/test/completion/date.exp b/test/completion/date.exp
deleted file mode 100644
index 098ca455..00000000
--- a/test/completion/date.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions date
diff --git a/test/completion/dcop.exp b/test/completion/dcop.exp
deleted file mode 100644
index d0d0fcc0..00000000
--- a/test/completion/dcop.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions dcop
diff --git a/test/completion/dd.exp b/test/completion/dd.exp
deleted file mode 100644
index e53ab66d..00000000
--- a/test/completion/dd.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions dd
diff --git a/test/completion/declare.exp b/test/completion/declare.exp
deleted file mode 100644
index a62f9891..00000000
--- a/test/completion/declare.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions declare
diff --git a/test/completion/deja-dup.exp b/test/completion/deja-dup.exp
deleted file mode 100644
index b2dc288d..00000000
--- a/test/completion/deja-dup.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions deja-dup
diff --git a/test/completion/desktop-file-validate.exp b/test/completion/desktop-file-validate.exp
deleted file mode 100644
index e026a68c..00000000
--- a/test/completion/desktop-file-validate.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions desktop-file-validate
diff --git a/test/completion/df.exp b/test/completion/df.exp
deleted file mode 100644
index 3840252d..00000000
--- a/test/completion/df.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions df
diff --git a/test/completion/dfutool.exp b/test/completion/dfutool.exp
deleted file mode 100644
index 0859f07e..00000000
--- a/test/completion/dfutool.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions dfutool
diff --git a/test/completion/dhclient.exp b/test/completion/dhclient.exp
deleted file mode 100644
index ef8b6a85..00000000
--- a/test/completion/dhclient.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions dhclient
diff --git a/test/completion/dict.exp b/test/completion/dict.exp
deleted file mode 100644
index 0860b228..00000000
--- a/test/completion/dict.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions dict
diff --git a/test/completion/diff.exp b/test/completion/diff.exp
deleted file mode 100644
index 63e11c74..00000000
--- a/test/completion/diff.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions diff
diff --git a/test/completion/dir.exp b/test/completion/dir.exp
deleted file mode 100644
index fa4c12fd..00000000
--- a/test/completion/dir.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions dir
diff --git a/test/completion/display.exp b/test/completion/display.exp
deleted file mode 100644
index a37de277..00000000
--- a/test/completion/display.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions display
diff --git a/test/completion/dmesg.exp b/test/completion/dmesg.exp
deleted file mode 100644
index 1eca1e5b..00000000
--- a/test/completion/dmesg.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions dmesg
diff --git a/test/completion/dnsspoof.exp b/test/completion/dnsspoof.exp
deleted file mode 100644
index c7110c58..00000000
--- a/test/completion/dnsspoof.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions dnsspoof
diff --git a/test/completion/dot.exp b/test/completion/dot.exp
deleted file mode 100644
index d12422c1..00000000
--- a/test/completion/dot.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions dot
diff --git a/test/completion/dpkg-deb.exp b/test/completion/dpkg-deb.exp
deleted file mode 100644
index 4f113ec0..00000000
--- a/test/completion/dpkg-deb.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions dpkg-deb
diff --git a/test/completion/dpkg-reconfigure.exp b/test/completion/dpkg-reconfigure.exp
deleted file mode 100644
index 8d22071a..00000000
--- a/test/completion/dpkg-reconfigure.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions dpkg-reconfigure
diff --git a/test/completion/dpkg-source.exp b/test/completion/dpkg-source.exp
deleted file mode 100644
index 4a7badf8..00000000
--- a/test/completion/dpkg-source.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions dpkg-source
diff --git a/test/completion/dpkg.exp b/test/completion/dpkg.exp
deleted file mode 100644
index 934c3474..00000000
--- a/test/completion/dpkg.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions dpkg
diff --git a/test/completion/dropdb.exp b/test/completion/dropdb.exp
deleted file mode 100644
index ce35fd5c..00000000
--- a/test/completion/dropdb.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions dropdb
diff --git a/test/completion/dropuser.exp b/test/completion/dropuser.exp
deleted file mode 100644
index 1be7988a..00000000
--- a/test/completion/dropuser.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions dropuser
diff --git a/test/completion/dselect.exp b/test/completion/dselect.exp
deleted file mode 100644
index 716b6a26..00000000
--- a/test/completion/dselect.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions dselect
diff --git a/test/completion/dsniff.exp b/test/completion/dsniff.exp
deleted file mode 100644
index 452beebb..00000000
--- a/test/completion/dsniff.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions dsniff
diff --git a/test/completion/du.exp b/test/completion/du.exp
deleted file mode 100644
index ec7a9946..00000000
--- a/test/completion/du.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions du
diff --git a/test/completion/dumpdb.exp b/test/completion/dumpdb.exp
deleted file mode 100644
index 96aee537..00000000
--- a/test/completion/dumpdb.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-assert_bash_exec {OLDPATH="$PATH"; PATH="$PATH:/usr/lib/mailman/bin"}
-assert_source_completions dumpdb
-assert_bash_exec {PATH="$OLDPATH"; unset -v OLDPATH}
diff --git a/test/completion/dumpe2fs.exp b/test/completion/dumpe2fs.exp
deleted file mode 100644
index 22d1523c..00000000
--- a/test/completion/dumpe2fs.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions dumpe2fs
diff --git a/test/completion/e2freefrag.exp b/test/completion/e2freefrag.exp
deleted file mode 100644
index 713ee236..00000000
--- a/test/completion/e2freefrag.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions e2freefrag
diff --git a/test/completion/e2label.exp b/test/completion/e2label.exp
deleted file mode 100644
index 2383c98e..00000000
--- a/test/completion/e2label.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions e2label
diff --git a/test/completion/ebtables.exp b/test/completion/ebtables.exp
deleted file mode 100644
index 34399189..00000000
--- a/test/completion/ebtables.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ebtables
diff --git a/test/completion/eject.exp b/test/completion/eject.exp
deleted file mode 100644
index 5f02e2ae..00000000
--- a/test/completion/eject.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions eject
diff --git a/test/completion/enscript.exp b/test/completion/enscript.exp
deleted file mode 100644
index 4ea7b029..00000000
--- a/test/completion/enscript.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions enscript
diff --git a/test/completion/env.exp b/test/completion/env.exp
deleted file mode 100644
index baf3f754..00000000
--- a/test/completion/env.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions env
diff --git a/test/completion/eog.exp b/test/completion/eog.exp
deleted file mode 100644
index bba23491..00000000
--- a/test/completion/eog.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions eog
diff --git a/test/completion/ether-wake.exp b/test/completion/ether-wake.exp
deleted file mode 100644
index 602ba271..00000000
--- a/test/completion/ether-wake.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ether-wake
diff --git a/test/completion/evince.exp b/test/completion/evince.exp
deleted file mode 100644
index 27376e06..00000000
--- a/test/completion/evince.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions evince
diff --git a/test/completion/expand.exp b/test/completion/expand.exp
deleted file mode 100644
index 1bb7dd6b..00000000
--- a/test/completion/expand.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions expand
diff --git a/test/completion/explodepkg.exp b/test/completion/explodepkg.exp
deleted file mode 100644
index 7d6ce793..00000000
--- a/test/completion/explodepkg.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions explodepkg
diff --git a/test/completion/export.exp b/test/completion/export.exp
deleted file mode 100644
index bab517a9..00000000
--- a/test/completion/export.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions export
diff --git a/test/completion/faillog.exp b/test/completion/faillog.exp
deleted file mode 100644
index 46d19d9a..00000000
--- a/test/completion/faillog.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions faillog
diff --git a/test/completion/fbgs.exp b/test/completion/fbgs.exp
deleted file mode 100644
index 38efcbe9..00000000
--- a/test/completion/fbgs.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions fbgs
diff --git a/test/completion/fbi.exp b/test/completion/fbi.exp
deleted file mode 100644
index 36f8b8ea..00000000
--- a/test/completion/fbi.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions fbi
diff --git a/test/completion/feh.exp b/test/completion/feh.exp
deleted file mode 100644
index 4613bfaf..00000000
--- a/test/completion/feh.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions feh
diff --git a/test/completion/file-roller.exp b/test/completion/file-roller.exp
deleted file mode 100644
index 2208ba14..00000000
--- a/test/completion/file-roller.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions file-roller
diff --git a/test/completion/file.exp b/test/completion/file.exp
deleted file mode 100644
index 92662f0a..00000000
--- a/test/completion/file.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions file
diff --git a/test/completion/filefrag.exp b/test/completion/filefrag.exp
deleted file mode 100644
index eeb5f8ce..00000000
--- a/test/completion/filefrag.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions filefrag
diff --git a/test/completion/filesnarf.exp b/test/completion/filesnarf.exp
deleted file mode 100644
index 20af6347..00000000
--- a/test/completion/filesnarf.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions filesnarf
diff --git a/test/completion/find.exp b/test/completion/find.exp
deleted file mode 100644
index dc73012e..00000000
--- a/test/completion/find.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions find
diff --git a/test/completion/find_member.exp b/test/completion/find_member.exp
deleted file mode 100644
index c8e4548c..00000000
--- a/test/completion/find_member.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions find_member
diff --git a/test/completion/flake8.exp b/test/completion/flake8.exp
deleted file mode 100644
index 8050e8a8..00000000
--- a/test/completion/flake8.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions flake8
diff --git a/test/completion/fmt.exp b/test/completion/fmt.exp
deleted file mode 100644
index 44ed2147..00000000
--- a/test/completion/fmt.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions fmt
diff --git a/test/completion/fold.exp b/test/completion/fold.exp
deleted file mode 100644
index eec92d33..00000000
--- a/test/completion/fold.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions fold
diff --git a/test/completion/freebsd-update.exp b/test/completion/freebsd-update.exp
deleted file mode 100644
index 80c35662..00000000
--- a/test/completion/freebsd-update.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions freebsd-update
diff --git a/test/completion/freeciv-gtk2.exp b/test/completion/freeciv-gtk2.exp
deleted file mode 100644
index 4f96469d..00000000
--- a/test/completion/freeciv-gtk2.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions freeciv-gtk2
diff --git a/test/completion/freeciv-server.exp b/test/completion/freeciv-server.exp
deleted file mode 100644
index 92b25ed0..00000000
--- a/test/completion/freeciv-server.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions freeciv-server
diff --git a/test/completion/freerdp.exp b/test/completion/freerdp.exp
deleted file mode 100644
index 5ca649a2..00000000
--- a/test/completion/freerdp.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions xfreerdp
diff --git a/test/completion/function.exp b/test/completion/function.exp
deleted file mode 100644
index 04c6e2b2..00000000
--- a/test/completion/function.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions function
diff --git a/test/completion/fusermount.exp b/test/completion/fusermount.exp
deleted file mode 100644
index 7b9e0391..00000000
--- a/test/completion/fusermount.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions fusermount
diff --git a/test/completion/g++.exp b/test/completion/g++.exp
deleted file mode 100644
index 9635d93e..00000000
--- a/test/completion/g++.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions g++
diff --git a/test/completion/g4.exp b/test/completion/g4.exp
deleted file mode 100644
index 7bf0b164..00000000
--- a/test/completion/g4.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions g4
diff --git a/test/completion/g77.exp b/test/completion/g77.exp
deleted file mode 100644
index 9a78cac8..00000000
--- a/test/completion/g77.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions g77
diff --git a/test/completion/gcc.exp b/test/completion/gcc.exp
deleted file mode 100644
index 749fafeb..00000000
--- a/test/completion/gcc.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions gcc
diff --git a/test/completion/gcj.exp b/test/completion/gcj.exp
deleted file mode 100644
index 88ca9ff3..00000000
--- a/test/completion/gcj.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions gcj
diff --git a/test/completion/gcl.exp b/test/completion/gcl.exp
deleted file mode 100644
index ba2ff758..00000000
--- a/test/completion/gcl.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions gcl
diff --git a/test/completion/gdb.exp b/test/completion/gdb.exp
deleted file mode 100644
index 2b09307f..00000000
--- a/test/completion/gdb.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions gdb
diff --git a/test/completion/genaliases.exp b/test/completion/genaliases.exp
deleted file mode 100644
index bd33abb3..00000000
--- a/test/completion/genaliases.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-assert_bash_exec {OLDPATH="$PATH"; PATH="$PATH:/usr/lib/mailman/bin"}
-assert_source_completions genaliases
-assert_bash_exec {PATH="$OLDPATH"; unset -v OLDPATH}
diff --git a/test/completion/gendiff.exp b/test/completion/gendiff.exp
deleted file mode 100644
index f3a3fe19..00000000
--- a/test/completion/gendiff.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions gendiff
diff --git a/test/completion/genisoimage.exp b/test/completion/genisoimage.exp
deleted file mode 100644
index de3be5ba..00000000
--- a/test/completion/genisoimage.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions genisoimage
diff --git a/test/completion/geoiplookup.exp b/test/completion/geoiplookup.exp
deleted file mode 100644
index b2f6bcec..00000000
--- a/test/completion/geoiplookup.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions geoiplookup
diff --git a/test/completion/getconf.exp b/test/completion/getconf.exp
deleted file mode 100644
index f1b010bd..00000000
--- a/test/completion/getconf.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions getconf
diff --git a/test/completion/getent.exp b/test/completion/getent.exp
deleted file mode 100644
index 9abcfbbd..00000000
--- a/test/completion/getent.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions getent
diff --git a/test/completion/gkrellm.exp b/test/completion/gkrellm.exp
deleted file mode 100644
index 55422a0f..00000000
--- a/test/completion/gkrellm.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions gkrellm
diff --git a/test/completion/gm.exp b/test/completion/gm.exp
deleted file mode 100644
index 82177a28..00000000
--- a/test/completion/gm.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions gm
diff --git a/test/completion/gmplayer.exp b/test/completion/gmplayer.exp
deleted file mode 100644
index 0cea91c1..00000000
--- a/test/completion/gmplayer.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions gmplayer
diff --git a/test/completion/gnatmake.exp b/test/completion/gnatmake.exp
deleted file mode 100644
index eebb3c00..00000000
--- a/test/completion/gnatmake.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions gnatmake
diff --git a/test/completion/gnokii.exp b/test/completion/gnokii.exp
deleted file mode 100644
index 4cd3055c..00000000
--- a/test/completion/gnokii.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions gnokii
diff --git a/test/completion/gnome-mplayer.exp b/test/completion/gnome-mplayer.exp
deleted file mode 100644
index 79c0cb1e..00000000
--- a/test/completion/gnome-mplayer.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions gnome-mplayer
diff --git a/test/completion/gpasswd.exp b/test/completion/gpasswd.exp
deleted file mode 100644
index cf07a4de..00000000
--- a/test/completion/gpasswd.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions gpasswd
diff --git a/test/completion/gpc.exp b/test/completion/gpc.exp
deleted file mode 100644
index d7fdb9e7..00000000
--- a/test/completion/gpc.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions gpc
diff --git a/test/completion/gperf.exp b/test/completion/gperf.exp
deleted file mode 100644
index 2b87d664..00000000
--- a/test/completion/gperf.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions gperf
diff --git a/test/completion/gpg.exp b/test/completion/gpg.exp
deleted file mode 100644
index 694f5f87..00000000
--- a/test/completion/gpg.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions gpg
diff --git a/test/completion/gpg2.exp b/test/completion/gpg2.exp
deleted file mode 100644
index 4c44ed41..00000000
--- a/test/completion/gpg2.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions gpg2
diff --git a/test/completion/gphoto2.exp b/test/completion/gphoto2.exp
deleted file mode 100644
index 1eab94b0..00000000
--- a/test/completion/gphoto2.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions gphoto2
diff --git a/test/completion/gprof.exp b/test/completion/gprof.exp
deleted file mode 100644
index c63cc28b..00000000
--- a/test/completion/gprof.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions gprof
diff --git a/test/completion/grep.exp b/test/completion/grep.exp
deleted file mode 100644
index 945c3459..00000000
--- a/test/completion/grep.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions grep
diff --git a/test/completion/groupadd.exp b/test/completion/groupadd.exp
deleted file mode 100644
index 7cc8e386..00000000
--- a/test/completion/groupadd.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions groupadd
diff --git a/test/completion/groupdel.exp b/test/completion/groupdel.exp
deleted file mode 100644
index 337a8310..00000000
--- a/test/completion/groupdel.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions groupdel
diff --git a/test/completion/groupmems.exp b/test/completion/groupmems.exp
deleted file mode 100644
index 6a34f902..00000000
--- a/test/completion/groupmems.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions groupmems
diff --git a/test/completion/groupmod.exp b/test/completion/groupmod.exp
deleted file mode 100644
index 74d92e6e..00000000
--- a/test/completion/groupmod.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions groupmod
diff --git a/test/completion/growisofs.exp b/test/completion/growisofs.exp
deleted file mode 100644
index 57cb991b..00000000
--- a/test/completion/growisofs.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions growisofs
diff --git a/test/completion/grpck.exp b/test/completion/grpck.exp
deleted file mode 100644
index db2caeea..00000000
--- a/test/completion/grpck.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions grpck
diff --git a/test/completion/grub.exp b/test/completion/grub.exp
deleted file mode 100644
index d50bf754..00000000
--- a/test/completion/grub.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions grub
diff --git a/test/completion/gzip.exp b/test/completion/gzip.exp
deleted file mode 100644
index e2a31c5f..00000000
--- a/test/completion/gzip.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions gzip
diff --git a/test/completion/hciattach.exp b/test/completion/hciattach.exp
deleted file mode 100644
index f85a3558..00000000
--- a/test/completion/hciattach.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions hciattach
diff --git a/test/completion/hciconfig.exp b/test/completion/hciconfig.exp
deleted file mode 100644
index 5f109956..00000000
--- a/test/completion/hciconfig.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions hciconfig
diff --git a/test/completion/hcitool.exp b/test/completion/hcitool.exp
deleted file mode 100644
index d30c564b..00000000
--- a/test/completion/hcitool.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions hcitool
diff --git a/test/completion/hddtemp.exp b/test/completion/hddtemp.exp
deleted file mode 100644
index f8c63d62..00000000
--- a/test/completion/hddtemp.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions hddtemp
diff --git a/test/completion/head.exp b/test/completion/head.exp
deleted file mode 100644
index 49235c2e..00000000
--- a/test/completion/head.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions head
diff --git a/test/completion/hexdump.exp b/test/completion/hexdump.exp
deleted file mode 100644
index 7bdc0d36..00000000
--- a/test/completion/hexdump.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions hexdump
diff --git a/test/completion/hid2hci.exp b/test/completion/hid2hci.exp
deleted file mode 100644
index de78db2b..00000000
--- a/test/completion/hid2hci.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-assert_bash_exec {OLDPATH="$PATH"; PATH="$PATH:/lib/udev"}
-assert_source_completions hid2hci
-assert_bash_exec {PATH="$OLDPATH"; unset -v OLDPATH}
diff --git a/test/completion/host.exp b/test/completion/host.exp
deleted file mode 100644
index 9866e1e1..00000000
--- a/test/completion/host.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions host
diff --git a/test/completion/hostname.exp b/test/completion/hostname.exp
deleted file mode 100644
index 3c6983ee..00000000
--- a/test/completion/hostname.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions hostname
diff --git a/test/completion/hping2.exp b/test/completion/hping2.exp
deleted file mode 100644
index e9df7c2b..00000000
--- a/test/completion/hping2.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions hping2
diff --git a/test/completion/hping3.exp b/test/completion/hping3.exp
deleted file mode 100644
index 5ffb9b06..00000000
--- a/test/completion/hping3.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions hping3
diff --git a/test/completion/htop.exp b/test/completion/htop.exp
deleted file mode 100644
index c5372475..00000000
--- a/test/completion/htop.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions htop
diff --git a/test/completion/htpasswd.exp b/test/completion/htpasswd.exp
deleted file mode 100644
index 08294f35..00000000
--- a/test/completion/htpasswd.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions htpasswd
diff --git a/test/completion/hwclock.exp b/test/completion/hwclock.exp
deleted file mode 100644
index b0bdb8ed..00000000
--- a/test/completion/hwclock.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions hwclock
diff --git a/test/completion/iconv.exp b/test/completion/iconv.exp
deleted file mode 100644
index c4c5fb6f..00000000
--- a/test/completion/iconv.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions iconv
diff --git a/test/completion/id.exp b/test/completion/id.exp
deleted file mode 100644
index a4f81c84..00000000
--- a/test/completion/id.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions id
diff --git a/test/completion/identify.exp b/test/completion/identify.exp
deleted file mode 100644
index 59bd9d6a..00000000
--- a/test/completion/identify.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions identify
diff --git a/test/completion/idn.exp b/test/completion/idn.exp
deleted file mode 100644
index 5fccae3d..00000000
--- a/test/completion/idn.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions idn
diff --git a/test/completion/ifdown.exp b/test/completion/ifdown.exp
deleted file mode 100644
index f3f1a69d..00000000
--- a/test/completion/ifdown.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ifdown
diff --git a/test/completion/iftop.exp b/test/completion/iftop.exp
deleted file mode 100644
index 5ec1cb57..00000000
--- a/test/completion/iftop.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions iftop
diff --git a/test/completion/ifup.exp b/test/completion/ifup.exp
deleted file mode 100644
index 780794b2..00000000
--- a/test/completion/ifup.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ifup
diff --git a/test/completion/import.exp b/test/completion/import.exp
deleted file mode 100644
index 682a5069..00000000
--- a/test/completion/import.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions import
diff --git a/test/completion/info.exp b/test/completion/info.exp
deleted file mode 100644
index d16830b7..00000000
--- a/test/completion/info.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions info
diff --git a/test/completion/inject.exp b/test/completion/inject.exp
deleted file mode 100644
index 6fcd8093..00000000
--- a/test/completion/inject.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-assert_bash_exec {OLDPATH="$PATH"; PATH="$PATH:/usr/lib/mailman/bin"}
-assert_source_completions inject
-assert_bash_exec {PATH="$OLDPATH"; unset -v OLDPATH}
diff --git a/test/completion/insmod.exp b/test/completion/insmod.exp
deleted file mode 100644
index 9aab37c8..00000000
--- a/test/completion/insmod.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions insmod
diff --git a/test/completion/installpkg.exp b/test/completion/installpkg.exp
deleted file mode 100644
index 47f85f41..00000000
--- a/test/completion/installpkg.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions installpkg
diff --git a/test/completion/interdiff.exp b/test/completion/interdiff.exp
deleted file mode 100644
index 97bbbdeb..00000000
--- a/test/completion/interdiff.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions interdiff
diff --git a/test/completion/invoke-rc.d.exp b/test/completion/invoke-rc.d.exp
deleted file mode 100644
index 0198d100..00000000
--- a/test/completion/invoke-rc.d.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions invoke-rc.d
diff --git a/test/completion/ionice.exp b/test/completion/ionice.exp
deleted file mode 100644
index d569f418..00000000
--- a/test/completion/ionice.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ionice
diff --git a/test/completion/ip.exp b/test/completion/ip.exp
deleted file mode 100644
index e80841e8..00000000
--- a/test/completion/ip.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ip
diff --git a/test/completion/iperf.exp b/test/completion/iperf.exp
deleted file mode 100644
index f5f19ef5..00000000
--- a/test/completion/iperf.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions iperf
diff --git a/test/completion/ipmitool.exp b/test/completion/ipmitool.exp
deleted file mode 100644
index a5c72a78..00000000
--- a/test/completion/ipmitool.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ipmitool
diff --git a/test/completion/ipsec.exp b/test/completion/ipsec.exp
deleted file mode 100644
index f904429b..00000000
--- a/test/completion/ipsec.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ipsec
diff --git a/test/completion/iptables.exp b/test/completion/iptables.exp
deleted file mode 100644
index 3c3bbc39..00000000
--- a/test/completion/iptables.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions iptables
diff --git a/test/completion/ipv6calc.exp b/test/completion/ipv6calc.exp
deleted file mode 100644
index b1c3c181..00000000
--- a/test/completion/ipv6calc.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ipv6calc
diff --git a/test/completion/irb.exp b/test/completion/irb.exp
deleted file mode 100644
index 02f166f8..00000000
--- a/test/completion/irb.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions irb
diff --git a/test/completion/iscsiadm.exp b/test/completion/iscsiadm.exp
deleted file mode 100644
index 6d760dd4..00000000
--- a/test/completion/iscsiadm.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions iscsiadm
diff --git a/test/completion/isql.exp b/test/completion/isql.exp
deleted file mode 100644
index d06295b7..00000000
--- a/test/completion/isql.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions isql
diff --git a/test/completion/iwconfig.exp b/test/completion/iwconfig.exp
deleted file mode 100644
index d3935e61..00000000
--- a/test/completion/iwconfig.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions iwconfig
diff --git a/test/completion/iwlist.exp b/test/completion/iwlist.exp
deleted file mode 100644
index 5293e3b1..00000000
--- a/test/completion/iwlist.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions iwlist
diff --git a/test/completion/iwpriv.exp b/test/completion/iwpriv.exp
deleted file mode 100644
index 5caa8410..00000000
--- a/test/completion/iwpriv.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions iwpriv
diff --git a/test/completion/iwspy.exp b/test/completion/iwspy.exp
deleted file mode 100644
index 08476d3d..00000000
--- a/test/completion/iwspy.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions iwspy
diff --git a/test/completion/jar.exp b/test/completion/jar.exp
deleted file mode 100644
index f9dbdc79..00000000
--- a/test/completion/jar.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions jar
diff --git a/test/completion/jarsigner.exp b/test/completion/jarsigner.exp
deleted file mode 100644
index 21b84fea..00000000
--- a/test/completion/jarsigner.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions jarsigner
diff --git a/test/completion/java.exp b/test/completion/java.exp
deleted file mode 100644
index fbea3c32..00000000
--- a/test/completion/java.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions java
diff --git a/test/completion/javac.exp b/test/completion/javac.exp
deleted file mode 100644
index 1bc9403e..00000000
--- a/test/completion/javac.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions javac
diff --git a/test/completion/javadoc.exp b/test/completion/javadoc.exp
deleted file mode 100644
index 0fcca89c..00000000
--- a/test/completion/javadoc.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions javadoc
diff --git a/test/completion/javaws.exp b/test/completion/javaws.exp
deleted file mode 100644
index c1c6b106..00000000
--- a/test/completion/javaws.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions javaws
diff --git a/test/completion/jpegoptim.exp b/test/completion/jpegoptim.exp
deleted file mode 100644
index 1d43b944..00000000
--- a/test/completion/jpegoptim.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions jpegoptim
diff --git a/test/completion/jps.exp b/test/completion/jps.exp
deleted file mode 100644
index 8a04f645..00000000
--- a/test/completion/jps.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions jps
diff --git a/test/completion/jshint.exp b/test/completion/jshint.exp
deleted file mode 100644
index 4416472c..00000000
--- a/test/completion/jshint.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions jshint
diff --git a/test/completion/k3b.exp b/test/completion/k3b.exp
deleted file mode 100644
index 6d71bbef..00000000
--- a/test/completion/k3b.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions k3b
diff --git a/test/completion/kcov.exp b/test/completion/kcov.exp
deleted file mode 100644
index 4f0b9a7c..00000000
--- a/test/completion/kcov.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions kcov
diff --git a/test/completion/kdvi.exp b/test/completion/kdvi.exp
deleted file mode 100644
index 9f6aa664..00000000
--- a/test/completion/kdvi.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions kdvi
diff --git a/test/completion/kill.exp b/test/completion/kill.exp
deleted file mode 100644
index 98efb326..00000000
--- a/test/completion/kill.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions kill
diff --git a/test/completion/killall.exp b/test/completion/killall.exp
deleted file mode 100644
index 8cf4fe58..00000000
--- a/test/completion/killall.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions killall
diff --git a/test/completion/kldload.exp b/test/completion/kldload.exp
deleted file mode 100644
index 23ad008b..00000000
--- a/test/completion/kldload.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions kldload
diff --git a/test/completion/kldunload.exp b/test/completion/kldunload.exp
deleted file mode 100644
index 26219f20..00000000
--- a/test/completion/kldunload.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions kldunload
diff --git a/test/completion/koji.exp b/test/completion/koji.exp
deleted file mode 100644
index 4d85dfc2..00000000
--- a/test/completion/koji.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions koji
diff --git a/test/completion/kpdf.exp b/test/completion/kpdf.exp
deleted file mode 100644
index d0a17749..00000000
--- a/test/completion/kpdf.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions kpdf
diff --git a/test/completion/kplayer.exp b/test/completion/kplayer.exp
deleted file mode 100644
index 0812c045..00000000
--- a/test/completion/kplayer.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions kplayer
diff --git a/test/completion/ktutil.exp b/test/completion/ktutil.exp
deleted file mode 100644
index 430316f3..00000000
--- a/test/completion/ktutil.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ktutil
diff --git a/test/completion/l2ping.exp b/test/completion/l2ping.exp
deleted file mode 100644
index 5bd300d3..00000000
--- a/test/completion/l2ping.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions l2ping
diff --git a/test/completion/larch.exp b/test/completion/larch.exp
deleted file mode 100644
index ccf332ee..00000000
--- a/test/completion/larch.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions larch
diff --git a/test/completion/lastlog.exp b/test/completion/lastlog.exp
deleted file mode 100644
index cefb67b9..00000000
--- a/test/completion/lastlog.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions lastlog
diff --git a/test/completion/ld.exp b/test/completion/ld.exp
deleted file mode 100644
index fcbc43da..00000000
--- a/test/completion/ld.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ld
diff --git a/test/completion/ldapadd.exp b/test/completion/ldapadd.exp
deleted file mode 100644
index 2c74de74..00000000
--- a/test/completion/ldapadd.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ldapadd
diff --git a/test/completion/ldapcompare.exp b/test/completion/ldapcompare.exp
deleted file mode 100644
index bb1db4c3..00000000
--- a/test/completion/ldapcompare.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ldapcompare
diff --git a/test/completion/ldapdelete.exp b/test/completion/ldapdelete.exp
deleted file mode 100644
index 76027d9f..00000000
--- a/test/completion/ldapdelete.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ldapdelete
diff --git a/test/completion/ldapmodrdn.exp b/test/completion/ldapmodrdn.exp
deleted file mode 100644
index 9614af6c..00000000
--- a/test/completion/ldapmodrdn.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ldapmodrdn
diff --git a/test/completion/ldappasswd.exp b/test/completion/ldappasswd.exp
deleted file mode 100644
index 0a5ac72c..00000000
--- a/test/completion/ldappasswd.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ldappasswd
diff --git a/test/completion/ldapsearch.exp b/test/completion/ldapsearch.exp
deleted file mode 100644
index c552967d..00000000
--- a/test/completion/ldapsearch.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ldapsearch
diff --git a/test/completion/ldapvi.exp b/test/completion/ldapvi.exp
deleted file mode 100644
index 2e3ddef2..00000000
--- a/test/completion/ldapvi.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ldapvi
diff --git a/test/completion/ldapwhoami.exp b/test/completion/ldapwhoami.exp
deleted file mode 100644
index 9d07d8a8..00000000
--- a/test/completion/ldapwhoami.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ldapwhoami
diff --git a/test/completion/ldd.exp b/test/completion/ldd.exp
deleted file mode 100644
index af175bef..00000000
--- a/test/completion/ldd.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ldd
diff --git a/test/completion/less.exp b/test/completion/less.exp
deleted file mode 100644
index 1a18c817..00000000
--- a/test/completion/less.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions less
diff --git a/test/completion/lftp.exp b/test/completion/lftp.exp
deleted file mode 100644
index 90f307b8..00000000
--- a/test/completion/lftp.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions lftp
diff --git a/test/completion/lftpget.exp b/test/completion/lftpget.exp
deleted file mode 100644
index 26c40cb8..00000000
--- a/test/completion/lftpget.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions lftpget
diff --git a/test/completion/lilo.exp b/test/completion/lilo.exp
deleted file mode 100644
index 94076365..00000000
--- a/test/completion/lilo.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions lilo
diff --git a/test/completion/links.exp b/test/completion/links.exp
deleted file mode 100644
index 36af0ddf..00000000
--- a/test/completion/links.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions links
diff --git a/test/completion/lintian-info.exp b/test/completion/lintian-info.exp
deleted file mode 100644
index 9dcb3fce..00000000
--- a/test/completion/lintian-info.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions lintian-info
diff --git a/test/completion/lintian.exp b/test/completion/lintian.exp
deleted file mode 100644
index 3662b0de..00000000
--- a/test/completion/lintian.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions lintian
diff --git a/test/completion/lisp.exp b/test/completion/lisp.exp
deleted file mode 100644
index f531d8e2..00000000
--- a/test/completion/lisp.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions lisp
diff --git a/test/completion/list_admins.exp b/test/completion/list_admins.exp
deleted file mode 100644
index 17d9f57a..00000000
--- a/test/completion/list_admins.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions list_admins
diff --git a/test/completion/list_lists.exp b/test/completion/list_lists.exp
deleted file mode 100644
index 28a381cd..00000000
--- a/test/completion/list_lists.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions list_lists
diff --git a/test/completion/list_members.exp b/test/completion/list_members.exp
deleted file mode 100644
index 89b6e1ef..00000000
--- a/test/completion/list_members.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions list_members
diff --git a/test/completion/list_owners.exp b/test/completion/list_owners.exp
deleted file mode 100644
index 9f6cf03d..00000000
--- a/test/completion/list_owners.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-assert_bash_exec {OLDPATH="$PATH"; PATH="$PATH:/usr/lib/mailman/bin"}
-assert_source_completions list_owners
-assert_bash_exec {PATH="$OLDPATH"; unset -v OLDPATH}
diff --git a/test/completion/ln.exp b/test/completion/ln.exp
deleted file mode 100644
index db4fe381..00000000
--- a/test/completion/ln.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ln
diff --git a/test/completion/look.exp b/test/completion/look.exp
deleted file mode 100644
index 3a781af4..00000000
--- a/test/completion/look.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions look
diff --git a/test/completion/lpq.exp b/test/completion/lpq.exp
deleted file mode 100644
index 062d0c09..00000000
--- a/test/completion/lpq.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions lpq
diff --git a/test/completion/lpr.exp b/test/completion/lpr.exp
deleted file mode 100644
index 6f65fee3..00000000
--- a/test/completion/lpr.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions lpr
diff --git a/test/completion/lrzip.exp b/test/completion/lrzip.exp
deleted file mode 100644
index 60616f00..00000000
--- a/test/completion/lrzip.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions lrzip
diff --git a/test/completion/ls.exp b/test/completion/ls.exp
deleted file mode 100644
index c98d3463..00000000
--- a/test/completion/ls.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ls
diff --git a/test/completion/lsof.exp b/test/completion/lsof.exp
deleted file mode 100644
index 98baab04..00000000
--- a/test/completion/lsof.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions lsof
diff --git a/test/completion/lspci.exp b/test/completion/lspci.exp
deleted file mode 100644
index 7b287827..00000000
--- a/test/completion/lspci.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions lspci
diff --git a/test/completion/lsscsi.exp b/test/completion/lsscsi.exp
deleted file mode 100644
index 4b19b1fd..00000000
--- a/test/completion/lsscsi.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions lsscsi
diff --git a/test/completion/lsusb.exp b/test/completion/lsusb.exp
deleted file mode 100644
index 0a75f462..00000000
--- a/test/completion/lsusb.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions lsusb
diff --git a/test/completion/lua.exp b/test/completion/lua.exp
deleted file mode 100644
index a5774f4f..00000000
--- a/test/completion/lua.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions lua
diff --git a/test/completion/luac.exp b/test/completion/luac.exp
deleted file mode 100644
index 63f49ee7..00000000
--- a/test/completion/luac.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions luac
diff --git a/test/completion/luseradd.exp b/test/completion/luseradd.exp
deleted file mode 100644
index 69b10cfe..00000000
--- a/test/completion/luseradd.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions luseradd
diff --git a/test/completion/luserdel.exp b/test/completion/luserdel.exp
deleted file mode 100644
index 289a4c32..00000000
--- a/test/completion/luserdel.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions luserdel
diff --git a/test/completion/lusermod.exp b/test/completion/lusermod.exp
deleted file mode 100644
index 9ca4cecc..00000000
--- a/test/completion/lusermod.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions lusermod
diff --git a/test/completion/lvchange.exp b/test/completion/lvchange.exp
deleted file mode 100644
index 400a6c5f..00000000
--- a/test/completion/lvchange.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions lvchange
diff --git a/test/completion/lvcreate.exp b/test/completion/lvcreate.exp
deleted file mode 100644
index f211c6d5..00000000
--- a/test/completion/lvcreate.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions lvcreate
diff --git a/test/completion/lvdisplay.exp b/test/completion/lvdisplay.exp
deleted file mode 100644
index 0d4540b3..00000000
--- a/test/completion/lvdisplay.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions lvdisplay
diff --git a/test/completion/lvextend.exp b/test/completion/lvextend.exp
deleted file mode 100644
index 84c1b526..00000000
--- a/test/completion/lvextend.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions lvextend
diff --git a/test/completion/lvm.exp b/test/completion/lvm.exp
deleted file mode 100644
index ff3e80fd..00000000
--- a/test/completion/lvm.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions lvm
diff --git a/test/completion/lvmdiskscan.exp b/test/completion/lvmdiskscan.exp
deleted file mode 100644
index c1f4f5f8..00000000
--- a/test/completion/lvmdiskscan.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions lvmdiskscan
diff --git a/test/completion/lvreduce.exp b/test/completion/lvreduce.exp
deleted file mode 100644
index c9cd8732..00000000
--- a/test/completion/lvreduce.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions lvreduce
diff --git a/test/completion/lvremove.exp b/test/completion/lvremove.exp
deleted file mode 100644
index 475202fb..00000000
--- a/test/completion/lvremove.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions lvremove
diff --git a/test/completion/lvrename.exp b/test/completion/lvrename.exp
deleted file mode 100644
index 32e7f626..00000000
--- a/test/completion/lvrename.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions lvrename
diff --git a/test/completion/lvresize.exp b/test/completion/lvresize.exp
deleted file mode 100644
index dd05dbdc..00000000
--- a/test/completion/lvresize.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions lvresize
diff --git a/test/completion/lvs.exp b/test/completion/lvs.exp
deleted file mode 100644
index 796c8b2d..00000000
--- a/test/completion/lvs.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions lvs
diff --git a/test/completion/lvscan.exp b/test/completion/lvscan.exp
deleted file mode 100644
index 549c9fdb..00000000
--- a/test/completion/lvscan.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions lvscan
diff --git a/test/completion/lz4.exp b/test/completion/lz4.exp
deleted file mode 100644
index 9db680ed..00000000
--- a/test/completion/lz4.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions lz4
diff --git a/test/completion/lzip.exp b/test/completion/lzip.exp
deleted file mode 100644
index faa83a41..00000000
--- a/test/completion/lzip.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions lzip
diff --git a/test/completion/lzma.exp b/test/completion/lzma.exp
deleted file mode 100644
index 8d3f637b..00000000
--- a/test/completion/lzma.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions lzma
diff --git a/test/completion/lzop.exp b/test/completion/lzop.exp
deleted file mode 100644
index 99d8e67e..00000000
--- a/test/completion/lzop.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions lzop
diff --git a/test/completion/m4.exp b/test/completion/m4.exp
deleted file mode 100644
index 475fb9a9..00000000
--- a/test/completion/m4.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions m4
diff --git a/test/completion/macof.exp b/test/completion/macof.exp
deleted file mode 100644
index 0942c213..00000000
--- a/test/completion/macof.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions macof
diff --git a/test/completion/mailmanctl.exp b/test/completion/mailmanctl.exp
deleted file mode 100644
index 58773291..00000000
--- a/test/completion/mailmanctl.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-assert_bash_exec {OLDPATH="$PATH"; PATH="$PATH:/usr/lib/mailman/bin"}
-assert_source_completions mailmanctl
-assert_bash_exec {PATH="$OLDPATH"; unset -v OLDPATH}
diff --git a/test/completion/mailsnarf.exp b/test/completion/mailsnarf.exp
deleted file mode 100644
index c3e20e2a..00000000
--- a/test/completion/mailsnarf.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions mailsnarf
diff --git a/test/completion/make.exp b/test/completion/make.exp
deleted file mode 100644
index 483c7fe8..00000000
--- a/test/completion/make.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions make
diff --git a/test/completion/makepkg.exp b/test/completion/makepkg.exp
deleted file mode 100644
index a4f5e38c..00000000
--- a/test/completion/makepkg.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions makepkg
diff --git a/test/completion/man.exp b/test/completion/man.exp
deleted file mode 100644
index 7bae8c03..00000000
--- a/test/completion/man.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions man
diff --git a/test/completion/mc.exp b/test/completion/mc.exp
deleted file mode 100644
index 37471b40..00000000
--- a/test/completion/mc.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions mc
diff --git a/test/completion/mcrypt.exp b/test/completion/mcrypt.exp
deleted file mode 100644
index 086b0581..00000000
--- a/test/completion/mcrypt.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions mcrypt
diff --git a/test/completion/md5sum.exp b/test/completion/md5sum.exp
deleted file mode 100644
index 3378b370..00000000
--- a/test/completion/md5sum.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions md5sum
diff --git a/test/completion/mdadm.exp b/test/completion/mdadm.exp
deleted file mode 100644
index ad3c36f4..00000000
--- a/test/completion/mdadm.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions mdadm
diff --git a/test/completion/mdecrypt.exp b/test/completion/mdecrypt.exp
deleted file mode 100644
index daab2196..00000000
--- a/test/completion/mdecrypt.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions mdecrypt
diff --git a/test/completion/mdtool.exp b/test/completion/mdtool.exp
deleted file mode 100644
index f7604e13..00000000
--- a/test/completion/mdtool.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions mdtool
diff --git a/test/completion/medusa.exp b/test/completion/medusa.exp
deleted file mode 100644
index 237cdd54..00000000
--- a/test/completion/medusa.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions medusa
diff --git a/test/completion/mencoder.exp b/test/completion/mencoder.exp
deleted file mode 100644
index 6c4fa23d..00000000
--- a/test/completion/mencoder.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions mencoder
diff --git a/test/completion/mii-diag.exp b/test/completion/mii-diag.exp
deleted file mode 100644
index b4ddef79..00000000
--- a/test/completion/mii-diag.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions mii-diag
diff --git a/test/completion/mii-tool.exp b/test/completion/mii-tool.exp
deleted file mode 100644
index cd12f228..00000000
--- a/test/completion/mii-tool.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions mii-tool
diff --git a/test/completion/minicom.exp b/test/completion/minicom.exp
deleted file mode 100644
index cef598e9..00000000
--- a/test/completion/minicom.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions minicom
diff --git a/test/completion/mkdir.exp b/test/completion/mkdir.exp
deleted file mode 100644
index f4bad3b9..00000000
--- a/test/completion/mkdir.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions mkdir
diff --git a/test/completion/mkfifo.exp b/test/completion/mkfifo.exp
deleted file mode 100644
index 706b36f4..00000000
--- a/test/completion/mkfifo.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions mkfifo
diff --git a/test/completion/mkinitrd.exp b/test/completion/mkinitrd.exp
deleted file mode 100644
index e8f4e119..00000000
--- a/test/completion/mkinitrd.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions mkinitrd
diff --git a/test/completion/mkisofs.exp b/test/completion/mkisofs.exp
deleted file mode 100644
index a94d833b..00000000
--- a/test/completion/mkisofs.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions mkisofs
diff --git a/test/completion/mknod.exp b/test/completion/mknod.exp
deleted file mode 100644
index 89f0cefd..00000000
--- a/test/completion/mknod.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions mknod
diff --git a/test/completion/mktemp.exp b/test/completion/mktemp.exp
deleted file mode 100644
index b8296865..00000000
--- a/test/completion/mktemp.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions mktemp
diff --git a/test/completion/mmsitepass.exp b/test/completion/mmsitepass.exp
deleted file mode 100644
index c54c53b2..00000000
--- a/test/completion/mmsitepass.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions mmsitepass
diff --git a/test/completion/mock.exp b/test/completion/mock.exp
deleted file mode 100644
index 22910a84..00000000
--- a/test/completion/mock.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions mock
diff --git a/test/completion/modinfo.exp b/test/completion/modinfo.exp
deleted file mode 100644
index 88384543..00000000
--- a/test/completion/modinfo.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions modinfo
diff --git a/test/completion/modprobe.exp b/test/completion/modprobe.exp
deleted file mode 100644
index 405ca8e1..00000000
--- a/test/completion/modprobe.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions modprobe
diff --git a/test/completion/module.exp b/test/completion/module.exp
deleted file mode 100644
index 3db6d110..00000000
--- a/test/completion/module.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions module
diff --git a/test/completion/mogrify.exp b/test/completion/mogrify.exp
deleted file mode 100644
index ad3ff02a..00000000
--- a/test/completion/mogrify.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions mogrify
diff --git a/test/completion/monodevelop.exp b/test/completion/monodevelop.exp
deleted file mode 100644
index 1c4fd45b..00000000
--- a/test/completion/monodevelop.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions monodevelop
diff --git a/test/completion/montage.exp b/test/completion/montage.exp
deleted file mode 100644
index afb11ad5..00000000
--- a/test/completion/montage.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions montage
diff --git a/test/completion/mount.exp b/test/completion/mount.exp
deleted file mode 100644
index 2561e20a..00000000
--- a/test/completion/mount.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions mount
diff --git a/test/completion/mplayer.exp b/test/completion/mplayer.exp
deleted file mode 100644
index 5c38af87..00000000
--- a/test/completion/mplayer.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions mplayer
diff --git a/test/completion/mr.exp b/test/completion/mr.exp
deleted file mode 100644
index 85f38ccd..00000000
--- a/test/completion/mr.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions mr
diff --git a/test/completion/msgsnarf.exp b/test/completion/msgsnarf.exp
deleted file mode 100644
index cdcbf43d..00000000
--- a/test/completion/msgsnarf.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions msgsnarf
diff --git a/test/completion/msynctool.exp b/test/completion/msynctool.exp
deleted file mode 100644
index 76be37ef..00000000
--- a/test/completion/msynctool.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions msynctool
diff --git a/test/completion/mtx.exp b/test/completion/mtx.exp
deleted file mode 100644
index 6be7a2ff..00000000
--- a/test/completion/mtx.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions mtx
diff --git a/test/completion/munin-node-configure.exp b/test/completion/munin-node-configure.exp
deleted file mode 100644
index 34318e83..00000000
--- a/test/completion/munin-node-configure.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions munin-node-configure
diff --git a/test/completion/munin-run.exp b/test/completion/munin-run.exp
deleted file mode 100644
index 2a7d6c72..00000000
--- a/test/completion/munin-run.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions munin-run
diff --git a/test/completion/munindoc.exp b/test/completion/munindoc.exp
deleted file mode 100644
index ea4d0fa2..00000000
--- a/test/completion/munindoc.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions munindoc
diff --git a/test/completion/mussh.exp b/test/completion/mussh.exp
deleted file mode 100644
index 1232287c..00000000
--- a/test/completion/mussh.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions mussh
diff --git a/test/completion/mutt.exp b/test/completion/mutt.exp
deleted file mode 100644
index 5fb8c339..00000000
--- a/test/completion/mutt.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions mutt
diff --git a/test/completion/muttng.exp b/test/completion/muttng.exp
deleted file mode 100644
index b06b574d..00000000
--- a/test/completion/muttng.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions muttng
diff --git a/test/completion/mv.exp b/test/completion/mv.exp
deleted file mode 100644
index b7d22766..00000000
--- a/test/completion/mv.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions mv
diff --git a/test/completion/mysql.exp b/test/completion/mysql.exp
deleted file mode 100644
index ad9fac69..00000000
--- a/test/completion/mysql.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions mysql
diff --git a/test/completion/mysqladmin.exp b/test/completion/mysqladmin.exp
deleted file mode 100644
index 61769d26..00000000
--- a/test/completion/mysqladmin.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions mysqladmin
diff --git a/test/completion/nc.exp b/test/completion/nc.exp
deleted file mode 100644
index a5c06b2d..00000000
--- a/test/completion/nc.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions nc
diff --git a/test/completion/ncftp.exp b/test/completion/ncftp.exp
deleted file mode 100644
index c5db3f96..00000000
--- a/test/completion/ncftp.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ncftp
diff --git a/test/completion/nethogs.exp b/test/completion/nethogs.exp
deleted file mode 100644
index 4d501ace..00000000
--- a/test/completion/nethogs.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions nethogs
diff --git a/test/completion/netstat.exp b/test/completion/netstat.exp
deleted file mode 100644
index bee92789..00000000
--- a/test/completion/netstat.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions netstat
diff --git a/test/completion/newgrp.exp b/test/completion/newgrp.exp
deleted file mode 100644
index bbd12372..00000000
--- a/test/completion/newgrp.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions newgrp
diff --git a/test/completion/newlist.exp b/test/completion/newlist.exp
deleted file mode 100644
index ac05a92f..00000000
--- a/test/completion/newlist.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions newlist
diff --git a/test/completion/newusers.exp b/test/completion/newusers.exp
deleted file mode 100644
index c9ea45c6..00000000
--- a/test/completion/newusers.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions newusers
diff --git a/test/completion/ngrep.exp b/test/completion/ngrep.exp
deleted file mode 100644
index 3ad711b1..00000000
--- a/test/completion/ngrep.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ngrep
diff --git a/test/completion/nl.exp b/test/completion/nl.exp
deleted file mode 100644
index c788a06b..00000000
--- a/test/completion/nl.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions nl
diff --git a/test/completion/nm.exp b/test/completion/nm.exp
deleted file mode 100644
index 99ccd370..00000000
--- a/test/completion/nm.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions nm
diff --git a/test/completion/nmap.exp b/test/completion/nmap.exp
deleted file mode 100644
index 441d1377..00000000
--- a/test/completion/nmap.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions nmap
diff --git a/test/completion/nmcli.exp b/test/completion/nmcli.exp
deleted file mode 100644
index 816468f7..00000000
--- a/test/completion/nmcli.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions nmcli
diff --git a/test/completion/nproc.exp b/test/completion/nproc.exp
deleted file mode 100644
index f2378bfa..00000000
--- a/test/completion/nproc.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions nproc
diff --git a/test/completion/nslookup.exp b/test/completion/nslookup.exp
deleted file mode 100644
index 5a26b495..00000000
--- a/test/completion/nslookup.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions nslookup
diff --git a/test/completion/ntpdate.exp b/test/completion/ntpdate.exp
deleted file mode 100644
index d40bbd73..00000000
--- a/test/completion/ntpdate.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ntpdate
diff --git a/test/completion/objcopy.exp b/test/completion/objcopy.exp
deleted file mode 100644
index 579d9ba9..00000000
--- a/test/completion/objcopy.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions objcopy
diff --git a/test/completion/objdump.exp b/test/completion/objdump.exp
deleted file mode 100644
index 78689842..00000000
--- a/test/completion/objdump.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions objdump
diff --git a/test/completion/od.exp b/test/completion/od.exp
deleted file mode 100644
index e9ec0f8f..00000000
--- a/test/completion/od.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions od
diff --git a/test/completion/oggdec.exp b/test/completion/oggdec.exp
deleted file mode 100644
index b18643d5..00000000
--- a/test/completion/oggdec.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions oggdec
diff --git a/test/completion/openssl.exp b/test/completion/openssl.exp
deleted file mode 100644
index 281cbf9c..00000000
--- a/test/completion/openssl.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions openssl
diff --git a/test/completion/opera.exp b/test/completion/opera.exp
deleted file mode 100644
index 9ab6a08f..00000000
--- a/test/completion/opera.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions opera
diff --git a/test/completion/optipng.exp b/test/completion/optipng.exp
deleted file mode 100644
index b3207543..00000000
--- a/test/completion/optipng.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions optipng
diff --git a/test/completion/p4.exp b/test/completion/p4.exp
deleted file mode 100644
index 9301a04b..00000000
--- a/test/completion/p4.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions p4
diff --git a/test/completion/pack200.exp b/test/completion/pack200.exp
deleted file mode 100644
index b20f8178..00000000
--- a/test/completion/pack200.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pack200
diff --git a/test/completion/passwd.exp b/test/completion/passwd.exp
deleted file mode 100644
index 2f0bec9b..00000000
--- a/test/completion/passwd.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions passwd
diff --git a/test/completion/paste.exp b/test/completion/paste.exp
deleted file mode 100644
index ab2f1249..00000000
--- a/test/completion/paste.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions paste
diff --git a/test/completion/patch.exp b/test/completion/patch.exp
deleted file mode 100644
index 27d69363..00000000
--- a/test/completion/patch.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions patch
diff --git a/test/completion/pdftotext.exp b/test/completion/pdftotext.exp
deleted file mode 100644
index d84cee5d..00000000
--- a/test/completion/pdftotext.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pdftotext
diff --git a/test/completion/perl.exp b/test/completion/perl.exp
deleted file mode 100644
index 617a7b18..00000000
--- a/test/completion/perl.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions perl
diff --git a/test/completion/perldoc.exp b/test/completion/perldoc.exp
deleted file mode 100644
index d0d49b1a..00000000
--- a/test/completion/perldoc.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions perldoc
diff --git a/test/completion/perltidy.exp b/test/completion/perltidy.exp
deleted file mode 100644
index c4b577dd..00000000
--- a/test/completion/perltidy.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions perltidy
diff --git a/test/completion/pgrep.exp b/test/completion/pgrep.exp
deleted file mode 100644
index 6deac165..00000000
--- a/test/completion/pgrep.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pgrep
diff --git a/test/completion/phing.exp b/test/completion/phing.exp
deleted file mode 100644
index 957999bc..00000000
--- a/test/completion/phing.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions phing
diff --git a/test/completion/pidof.exp b/test/completion/pidof.exp
deleted file mode 100644
index c66ee9f9..00000000
--- a/test/completion/pidof.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pidof
diff --git a/test/completion/pine.exp b/test/completion/pine.exp
deleted file mode 100644
index 635d79b9..00000000
--- a/test/completion/pine.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pine
diff --git a/test/completion/pinfo.exp b/test/completion/pinfo.exp
deleted file mode 100644
index 3e937568..00000000
--- a/test/completion/pinfo.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pinfo
diff --git a/test/completion/ping.exp b/test/completion/ping.exp
deleted file mode 100644
index f006ea25..00000000
--- a/test/completion/ping.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ping
diff --git a/test/completion/pkg-config.exp b/test/completion/pkg-config.exp
deleted file mode 100644
index 03d8dc41..00000000
--- a/test/completion/pkg-config.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pkg-config
diff --git a/test/completion/pkg-get.exp b/test/completion/pkg-get.exp
deleted file mode 100644
index 4499142f..00000000
--- a/test/completion/pkg-get.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pkg-get
diff --git a/test/completion/pkg_deinstall.exp b/test/completion/pkg_deinstall.exp
deleted file mode 100644
index e7a666cd..00000000
--- a/test/completion/pkg_deinstall.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pkg_deinstall
diff --git a/test/completion/pkg_delete.exp b/test/completion/pkg_delete.exp
deleted file mode 100644
index f66049e0..00000000
--- a/test/completion/pkg_delete.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pkg_delete
diff --git a/test/completion/pkg_info.exp b/test/completion/pkg_info.exp
deleted file mode 100644
index e5387cdb..00000000
--- a/test/completion/pkg_info.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pkg_info
diff --git a/test/completion/pkgadd.exp b/test/completion/pkgadd.exp
deleted file mode 100644
index 128c823e..00000000
--- a/test/completion/pkgadd.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pkgadd
diff --git a/test/completion/pkgrm.exp b/test/completion/pkgrm.exp
deleted file mode 100644
index e94337ae..00000000
--- a/test/completion/pkgrm.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pkgrm
diff --git a/test/completion/pkgtool.exp b/test/completion/pkgtool.exp
deleted file mode 100644
index 4a946c52..00000000
--- a/test/completion/pkgtool.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pkgtool
diff --git a/test/completion/pkgutil.exp b/test/completion/pkgutil.exp
deleted file mode 100644
index b4d152ec..00000000
--- a/test/completion/pkgutil.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pkgutil
diff --git a/test/completion/pkill.exp b/test/completion/pkill.exp
deleted file mode 100644
index 56e30836..00000000
--- a/test/completion/pkill.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pkill
diff --git a/test/completion/plague-client.exp b/test/completion/plague-client.exp
deleted file mode 100644
index 6f9a9373..00000000
--- a/test/completion/plague-client.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions plague-client
diff --git a/test/completion/pm-hibernate.exp b/test/completion/pm-hibernate.exp
deleted file mode 100644
index b0a6360c..00000000
--- a/test/completion/pm-hibernate.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pm-hibernate
diff --git a/test/completion/pm-is-supported.exp b/test/completion/pm-is-supported.exp
deleted file mode 100644
index 62d1f2ff..00000000
--- a/test/completion/pm-is-supported.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pm-is-supported
diff --git a/test/completion/pm-powersave.exp b/test/completion/pm-powersave.exp
deleted file mode 100644
index deb061c6..00000000
--- a/test/completion/pm-powersave.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pm-powersave
diff --git a/test/completion/pngfix.exp b/test/completion/pngfix.exp
deleted file mode 100644
index 7cea7218..00000000
--- a/test/completion/pngfix.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pngfix
diff --git a/test/completion/portinstall.exp b/test/completion/portinstall.exp
deleted file mode 100644
index 87fb5968..00000000
--- a/test/completion/portinstall.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions portinstall
diff --git a/test/completion/portsnap.exp b/test/completion/portsnap.exp
deleted file mode 100644
index 424004e0..00000000
--- a/test/completion/portsnap.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions portsnap
diff --git a/test/completion/portupgrade.exp b/test/completion/portupgrade.exp
deleted file mode 100644
index 00e8d4df..00000000
--- a/test/completion/portupgrade.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions portupgrade
diff --git a/test/completion/postcat.exp b/test/completion/postcat.exp
deleted file mode 100644
index eb4ae6da..00000000
--- a/test/completion/postcat.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions postcat
diff --git a/test/completion/postconf.exp b/test/completion/postconf.exp
deleted file mode 100644
index 7ed485c2..00000000
--- a/test/completion/postconf.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions postconf
diff --git a/test/completion/postfix.exp b/test/completion/postfix.exp
deleted file mode 100644
index 4a39d044..00000000
--- a/test/completion/postfix.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions postfix
diff --git a/test/completion/postmap.exp b/test/completion/postmap.exp
deleted file mode 100644
index 870af8d1..00000000
--- a/test/completion/postmap.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions postmap
diff --git a/test/completion/postsuper.exp b/test/completion/postsuper.exp
deleted file mode 100644
index fac52381..00000000
--- a/test/completion/postsuper.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions postsuper
diff --git a/test/completion/povray.exp b/test/completion/povray.exp
deleted file mode 100644
index 4d49702f..00000000
--- a/test/completion/povray.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions povray
diff --git a/test/completion/pr.exp b/test/completion/pr.exp
deleted file mode 100644
index 940bfe40..00000000
--- a/test/completion/pr.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pr
diff --git a/test/completion/prelink.exp b/test/completion/prelink.exp
deleted file mode 100644
index d1fbb8ee..00000000
--- a/test/completion/prelink.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions prelink
diff --git a/test/completion/protoc.exp b/test/completion/protoc.exp
deleted file mode 100644
index 333ebf26..00000000
--- a/test/completion/protoc.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions protoc
diff --git a/test/completion/psql.exp b/test/completion/psql.exp
deleted file mode 100644
index 619d9e13..00000000
--- a/test/completion/psql.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions psql
diff --git a/test/completion/ptx.exp b/test/completion/ptx.exp
deleted file mode 100644
index 4ab752b5..00000000
--- a/test/completion/ptx.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ptx
diff --git a/test/completion/puppet.exp b/test/completion/puppet.exp
deleted file mode 100644
index 28463445..00000000
--- a/test/completion/puppet.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions puppet
diff --git a/test/completion/pushd.exp b/test/completion/pushd.exp
deleted file mode 100644
index 44556cdb..00000000
--- a/test/completion/pushd.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pushd
diff --git a/test/completion/pv.exp b/test/completion/pv.exp
deleted file mode 100644
index 2dffce6e..00000000
--- a/test/completion/pv.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pv
diff --git a/test/completion/pvchange.exp b/test/completion/pvchange.exp
deleted file mode 100644
index d6f35360..00000000
--- a/test/completion/pvchange.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pvchange
diff --git a/test/completion/pvcreate.exp b/test/completion/pvcreate.exp
deleted file mode 100644
index 1542baa5..00000000
--- a/test/completion/pvcreate.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pvcreate
diff --git a/test/completion/pvdisplay.exp b/test/completion/pvdisplay.exp
deleted file mode 100644
index bcbcb588..00000000
--- a/test/completion/pvdisplay.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pvdisplay
diff --git a/test/completion/pvmove.exp b/test/completion/pvmove.exp
deleted file mode 100644
index 43151934..00000000
--- a/test/completion/pvmove.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pvmove
diff --git a/test/completion/pvremove.exp b/test/completion/pvremove.exp
deleted file mode 100644
index 3cc59769..00000000
--- a/test/completion/pvremove.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pvremove
diff --git a/test/completion/pvs.exp b/test/completion/pvs.exp
deleted file mode 100644
index 22dc03d0..00000000
--- a/test/completion/pvs.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pvs
diff --git a/test/completion/pvscan.exp b/test/completion/pvscan.exp
deleted file mode 100644
index 22b02c7f..00000000
--- a/test/completion/pvscan.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pvscan
diff --git a/test/completion/pwck.exp b/test/completion/pwck.exp
deleted file mode 100644
index 55d5f95c..00000000
--- a/test/completion/pwck.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pwck
diff --git a/test/completion/pwd.exp b/test/completion/pwd.exp
deleted file mode 100644
index e24ee974..00000000
--- a/test/completion/pwd.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pwd
diff --git a/test/completion/pwdx.exp b/test/completion/pwdx.exp
deleted file mode 100644
index dd97822a..00000000
--- a/test/completion/pwdx.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pwdx
diff --git a/test/completion/pwgen.exp b/test/completion/pwgen.exp
deleted file mode 100644
index bba75ecd..00000000
--- a/test/completion/pwgen.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pwgen
diff --git a/test/completion/py.test.exp b/test/completion/py.test.exp
deleted file mode 100644
index 8f09927d..00000000
--- a/test/completion/py.test.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions py.test
diff --git a/test/completion/pycodestyle.exp b/test/completion/pycodestyle.exp
deleted file mode 100644
index 50a3c496..00000000
--- a/test/completion/pycodestyle.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pycodestyle
diff --git a/test/completion/pydoc.exp b/test/completion/pydoc.exp
deleted file mode 100644
index 9555e850..00000000
--- a/test/completion/pydoc.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pydoc
diff --git a/test/completion/pyflakes.exp b/test/completion/pyflakes.exp
deleted file mode 100644
index b10445f6..00000000
--- a/test/completion/pyflakes.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pyflakes
diff --git a/test/completion/pylint.exp b/test/completion/pylint.exp
deleted file mode 100644
index d5a993de..00000000
--- a/test/completion/pylint.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pylint
diff --git a/test/completion/python.exp b/test/completion/python.exp
deleted file mode 100644
index 2cb7390d..00000000
--- a/test/completion/python.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions python
diff --git a/test/completion/pyvenv.exp b/test/completion/pyvenv.exp
deleted file mode 100644
index ce5c8a62..00000000
--- a/test/completion/pyvenv.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions pyvenv
diff --git a/test/completion/qemu.exp b/test/completion/qemu.exp
deleted file mode 100644
index deedd3a2..00000000
--- a/test/completion/qemu.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions qemu
diff --git a/test/completion/qrunner.exp b/test/completion/qrunner.exp
deleted file mode 100644
index e8b30af7..00000000
--- a/test/completion/qrunner.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-assert_bash_exec {OLDPATH="$PATH"; PATH="$PATH:/usr/lib/mailman/bin"}
-assert_source_completions qrunner
-assert_bash_exec {PATH="$OLDPATH"; unset -v OLDPATH}
diff --git a/test/completion/querybts.exp b/test/completion/querybts.exp
deleted file mode 100644
index 81203b2b..00000000
--- a/test/completion/querybts.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions querybts
diff --git a/test/completion/quota.exp b/test/completion/quota.exp
deleted file mode 100644
index 9c08b4f3..00000000
--- a/test/completion/quota.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions quota
diff --git a/test/completion/quotacheck.exp b/test/completion/quotacheck.exp
deleted file mode 100644
index 5b53da8f..00000000
--- a/test/completion/quotacheck.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions quotacheck
diff --git a/test/completion/quotaon.exp b/test/completion/quotaon.exp
deleted file mode 100644
index e66056fc..00000000
--- a/test/completion/quotaon.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions quotaon
diff --git a/test/completion/radvdump.exp b/test/completion/radvdump.exp
deleted file mode 100644
index e4efa171..00000000
--- a/test/completion/radvdump.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions radvdump
diff --git a/test/completion/rcs.exp b/test/completion/rcs.exp
deleted file mode 100644
index 34b21190..00000000
--- a/test/completion/rcs.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions rcs
diff --git a/test/completion/rcsdiff.exp b/test/completion/rcsdiff.exp
deleted file mode 100644
index 9cf52dcc..00000000
--- a/test/completion/rcsdiff.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions rcsdiff
diff --git a/test/completion/rdesktop.exp b/test/completion/rdesktop.exp
deleted file mode 100644
index 29eddf6e..00000000
--- a/test/completion/rdesktop.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions rdesktop
diff --git a/test/completion/rdict.exp b/test/completion/rdict.exp
deleted file mode 100644
index cea99fbc..00000000
--- a/test/completion/rdict.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions rdict
diff --git a/test/completion/readelf.exp b/test/completion/readelf.exp
deleted file mode 100644
index d0d9bc48..00000000
--- a/test/completion/readelf.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions readelf
diff --git a/test/completion/readonly.exp b/test/completion/readonly.exp
deleted file mode 100644
index f35b8e7a..00000000
--- a/test/completion/readonly.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions readonly
diff --git a/test/completion/remove_members.exp b/test/completion/remove_members.exp
deleted file mode 100644
index 0cc71ac1..00000000
--- a/test/completion/remove_members.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions remove_members
diff --git a/test/completion/removepkg.exp b/test/completion/removepkg.exp
deleted file mode 100644
index e78e01a7..00000000
--- a/test/completion/removepkg.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions removepkg
diff --git a/test/completion/renice.exp b/test/completion/renice.exp
deleted file mode 100644
index e5d6c8e5..00000000
--- a/test/completion/renice.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions renice
diff --git a/test/completion/repomanage.exp b/test/completion/repomanage.exp
deleted file mode 100644
index 79ec53b2..00000000
--- a/test/completion/repomanage.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions repomanage
diff --git a/test/completion/reportbug.exp b/test/completion/reportbug.exp
deleted file mode 100644
index 10d6cebb..00000000
--- a/test/completion/reportbug.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions reportbug
diff --git a/test/completion/reptyr.exp b/test/completion/reptyr.exp
deleted file mode 100644
index 62ab427d..00000000
--- a/test/completion/reptyr.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions reptyr
diff --git a/test/completion/resolvconf.exp b/test/completion/resolvconf.exp
deleted file mode 100644
index d4651336..00000000
--- a/test/completion/resolvconf.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions resolvconf
diff --git a/test/completion/rfcomm.exp b/test/completion/rfcomm.exp
deleted file mode 100644
index 6de31dc2..00000000
--- a/test/completion/rfcomm.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions rfcomm
diff --git a/test/completion/rfkill.exp b/test/completion/rfkill.exp
deleted file mode 100644
index 74201043..00000000
--- a/test/completion/rfkill.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions rfkill
diff --git a/test/completion/ri.exp b/test/completion/ri.exp
deleted file mode 100644
index f93d3409..00000000
--- a/test/completion/ri.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ri
diff --git a/test/completion/rlog.exp b/test/completion/rlog.exp
deleted file mode 100644
index 9af48c09..00000000
--- a/test/completion/rlog.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions rlog
diff --git a/test/completion/rm.exp b/test/completion/rm.exp
deleted file mode 100644
index 6a99948b..00000000
--- a/test/completion/rm.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions rm
diff --git a/test/completion/rmdir.exp b/test/completion/rmdir.exp
deleted file mode 100644
index a7435b82..00000000
--- a/test/completion/rmdir.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions rmdir
diff --git a/test/completion/rmlist.exp b/test/completion/rmlist.exp
deleted file mode 100644
index ac4dd513..00000000
--- a/test/completion/rmlist.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions rmlist
diff --git a/test/completion/rmmod.exp b/test/completion/rmmod.exp
deleted file mode 100644
index 040c7372..00000000
--- a/test/completion/rmmod.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions rmmod
diff --git a/test/completion/route.exp b/test/completion/route.exp
deleted file mode 100644
index beff8251..00000000
--- a/test/completion/route.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions route
diff --git a/test/completion/rpcdebug.exp b/test/completion/rpcdebug.exp
deleted file mode 100644
index add86388..00000000
--- a/test/completion/rpcdebug.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions rpcdebug
diff --git a/test/completion/rpm.exp b/test/completion/rpm.exp
deleted file mode 100644
index c583e56c..00000000
--- a/test/completion/rpm.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions rpm
diff --git a/test/completion/rpm2tgz.exp b/test/completion/rpm2tgz.exp
deleted file mode 100644
index 6acd954a..00000000
--- a/test/completion/rpm2tgz.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions rpm2tgz
diff --git a/test/completion/rpmbuild.exp b/test/completion/rpmbuild.exp
deleted file mode 100644
index f829b588..00000000
--- a/test/completion/rpmbuild.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions rpmbuild
diff --git a/test/completion/rrdtool.exp b/test/completion/rrdtool.exp
deleted file mode 100644
index 72016859..00000000
--- a/test/completion/rrdtool.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions rrdtool
diff --git a/test/completion/rsync.exp b/test/completion/rsync.exp
deleted file mode 100644
index d927b509..00000000
--- a/test/completion/rsync.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions rsync
diff --git a/test/completion/rtcwake.exp b/test/completion/rtcwake.exp
deleted file mode 100644
index abedd8de..00000000
--- a/test/completion/rtcwake.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions rtcwake
diff --git a/test/completion/runuser.exp b/test/completion/runuser.exp
deleted file mode 100644
index ed0abdcf..00000000
--- a/test/completion/runuser.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions runuser
diff --git a/test/completion/sbcl-mt.exp b/test/completion/sbcl-mt.exp
deleted file mode 100644
index a5485f14..00000000
--- a/test/completion/sbcl-mt.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions sbcl-mt
diff --git a/test/completion/sbcl.exp b/test/completion/sbcl.exp
deleted file mode 100644
index 865f9509..00000000
--- a/test/completion/sbcl.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions sbcl
diff --git a/test/completion/sbopkg.exp b/test/completion/sbopkg.exp
deleted file mode 100644
index 0fec4db1..00000000
--- a/test/completion/sbopkg.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions sbopkg
diff --git a/test/completion/screen.exp b/test/completion/screen.exp
deleted file mode 100644
index 8fce61d0..00000000
--- a/test/completion/screen.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions screen
diff --git a/test/completion/sdptool.exp b/test/completion/sdptool.exp
deleted file mode 100644
index 6d20cf99..00000000
--- a/test/completion/sdptool.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions sdptool
diff --git a/test/completion/sed.exp b/test/completion/sed.exp
deleted file mode 100644
index e4ce16f8..00000000
--- a/test/completion/sed.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions sed
diff --git a/test/completion/seq.exp b/test/completion/seq.exp
deleted file mode 100644
index 4123ba9d..00000000
--- a/test/completion/seq.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions seq
diff --git a/test/completion/service.exp b/test/completion/service.exp
deleted file mode 100644
index a1bae6a4..00000000
--- a/test/completion/service.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions service
diff --git a/test/completion/set.exp b/test/completion/set.exp
deleted file mode 100644
index e30a9c6f..00000000
--- a/test/completion/set.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions set
diff --git a/test/completion/setquota.exp b/test/completion/setquota.exp
deleted file mode 100644
index c97dccc0..00000000
--- a/test/completion/setquota.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions setquota
diff --git a/test/completion/sh.exp b/test/completion/sh.exp
deleted file mode 100644
index 599f3b29..00000000
--- a/test/completion/sh.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions sh
diff --git a/test/completion/sha1sum.exp b/test/completion/sha1sum.exp
deleted file mode 100644
index b6d09e88..00000000
--- a/test/completion/sha1sum.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions sha1sum
diff --git a/test/completion/shar.exp b/test/completion/shar.exp
deleted file mode 100644
index ae23e49e..00000000
--- a/test/completion/shar.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions shar
diff --git a/test/completion/sitecopy.exp b/test/completion/sitecopy.exp
deleted file mode 100644
index ddb57024..00000000
--- a/test/completion/sitecopy.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions sitecopy
diff --git a/test/completion/slackpkg.exp b/test/completion/slackpkg.exp
deleted file mode 100644
index ecef64d0..00000000
--- a/test/completion/slackpkg.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions slackpkg
diff --git a/test/completion/smartctl.exp b/test/completion/smartctl.exp
deleted file mode 100644
index 1b6f55d6..00000000
--- a/test/completion/smartctl.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions smartctl
diff --git a/test/completion/smbcacls.exp b/test/completion/smbcacls.exp
deleted file mode 100644
index 333a14e7..00000000
--- a/test/completion/smbcacls.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions smbcacls
diff --git a/test/completion/smbclient.exp b/test/completion/smbclient.exp
deleted file mode 100644
index 09b9ad33..00000000
--- a/test/completion/smbclient.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions smbclient
diff --git a/test/completion/smbcquotas.exp b/test/completion/smbcquotas.exp
deleted file mode 100644
index f7c4e94a..00000000
--- a/test/completion/smbcquotas.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions smbcquotas
diff --git a/test/completion/smbget.exp b/test/completion/smbget.exp
deleted file mode 100644
index 8f6c849e..00000000
--- a/test/completion/smbget.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions smbget
diff --git a/test/completion/smbpasswd.exp b/test/completion/smbpasswd.exp
deleted file mode 100644
index de2297a6..00000000
--- a/test/completion/smbpasswd.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions smbpasswd
diff --git a/test/completion/smbtar.exp b/test/completion/smbtar.exp
deleted file mode 100644
index 72dd9f1f..00000000
--- a/test/completion/smbtar.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions smbtar
diff --git a/test/completion/smbtree.exp b/test/completion/smbtree.exp
deleted file mode 100644
index 713c5bab..00000000
--- a/test/completion/smbtree.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions smbtree
diff --git a/test/completion/snownews.exp b/test/completion/snownews.exp
deleted file mode 100644
index c7a94d2f..00000000
--- a/test/completion/snownews.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions snownews
diff --git a/test/completion/sort.exp b/test/completion/sort.exp
deleted file mode 100644
index 8cc2429e..00000000
--- a/test/completion/sort.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions sort
diff --git a/test/completion/split.exp b/test/completion/split.exp
deleted file mode 100644
index 78614669..00000000
--- a/test/completion/split.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions split
diff --git a/test/completion/spovray.exp b/test/completion/spovray.exp
deleted file mode 100644
index 3c45889b..00000000
--- a/test/completion/spovray.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions spovray
diff --git a/test/completion/sqlite3.exp b/test/completion/sqlite3.exp
deleted file mode 100644
index 88195e0d..00000000
--- a/test/completion/sqlite3.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions sqlite3
diff --git a/test/completion/ss.exp b/test/completion/ss.exp
deleted file mode 100644
index f8703884..00000000
--- a/test/completion/ss.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ss
diff --git a/test/completion/ssh-add.exp b/test/completion/ssh-add.exp
deleted file mode 100644
index 03035cf7..00000000
--- a/test/completion/ssh-add.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ssh-add
diff --git a/test/completion/ssh-copy-id.exp b/test/completion/ssh-copy-id.exp
deleted file mode 100644
index c4923e78..00000000
--- a/test/completion/ssh-copy-id.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ssh-copy-id
diff --git a/test/completion/ssh-keygen.exp b/test/completion/ssh-keygen.exp
deleted file mode 100644
index f074b5a4..00000000
--- a/test/completion/ssh-keygen.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ssh-keygen
diff --git a/test/completion/sshfs.exp b/test/completion/sshfs.exp
deleted file mode 100644
index e5deaddd..00000000
--- a/test/completion/sshfs.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions sshfs
diff --git a/test/completion/sshmitm.exp b/test/completion/sshmitm.exp
deleted file mode 100644
index f1c10baa..00000000
--- a/test/completion/sshmitm.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions sshmitm
diff --git a/test/completion/sshow.exp b/test/completion/sshow.exp
deleted file mode 100644
index 8899f907..00000000
--- a/test/completion/sshow.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions sshow
diff --git a/test/completion/strace.exp b/test/completion/strace.exp
deleted file mode 100644
index 717db3a3..00000000
--- a/test/completion/strace.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions strace
diff --git a/test/completion/stream.exp b/test/completion/stream.exp
deleted file mode 100644
index fba2104f..00000000
--- a/test/completion/stream.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions stream
diff --git a/test/completion/strings.exp b/test/completion/strings.exp
deleted file mode 100644
index a5c544a2..00000000
--- a/test/completion/strings.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions strings
diff --git a/test/completion/strip.exp b/test/completion/strip.exp
deleted file mode 100644
index d56fdb21..00000000
--- a/test/completion/strip.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions strip
diff --git a/test/completion/su.exp b/test/completion/su.exp
deleted file mode 100644
index 8c123fc7..00000000
--- a/test/completion/su.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions su
diff --git a/test/completion/svcadm.exp b/test/completion/svcadm.exp
deleted file mode 100644
index f96d46dc..00000000
--- a/test/completion/svcadm.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions svcadm
diff --git a/test/completion/svk.exp b/test/completion/svk.exp
deleted file mode 100644
index f3b5c4e6..00000000
--- a/test/completion/svk.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions svk
diff --git a/test/completion/svn.exp b/test/completion/svn.exp
deleted file mode 100644
index e68594fa..00000000
--- a/test/completion/svn.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions svn
diff --git a/test/completion/svnadmin.exp b/test/completion/svnadmin.exp
deleted file mode 100644
index cbbc0b71..00000000
--- a/test/completion/svnadmin.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions svnadmin
diff --git a/test/completion/svnlook.exp b/test/completion/svnlook.exp
deleted file mode 100644
index 6f973fc3..00000000
--- a/test/completion/svnlook.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions svnlook
diff --git a/test/completion/sync_members.exp b/test/completion/sync_members.exp
deleted file mode 100644
index 85f2f8c8..00000000
--- a/test/completion/sync_members.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions sync_members
diff --git a/test/completion/synclient.exp b/test/completion/synclient.exp
deleted file mode 100644
index 9a277096..00000000
--- a/test/completion/synclient.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions synclient
diff --git a/test/completion/sysbench.exp b/test/completion/sysbench.exp
deleted file mode 100644
index 68da0a7a..00000000
--- a/test/completion/sysbench.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions sysbench
diff --git a/test/completion/sysctl.exp b/test/completion/sysctl.exp
deleted file mode 100644
index cad11393..00000000
--- a/test/completion/sysctl.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions sysctl
diff --git a/test/completion/tac.exp b/test/completion/tac.exp
deleted file mode 100644
index 98f051ed..00000000
--- a/test/completion/tac.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions tac
diff --git a/test/completion/tail.exp b/test/completion/tail.exp
deleted file mode 100644
index 362876a3..00000000
--- a/test/completion/tail.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions tail
diff --git a/test/completion/tar.exp b/test/completion/tar.exp
deleted file mode 100644
index 4a309863..00000000
--- a/test/completion/tar.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions tar
diff --git a/test/completion/tcpdump.exp b/test/completion/tcpdump.exp
deleted file mode 100644
index 13eb744e..00000000
--- a/test/completion/tcpdump.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions tcpdump
diff --git a/test/completion/tcpkill.exp b/test/completion/tcpkill.exp
deleted file mode 100644
index c062cf3b..00000000
--- a/test/completion/tcpkill.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions tcpkill
diff --git a/test/completion/tcpnice.exp b/test/completion/tcpnice.exp
deleted file mode 100644
index b7f14f5e..00000000
--- a/test/completion/tcpnice.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions tcpnice
diff --git a/test/completion/tee.exp b/test/completion/tee.exp
deleted file mode 100644
index deb6a0d9..00000000
--- a/test/completion/tee.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions tee
diff --git a/test/completion/texindex.exp b/test/completion/texindex.exp
deleted file mode 100644
index 0363595f..00000000
--- a/test/completion/texindex.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions texindex
diff --git a/test/completion/tightvncviewer.exp b/test/completion/tightvncviewer.exp
deleted file mode 100644
index e08b7560..00000000
--- a/test/completion/tightvncviewer.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions tightvncviewer
diff --git a/test/completion/time.exp b/test/completion/time.exp
deleted file mode 100644
index fc90f521..00000000
--- a/test/completion/time.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions time
diff --git a/test/completion/timeout.exp b/test/completion/timeout.exp
deleted file mode 100644
index 434a291a..00000000
--- a/test/completion/timeout.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions timeout
diff --git a/test/completion/tipc.exp b/test/completion/tipc.exp
deleted file mode 100644
index 51a6a7d7..00000000
--- a/test/completion/tipc.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions tipc
diff --git a/test/completion/touch.exp b/test/completion/touch.exp
deleted file mode 100644
index 212622c5..00000000
--- a/test/completion/touch.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions touch
diff --git a/test/completion/tox.exp b/test/completion/tox.exp
deleted file mode 100644
index f383b569..00000000
--- a/test/completion/tox.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions tox
diff --git a/test/completion/tr.exp b/test/completion/tr.exp
deleted file mode 100644
index c5b3f9be..00000000
--- a/test/completion/tr.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions tr
diff --git a/test/completion/tracepath.exp b/test/completion/tracepath.exp
deleted file mode 100644
index 621f0ba8..00000000
--- a/test/completion/tracepath.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions tracepath
diff --git a/test/completion/tshark.exp b/test/completion/tshark.exp
deleted file mode 100644
index 885fae32..00000000
--- a/test/completion/tshark.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions tshark
diff --git a/test/completion/tune2fs.exp b/test/completion/tune2fs.exp
deleted file mode 100644
index db034967..00000000
--- a/test/completion/tune2fs.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions tune2fs
diff --git a/test/completion/udevadm.exp b/test/completion/udevadm.exp
deleted file mode 100644
index 69c980ff..00000000
--- a/test/completion/udevadm.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions udevadm
diff --git a/test/completion/unace.exp b/test/completion/unace.exp
deleted file mode 100644
index 0fe2b39f..00000000
--- a/test/completion/unace.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions unace
diff --git a/test/completion/uname.exp b/test/completion/uname.exp
deleted file mode 100644
index 45f26569..00000000
--- a/test/completion/uname.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions uname
diff --git a/test/completion/unexpand.exp b/test/completion/unexpand.exp
deleted file mode 100644
index ed11ba79..00000000
--- a/test/completion/unexpand.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions unexpand
diff --git a/test/completion/uniq.exp b/test/completion/uniq.exp
deleted file mode 100644
index a1dfa4a7..00000000
--- a/test/completion/uniq.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions uniq
diff --git a/test/completion/units.exp b/test/completion/units.exp
deleted file mode 100644
index 5c9bfb73..00000000
--- a/test/completion/units.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions units
diff --git a/test/completion/unpack200.exp b/test/completion/unpack200.exp
deleted file mode 100644
index c90d02ed..00000000
--- a/test/completion/unpack200.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions unpack200
diff --git a/test/completion/unrar.exp b/test/completion/unrar.exp
deleted file mode 100644
index d9a509ee..00000000
--- a/test/completion/unrar.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions unrar
diff --git a/test/completion/unset.exp b/test/completion/unset.exp
deleted file mode 100644
index 8a00dbf2..00000000
--- a/test/completion/unset.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions unset
diff --git a/test/completion/unshunt.exp b/test/completion/unshunt.exp
deleted file mode 100644
index 9755c784..00000000
--- a/test/completion/unshunt.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-assert_bash_exec {OLDPATH="$PATH"; PATH="$PATH:/usr/lib/mailman/bin"}
-assert_source_completions unshunt
-assert_bash_exec {PATH="$OLDPATH"; unset -v OLDPATH}
diff --git a/test/completion/update-alternatives.exp b/test/completion/update-alternatives.exp
deleted file mode 100644
index ff4bc114..00000000
--- a/test/completion/update-alternatives.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions update-alternatives
diff --git a/test/completion/update-rc.d.exp b/test/completion/update-rc.d.exp
deleted file mode 100644
index 1becc8cc..00000000
--- a/test/completion/update-rc.d.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions update-rc.d
diff --git a/test/completion/urlsnarf.exp b/test/completion/urlsnarf.exp
deleted file mode 100644
index c541391b..00000000
--- a/test/completion/urlsnarf.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions urlsnarf
diff --git a/test/completion/uscan.exp b/test/completion/uscan.exp
deleted file mode 100644
index e524e39e..00000000
--- a/test/completion/uscan.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions uscan
diff --git a/test/completion/useradd.exp b/test/completion/useradd.exp
deleted file mode 100644
index f91bddae..00000000
--- a/test/completion/useradd.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions useradd
diff --git a/test/completion/userdel.exp b/test/completion/userdel.exp
deleted file mode 100644
index e4ba42ce..00000000
--- a/test/completion/userdel.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions userdel
diff --git a/test/completion/usermod.exp b/test/completion/usermod.exp
deleted file mode 100644
index e3861f52..00000000
--- a/test/completion/usermod.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions usermod
diff --git a/test/completion/valgrind.exp b/test/completion/valgrind.exp
deleted file mode 100644
index aadd5a52..00000000
--- a/test/completion/valgrind.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions valgrind
diff --git a/test/completion/vdir.exp b/test/completion/vdir.exp
deleted file mode 100644
index 582f3b09..00000000
--- a/test/completion/vdir.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions vdir
diff --git a/test/completion/vgcfgbackup.exp b/test/completion/vgcfgbackup.exp
deleted file mode 100644
index d512f0bd..00000000
--- a/test/completion/vgcfgbackup.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions vgcfgbackup
diff --git a/test/completion/vgcfgrestore.exp b/test/completion/vgcfgrestore.exp
deleted file mode 100644
index 75319983..00000000
--- a/test/completion/vgcfgrestore.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions vgcfgrestore
diff --git a/test/completion/vgchange.exp b/test/completion/vgchange.exp
deleted file mode 100644
index 80c35c63..00000000
--- a/test/completion/vgchange.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions vgchange
diff --git a/test/completion/vgck.exp b/test/completion/vgck.exp
deleted file mode 100644
index 06a0829e..00000000
--- a/test/completion/vgck.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions vgck
diff --git a/test/completion/vgconvert.exp b/test/completion/vgconvert.exp
deleted file mode 100644
index 374522e2..00000000
--- a/test/completion/vgconvert.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions vgconvert
diff --git a/test/completion/vgcreate.exp b/test/completion/vgcreate.exp
deleted file mode 100644
index 11c38703..00000000
--- a/test/completion/vgcreate.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions vgcreate
diff --git a/test/completion/vgdisplay.exp b/test/completion/vgdisplay.exp
deleted file mode 100644
index 0f8653cd..00000000
--- a/test/completion/vgdisplay.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions vgdisplay
diff --git a/test/completion/vgexport.exp b/test/completion/vgexport.exp
deleted file mode 100644
index 13f10342..00000000
--- a/test/completion/vgexport.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions vgexport
diff --git a/test/completion/vgextend.exp b/test/completion/vgextend.exp
deleted file mode 100644
index 4b860708..00000000
--- a/test/completion/vgextend.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions vgextend
diff --git a/test/completion/vgimport.exp b/test/completion/vgimport.exp
deleted file mode 100644
index dd45bfd0..00000000
--- a/test/completion/vgimport.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions vgimport
diff --git a/test/completion/vgmerge.exp b/test/completion/vgmerge.exp
deleted file mode 100644
index 50556060..00000000
--- a/test/completion/vgmerge.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions vgmerge
diff --git a/test/completion/vgmknodes.exp b/test/completion/vgmknodes.exp
deleted file mode 100644
index 74f13cb3..00000000
--- a/test/completion/vgmknodes.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions vgmknodes
diff --git a/test/completion/vgreduce.exp b/test/completion/vgreduce.exp
deleted file mode 100644
index 47338e05..00000000
--- a/test/completion/vgreduce.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions vgreduce
diff --git a/test/completion/vgremove.exp b/test/completion/vgremove.exp
deleted file mode 100644
index 029ba70e..00000000
--- a/test/completion/vgremove.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions vgremove
diff --git a/test/completion/vgrename.exp b/test/completion/vgrename.exp
deleted file mode 100644
index 17460c3c..00000000
--- a/test/completion/vgrename.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions vgrename
diff --git a/test/completion/vgs.exp b/test/completion/vgs.exp
deleted file mode 100644
index 470b8ecd..00000000
--- a/test/completion/vgs.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions vgs
diff --git a/test/completion/vgscan.exp b/test/completion/vgscan.exp
deleted file mode 100644
index a8f1ce46..00000000
--- a/test/completion/vgscan.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions vgscan
diff --git a/test/completion/vgsplit.exp b/test/completion/vgsplit.exp
deleted file mode 100644
index d4777569..00000000
--- a/test/completion/vgsplit.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions vgsplit
diff --git a/test/completion/vi.exp b/test/completion/vi.exp
deleted file mode 100644
index b0191404..00000000
--- a/test/completion/vi.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions vi
diff --git a/test/completion/vipw.exp b/test/completion/vipw.exp
deleted file mode 100644
index 38438679..00000000
--- a/test/completion/vipw.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions vipw
diff --git a/test/completion/vmstat.exp b/test/completion/vmstat.exp
deleted file mode 100644
index e55f28e3..00000000
--- a/test/completion/vmstat.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions vmstat
diff --git a/test/completion/vncviewer.exp b/test/completion/vncviewer.exp
deleted file mode 100644
index 05c663d3..00000000
--- a/test/completion/vncviewer.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions vncviewer
diff --git a/test/completion/vpnc.exp b/test/completion/vpnc.exp
deleted file mode 100644
index 29511b59..00000000
--- a/test/completion/vpnc.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions vpnc
diff --git a/test/completion/watch.exp b/test/completion/watch.exp
deleted file mode 100644
index 9bb0644f..00000000
--- a/test/completion/watch.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions watch
diff --git a/test/completion/wc.exp b/test/completion/wc.exp
deleted file mode 100644
index fc6a0432..00000000
--- a/test/completion/wc.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions wc
diff --git a/test/completion/webmitm.exp b/test/completion/webmitm.exp
deleted file mode 100644
index 73d8a2a7..00000000
--- a/test/completion/webmitm.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions webmitm
diff --git a/test/completion/wget.exp b/test/completion/wget.exp
deleted file mode 100644
index 0607f2e6..00000000
--- a/test/completion/wget.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions wget
diff --git a/test/completion/who.exp b/test/completion/who.exp
deleted file mode 100644
index 3a312a32..00000000
--- a/test/completion/who.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions who
diff --git a/test/completion/wine.exp b/test/completion/wine.exp
deleted file mode 100644
index ddb1e6f1..00000000
--- a/test/completion/wine.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions wine
diff --git a/test/completion/withlist.exp b/test/completion/withlist.exp
deleted file mode 100644
index cfc5a546..00000000
--- a/test/completion/withlist.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions withlist
diff --git a/test/completion/wodim.exp b/test/completion/wodim.exp
deleted file mode 100644
index 51b407ba..00000000
--- a/test/completion/wodim.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions wodim
diff --git a/test/completion/wol.exp b/test/completion/wol.exp
deleted file mode 100644
index 2e499726..00000000
--- a/test/completion/wol.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions wol
diff --git a/test/completion/write.exp b/test/completion/write.exp
deleted file mode 100644
index d454b62f..00000000
--- a/test/completion/write.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions write
diff --git a/test/completion/wsimport.exp b/test/completion/wsimport.exp
deleted file mode 100644
index 3f889e26..00000000
--- a/test/completion/wsimport.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions wsimport
diff --git a/test/completion/wtf.exp b/test/completion/wtf.exp
deleted file mode 100644
index 3e1b364c..00000000
--- a/test/completion/wtf.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions wtf
diff --git a/test/completion/wvdial.exp b/test/completion/wvdial.exp
deleted file mode 100644
index 46b65712..00000000
--- a/test/completion/wvdial.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions wvdial
diff --git a/test/completion/xdg-mime.exp b/test/completion/xdg-mime.exp
deleted file mode 100644
index 01f24d41..00000000
--- a/test/completion/xdg-mime.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions xdg-mime
diff --git a/test/completion/xdg-settings.exp b/test/completion/xdg-settings.exp
deleted file mode 100644
index 8fb8a53e..00000000
--- a/test/completion/xdg-settings.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions xdg-settings
diff --git a/test/completion/xfreerdp.exp b/test/completion/xfreerdp.exp
deleted file mode 100644
index 5ca649a2..00000000
--- a/test/completion/xfreerdp.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions xfreerdp
diff --git a/test/completion/xgamma.exp b/test/completion/xgamma.exp
deleted file mode 100644
index 706e74f9..00000000
--- a/test/completion/xgamma.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions xgamma
diff --git a/test/completion/xm.exp b/test/completion/xm.exp
deleted file mode 100644
index fa0cddf6..00000000
--- a/test/completion/xm.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions xm
diff --git a/test/completion/xmllint.exp b/test/completion/xmllint.exp
deleted file mode 100644
index 64210c80..00000000
--- a/test/completion/xmllint.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions xmllint
diff --git a/test/completion/xmlwf.exp b/test/completion/xmlwf.exp
deleted file mode 100644
index afe823b6..00000000
--- a/test/completion/xmlwf.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions xmlwf
diff --git a/test/completion/xmms.exp b/test/completion/xmms.exp
deleted file mode 100644
index 2ebde005..00000000
--- a/test/completion/xmms.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions xmms
diff --git a/test/completion/xmodmap.exp b/test/completion/xmodmap.exp
deleted file mode 100644
index a80bb027..00000000
--- a/test/completion/xmodmap.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions xmodmap
diff --git a/test/completion/xpovray.exp b/test/completion/xpovray.exp
deleted file mode 100644
index 1ada5e03..00000000
--- a/test/completion/xpovray.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions xpovray
diff --git a/test/completion/xrandr.exp b/test/completion/xrandr.exp
deleted file mode 100644
index 37dcedcc..00000000
--- a/test/completion/xrandr.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions xrandr
diff --git a/test/completion/xrdb.exp b/test/completion/xrdb.exp
deleted file mode 100644
index 522ac311..00000000
--- a/test/completion/xrdb.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions xrdb
diff --git a/test/completion/xsltproc.exp b/test/completion/xsltproc.exp
deleted file mode 100644
index 8729fbe1..00000000
--- a/test/completion/xsltproc.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions xsltproc
diff --git a/test/completion/xvnc4viewer.exp b/test/completion/xvnc4viewer.exp
deleted file mode 100644
index 0c7210bc..00000000
--- a/test/completion/xvnc4viewer.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions xvnc4viewer
diff --git a/test/completion/xxd.exp b/test/completion/xxd.exp
deleted file mode 100644
index d9750e40..00000000
--- a/test/completion/xxd.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions xxd
diff --git a/test/completion/xz.exp b/test/completion/xz.exp
deleted file mode 100644
index 92a6a170..00000000
--- a/test/completion/xz.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions xz
diff --git a/test/completion/xzdec.exp b/test/completion/xzdec.exp
deleted file mode 100644
index 65330d6b..00000000
--- a/test/completion/xzdec.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions xzdec
diff --git a/test/completion/ypcat.exp b/test/completion/ypcat.exp
deleted file mode 100644
index 9a244c68..00000000
--- a/test/completion/ypcat.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ypcat
diff --git a/test/completion/ypmatch.exp b/test/completion/ypmatch.exp
deleted file mode 100644
index 5ec094fa..00000000
--- a/test/completion/ypmatch.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions ypmatch
diff --git a/test/completion/yum-arch.exp b/test/completion/yum-arch.exp
deleted file mode 100644
index 95284151..00000000
--- a/test/completion/yum-arch.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions yum-arch
diff --git a/test/completion/yum.exp b/test/completion/yum.exp
deleted file mode 100644
index d1b7c1f8..00000000
--- a/test/completion/yum.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions yum
diff --git a/test/completion/zopfli.exp b/test/completion/zopfli.exp
deleted file mode 100644
index 086f78cf..00000000
--- a/test/completion/zopfli.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions zopfli
diff --git a/test/completion/zopflipng.exp b/test/completion/zopflipng.exp
deleted file mode 100644
index e16a74ab..00000000
--- a/test/completion/zopflipng.exp
+++ /dev/null
@@ -1 +0,0 @@
-assert_source_completions zopflipng
diff --git a/test/docker/Dockerfile-tools b/test/docker/Dockerfile-tools
new file mode 100644
index 00000000..2328808e
--- /dev/null
+++ b/test/docker/Dockerfile-tools
@@ -0,0 +1,3 @@
+FROM vskytta/bash-completion:tools
+
+COPY . .
diff --git a/test/docker/docker-script.sh b/test/docker/docker-script.sh
index 6ba6fa90..ec310b35 100755
--- a/test/docker/docker-script.sh
+++ b/test/docker/docker-script.sh
@@ -1,19 +1,42 @@
#!/bin/sh -ex
+if [ $DIST = tools ]; then
+ rc=0
+ perlcritic helpers/perl; rc=$((rc+$?))
+ perltidy -nst -nse helpers/perl; rc=$((rc+$?))
+ if [ -e helpers/perl.ERR ]; then
+ cat helpers/perl.ERR
+ rc=$((rc+1))
+ fi
+ flake8 helpers/python test test/generate; rc=$((rc+$?))
+ black --check -t py27 -t py33 -t py34 -t py35 -t py36 -t py37 -t py38 \
+ helpers/python; rc=$((rc+$?))
+ black --check test test/generate; rc=$((rc+$?))
+ exit $rc
+fi
+
+if [ "$BSD" ]; then
+ PATH=/usr/local/lib/bsd-bin:$PATH
+ export PATH
+fi
+
+case $DIST in
+ centos6|ubuntu14)
+ : ${PYTEST:=/root/.local/bin/pytest}
+ ;;
+ *)
+ : ${PYTEST:=pytest-3}
+ ;;
+esac
+
export bashcomp_bash=bash
env
autoreconf -i
./configure
-make
-
-make -C completions check
-
-cd test
-xvfb-run ./runCompletion --all
-./runInstall --all
-./runUnit --all
+make -j
-cd ..
-mkdir install-test
-make install DESTDIR=$(pwd)/install-test
+xvfb-run make distcheck \
+ PYTEST=$PYTEST \
+ PYTESTFLAGS="--numprocesses=auto --dist=loadfile" \
+ RUNTESTFLAGS="--all --verbose"
diff --git a/test/fixtures/_known_hosts_real/known_hosts b/test/fixtures/_known_hosts_real/known_hosts
index 0d6f5025..646b5b6a 100644
--- a/test/fixtures/_known_hosts_real/known_hosts
+++ b/test/fixtures/_known_hosts_real/known_hosts
@@ -1,6 +1,7 @@
|1|abc
|1|def
doo
+# this is a comment
ike ssh-rsa qwerty1234/Qwerty+1234==
jub,10.0.0.1
@cert-authority kyl,100.0.0.2 xxxfoo
diff --git a/test/fixtures/_longopt/grep--help.txt b/test/fixtures/_longopt/grep--help.txt
new file mode 100644
index 00000000..92662563
--- /dev/null
+++ b/test/fixtures/_longopt/grep--help.txt
@@ -0,0 +1,70 @@
+Usage: grep [OPTION]... PATTERN [FILE]...
+Search for PATTERN in each FILE.
+Example: grep -i 'hello world' menu.h main.c
+
+Pattern selection and interpretation:
+ -E, --extended-regexp PATTERN is an extended regular expression
+ -F, --fixed-strings PATTERN is a set of newline-separated strings
+ -G, --basic-regexp PATTERN is a basic regular expression (default)
+ -P, --perl-regexp PATTERN is a Perl regular expression
+ -e, --regexp=PATTERN use PATTERN for matching
+ -f, --file=FILE obtain PATTERN from FILE
+ -i, --ignore-case ignore case distinctions
+ -w, --word-regexp force PATTERN to match only whole words
+ -x, --line-regexp force PATTERN to match only whole lines
+ -z, --null-data a data line ends in 0 byte, not newline
+
+Miscellaneous:
+ -s, --no-messages suppress error messages
+ -v, --invert-match select non-matching lines
+ -V, --version display version information and exit
+ --help display this help text and exit
+
+Output control:
+ -m, --max-count=NUM stop after NUM selected lines
+ -b, --byte-offset print the byte offset with output lines
+ -n, --line-number print line number with output lines
+ --line-buffered flush output on every line
+ -H, --with-filename print file name with output lines
+ -h, --no-filename suppress the file name prefix on output
+ --label=LABEL use LABEL as the standard input file name prefix
+ -o, --only-matching show only the part of a line matching PATTERN
+ -q, --quiet, --silent suppress all normal output
+ --binary-files=TYPE assume that binary files are TYPE;
+ TYPE is 'binary', 'text', or 'without-match'
+ -a, --text equivalent to --binary-files=text
+ -I equivalent to --binary-files=without-match
+ -d, --directories=ACTION how to handle directories;
+ ACTION is 'read', 'recurse', or 'skip'
+ -D, --devices=ACTION how to handle devices, FIFOs and sockets;
+ ACTION is 'read' or 'skip'
+ -r, --recursive like --directories=recurse
+ -R, --dereference-recursive likewise, but follow all symlinks
+ --include=FILE_PATTERN search only files that match FILE_PATTERN
+ --exclude=FILE_PATTERN skip files and directories matching FILE_PATTERN
+ --exclude-from=FILE skip files matching any file pattern from FILE
+ --exclude-dir=PATTERN directories that match PATTERN will be skipped.
+ -L, --files-without-match print only names of FILEs with no selected lines
+ -l, --files-with-matches print only names of FILEs with selected lines
+ -c, --count print only a count of selected lines per FILE
+ -T, --initial-tab make tabs line up (if needed)
+ -Z, --null print 0 byte after FILE name
+
+Context control:
+ -B, --before-context=NUM print NUM lines of leading context
+ -A, --after-context=NUM print NUM lines of trailing context
+ -C, --context=NUM print NUM lines of output context
+ -NUM same as --context=NUM
+ --color[=WHEN],
+ --colour[=WHEN] use markers to highlight the matching strings;
+ WHEN is 'always', 'never', or 'auto'
+ -U, --binary do not strip CR characters at EOL (MSDOS/Windows)
+
+When FILE is '-', read standard input. With no FILE, read '.' if
+recursive, '-' otherwise. With fewer than two FILEs, assume -h.
+Exit status is 0 if any line is selected, 1 otherwise;
+if any error occurs and -q is not given, the exit status is 2.
+
+Report bugs to: bug-grep@gnu.org
+GNU grep home page: <http://www.gnu.org/software/grep/>
+General help using GNU software: <http://www.gnu.org/gethelp/>
diff --git a/test/fixtures/dnssec-keygen/dnssec-keygen b/test/fixtures/dnssec-keygen/dnssec-keygen
new file mode 100755
index 00000000..882cd97c
--- /dev/null
+++ b/test/fixtures/dnssec-keygen/dnssec-keygen
@@ -0,0 +1,76 @@
+#!/bin/sh
+
+cat <<\EOF >&2
+Usage:
+ dnssec-keygen [options] name
+
+Version: 9.11.3-1ubuntu1.5-Ubuntu
+ name: owner of the key
+Options:
+ -K <directory>: write keys into directory
+ -a <algorithm>:
+ RSA | RSAMD5 | DSA | RSASHA1 | NSEC3RSASHA1 | NSEC3DSA |
+ RSASHA256 | RSASHA512 | ECCGOST |
+ ECDSAP256SHA256 | ECDSAP384SHA384 |
+ ED25519 | ED448 | DH |
+ HMAC-MD5 | HMAC-SHA1 | HMAC-SHA224 | HMAC-SHA256 |
+ HMAC-SHA384 | HMAC-SHA512
+ (default: RSASHA1, or NSEC3RSASHA1 if using -3)
+ -3: use NSEC3-capable algorithm
+ -b <key size in bits>:
+ RSAMD5: [512..4096]
+ RSASHA1: [512..4096]
+ NSEC3RSASHA1: [512..4096]
+ RSASHA256: [512..4096]
+ RSASHA512: [1024..4096]
+ DH: [128..4096]
+ DSA: [512..1024] and divisible by 64
+ NSEC3DSA: [512..1024] and divisible by 64
+ ECCGOST: ignored
+ ECDSAP256SHA256: ignored
+ ECDSAP384SHA384: ignored
+ ED25519: ignored
+ ED448: ignored
+ HMAC-MD5: [1..512]
+ HMAC-SHA1: [1..160]
+ HMAC-SHA224: [1..224]
+ HMAC-SHA256: [1..256]
+ HMAC-SHA384: [1..384]
+ HMAC-SHA512: [1..512]
+ (if using the default algorithm, key size
+ defaults to 2048 for KSK, or 1024 for all others)
+ -n <nametype>: ZONE | HOST | ENTITY | USER | OTHER
+ (DNSKEY generation defaults to ZONE)
+ -c <class>: (default: IN)
+ -d <digest bits> (0 => max, default)
+ -E <engine>:
+ name of an OpenSSL engine to use
+ -f <keyflag>: KSK | REVOKE
+ -g <generator>: use specified generator (DH only)
+ -L <ttl>: default key TTL
+ -p <protocol>: (default: 3 [dnssec])
+ -r <randomdev>: a file containing random data
+ -s <strength>: strength value this key signs DNS records with (default: 0)
+ -T <rrtype>: DNSKEY | KEY (default: DNSKEY; use KEY for SIG(0))
+ -t <type>: AUTHCONF | NOAUTHCONF | NOAUTH | NOCONF (default: AUTHCONF)
+ -h: print usage and exit
+ -m <memory debugging mode>:
+ usage | trace | record | size | mctx
+ -v <level>: set verbosity level (0 - 10)
+ -V: print version information
+Timing options:
+ -P date/[+-]offset/none: set key publication date (default: now)
+ -P sync date/[+-]offset/none: set CDS and CDNSKEY publication date
+ -A date/[+-]offset/none: set key activation date (default: now)
+ -R date/[+-]offset/none: set key revocation date
+ -I date/[+-]offset/none: set key inactivation date
+ -D date/[+-]offset/none: set key deletion date
+ -D sync date/[+-]offset/none: set CDS and CDNSKEY deletion date
+ -G: generate key only; do not set -P or -A
+ -C: generate a backward-compatible key, omitting all dates
+ -S <key>: generate a successor to an existing key
+ -i <interval>: prepublication interval for successor key (default: 30 days)
+Output:
+ K<name>+<alg>+<id>.key, K<name>+<alg>+<id>.private
+EOF
+exit 255
diff --git a/test/fixtures/gdb/core b/test/fixtures/gdb/core
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/fixtures/gdb/core
diff --git a/test/fixtures/gdb/core-NOT b/test/fixtures/gdb/core-NOT
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/fixtures/gdb/core-NOT
diff --git a/test/fixtures/gdb/core.12345 b/test/fixtures/gdb/core.12345
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/fixtures/gdb/core.12345
diff --git a/test/fixtures/gdb/core.weston.1000.deadbeef.5308.1555362132000000 b/test/fixtures/gdb/core.weston.1000.deadbeef.5308.1555362132000000
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/fixtures/gdb/core.weston.1000.deadbeef.5308.1555362132000000
diff --git a/test/fixtures/gdb/corenot b/test/fixtures/gdb/corenot
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/fixtures/gdb/corenot
diff --git a/test/generate b/test/generate
index deeba05a..59f525b7 100755
--- a/test/generate
+++ b/test/generate
@@ -1,64 +1,60 @@
-#!/bin/bash -eu
-# Generate skeleton files for completion of specified command.
-# Test skeleton files are generated as well.
-# @param $1 string Command, e.g. 'make'
-# @param $2 string Completion function, e.g. _command
-# @param $3 string Completion arguments, e.g. '-o filenames'
-
-
-# Generate test code
-# @param $1 string Command, e.g. 'make'
-generate_test_completion() {
- local path="completion/$1.exp"
- # Does file already exist?
- #if [ ! -f "$path" ]; then
- # No, file doesn't exist; generate file
- cat <<EXPECT > "$path"
-assert_source_completions $1
-EXPECT
- #fi
-} # generate_test_completion()
-
-
-# Generate test code
-# @param $1 string Command, e.g. 'make'
-# @param $2 string Completion function, e.g. _command
-# @param $3 string Completion arguments, e.g. ' -o filenames'
-generate_test_lib_completions() {
- local path="lib/completions/$1.exp"
- # Does file already exist?
- #if [ ! -f "$path" ]; then
- # No, file doesn't exist; generate file
- cat <<EXPECT > "$path"
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "$1 "
-sync_after_int
-
-
-teardown
-EXPECT
- #fi
-} # generate_test_lib_completions()
-
-
- # If argument count is wrong, show help
-if [ $# -ne 1 ]; then
- echo "Usage: $0 command"
- echo "Example: $0 make"
- exit 1
-fi
-
-generate_test_completion "$1"
-generate_test_lib_completions "$1"
+#!/usr/bin/env python3
+
+# Generate skeleton files for completion of specified command
+
+import fileinput
+import re
+import sys
+
+
+def main():
+ if len(sys.argv) < 2:
+ print("Usage: %s command [args...]" % sys.argv[0], file=sys.stderr)
+ sys.exit(1)
+
+ cmd = testfile = sys.argv[1]
+ args = " ".join(sys.argv[2:]) if len(sys.argv) > 2 else ""
+ marker = ""
+ if re.search("[.+-]", cmd):
+ testfile = re.sub("[.-]", "_", cmd).replace("+", "plus")
+ marker = '\n@pytest.mark.bashcomp(\n cmd="%s",\n)' % cmd
+ testfile = "test_%s.py" % testfile
+ name = re.sub("(^|[_-]+)(.)", lambda m: m.group(2).upper(), cmd)
+ name = name.replace("+", "Plus")
+
+ with open("t/%s" % testfile, "w") as f:
+ print(
+ """\
+import pytest
+
+%s
+class Test%s:
+ @pytest.mark.complete("%s %s")
+ def test_1(self, completion):
+ assert completion"""
+ % (marker, name, cmd, args),
+ file=f,
+ )
+
+ in_extra_dist = False
+ extra_dist_lines = set()
+ with fileinput.input(files=("t/Makefile.am"), inplace=True) as f:
+ for line in f:
+ if line.startswith("EXTRA_DIST "):
+ in_extra_dist = True
+ elif in_extra_dist:
+ if line.startswith("\t"):
+ line = line.strip()
+ if not line.endswith("\\"):
+ line += " \\"
+ extra_dist_lines.add(line)
+ continue
+ extra_dist_lines.add("%s \\" % testfile)
+ sys.stdout.write("\t")
+ print("\n\t".join(sorted(extra_dist_lines))[:-2])
+ in_extra_dist = False
+ sys.stdout.write(line)
+
+
+if __name__ == "__main__":
+ main()
diff --git a/test/lib/completions/2to3.exp b/test/lib/completions/2to3.exp
deleted file mode 100644
index 101fbf87..00000000
--- a/test/lib/completions/2to3.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "2to3 "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/7z.exp b/test/lib/completions/7z.exp
deleted file mode 100644
index 4e7e8689..00000000
--- a/test/lib/completions/7z.exp
+++ /dev/null
@@ -1,37 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified {/OLDPWD=/d}
-}
-
-
-setup
-
-
-assert_complete_any "7z "
-sync_after_int
-
-
-assert_complete "-tzip" "7z a ar -tzi"
-sync_after_int
-
-
-set dir $::srcdir/fixtures/_filedir
-assert_complete_dir "-wa\\ b/" "7z x -wa\\ " $dir "" -nospace
-sync_after_int
-
-
-set dir $::srcdir/fixtures/7z
-assert_complete_dir "a.7z" "7z x " $dir
-sync_after_int
-
-
-set dir $::srcdir/fixtures/7z
-assert_complete_dir "abc" "7z d a.7z " $dir
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/a2ps.exp b/test/lib/completions/a2ps.exp
deleted file mode 100644
index 77cd07f5..00000000
--- a/test/lib/completions/a2ps.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "a2ps "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/a2x.exp b/test/lib/completions/a2x.exp
deleted file mode 100644
index e1ca8844..00000000
--- a/test/lib/completions/a2x.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "a2x "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/abook.exp b/test/lib/completions/abook.exp
deleted file mode 100644
index 463a28c0..00000000
--- a/test/lib/completions/abook.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "abook -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/aclocal.exp b/test/lib/completions/aclocal.exp
deleted file mode 100644
index da133aa8..00000000
--- a/test/lib/completions/aclocal.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "aclocal "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/acpi.exp b/test/lib/completions/acpi.exp
deleted file mode 100644
index 278cdceb..00000000
--- a/test/lib/completions/acpi.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "acpi -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/acroread.exp b/test/lib/completions/acroread.exp
deleted file mode 100644
index f627d34e..00000000
--- a/test/lib/completions/acroread.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified {/OLDPWD/d}
-}
-
-
-setup
-
-
-assert_complete_dir {foo.d/ t.pdf} "acroread " $::srcdir/fixtures/acroread
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/adb.exp b/test/lib/completions/adb.exp
deleted file mode 100644
index 0d41fd2d..00000000
--- a/test/lib/completions/adb.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "adb "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/add_members.exp b/test/lib/completions/add_members.exp
deleted file mode 100644
index 46c7a688..00000000
--- a/test/lib/completions/add_members.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "add_members -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/alias.exp b/test/lib/completions/alias.exp
index 2010df2d..c41417f1 100644
--- a/test/lib/completions/alias.exp
+++ b/test/lib/completions/alias.exp
@@ -15,13 +15,6 @@ proc teardown {} {
setup
-set test "Tab should complete alias"
- # Try completion
-set cmd "alias "
-assert_complete {bar foo} $cmd $test
-sync_after_int
-
-
set test "Tab should complete alias at cursor position"
# Try completion
set cmd "alias foo"
@@ -36,9 +29,4 @@ expect {
sync_after_int
-# FIXME: test case for "alias foo=<TAB>" -> "alias foo='bar'", this doesn't work
-#assert_complete {foo='bar'} "alias foo=" "" -nospace
-#sync_after_int
-
-
teardown
diff --git a/test/lib/completions/alpine.exp b/test/lib/completions/alpine.exp
deleted file mode 100644
index 5ae1901c..00000000
--- a/test/lib/completions/alpine.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "alpine -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/animate.exp b/test/lib/completions/animate.exp
deleted file mode 100644
index 12314d79..00000000
--- a/test/lib/completions/animate.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "animate "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ant.exp b/test/lib/completions/ant.exp
deleted file mode 100644
index bcf87711..00000000
--- a/test/lib/completions/ant.exp
+++ /dev/null
@@ -1,39 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified {
- /OLDPWD=/d
- /ANT_ARGS=/d
- }
-}
-
-
-setup
-
-
-assert_complete_any "ant -"
-sync_after_int
-
-
-assert_complete_dir "bashcomp clean init realclean" "ant " $::srcdir/fixtures/ant
-sync_after_int
-
-
-assert_complete_dir "named-build" "ant -f named-build.xml " $::srcdir/fixtures/ant
-sync_after_int
-
-
-assert_complete_dir "build-with-import imported-build" "ant -f build-with-import.xml " $::srcdir/fixtures/ant
-sync_after_int
-
-
-assert_bash_exec {OLD_ANT_ARGS=$ANT_ARGS; ANT_ARGS="-f named-build.xml"}
-assert_complete_dir "named-build" "ant " $::srcdir/fixtures/ant "ant with buildfile from ANT_ARGS"
-sync_after_int
-assert_bash_exec {ANT_ARGS=$OLD_ANT_ARGS; unset -v OLD_ANT_ARGS}
-
-
-teardown
diff --git a/test/lib/completions/apache2ctl.exp b/test/lib/completions/apache2ctl.exp
deleted file mode 100644
index 88e53fc2..00000000
--- a/test/lib/completions/apache2ctl.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "apache2ctl "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/appdata-validate.exp b/test/lib/completions/appdata-validate.exp
deleted file mode 100644
index 583c2952..00000000
--- a/test/lib/completions/appdata-validate.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "appdata-validate "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/apt-build.exp b/test/lib/completions/apt-build.exp
deleted file mode 100644
index 01ff04b4..00000000
--- a/test/lib/completions/apt-build.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "apt-build "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/apt-cache.exp b/test/lib/completions/apt-cache.exp
deleted file mode 100644
index 63be48a8..00000000
--- a/test/lib/completions/apt-cache.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "apt-cache "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/apt-get.exp b/test/lib/completions/apt-get.exp
deleted file mode 100644
index 8a5d3629..00000000
--- a/test/lib/completions/apt-get.exp
+++ /dev/null
@@ -1,29 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified {/OLDPWD=/d}
-}
-
-
-setup
-
-
-set test "Tab should complete commands"
-set cmd "apt-get "
-send "$cmd\t"
-set expected "^$cmd\r\n.* install .* update .*\r\n/@$cmd$"
-expect {
- -re $expected { pass "$test" }
- default { fail "$test" }
-}
-sync_after_int
-
-
-assert_complete_dir "./bash-completion-test-subject.deb" "apt-get install ./" "$::srcdir/fixtures/dpkg"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/aptitude.exp b/test/lib/completions/aptitude.exp
deleted file mode 100644
index e6e82abb..00000000
--- a/test/lib/completions/aptitude.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "aptitude "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/arch.exp b/test/lib/completions/arch.exp
deleted file mode 100644
index 5bad0e60..00000000
--- a/test/lib/completions/arch.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "arch -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/arping.exp b/test/lib/completions/arping.exp
deleted file mode 100644
index 531bb07f..00000000
--- a/test/lib/completions/arping.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "arping "
-sync_after_int
-
-assert_complete_any "arping -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/arpspoof.exp b/test/lib/completions/arpspoof.exp
deleted file mode 100644
index 91ef5182..00000000
--- a/test/lib/completions/arpspoof.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "arpspoof -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/asciidoc.exp b/test/lib/completions/asciidoc.exp
deleted file mode 100644
index 86e7609a..00000000
--- a/test/lib/completions/asciidoc.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "asciidoc "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/aspell.exp b/test/lib/completions/aspell.exp
deleted file mode 100644
index 9dd5f61a..00000000
--- a/test/lib/completions/aspell.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "aspell "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/autoconf.exp b/test/lib/completions/autoconf.exp
deleted file mode 100644
index 53b096db..00000000
--- a/test/lib/completions/autoconf.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "autoconf "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/autoheader.exp b/test/lib/completions/autoheader.exp
deleted file mode 100644
index d85d4606..00000000
--- a/test/lib/completions/autoheader.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "autoheader "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/automake.exp b/test/lib/completions/automake.exp
deleted file mode 100644
index f875da56..00000000
--- a/test/lib/completions/automake.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "automake "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/autoreconf.exp b/test/lib/completions/autoreconf.exp
deleted file mode 100644
index 98808fb2..00000000
--- a/test/lib/completions/autoreconf.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "autoreconf "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/autorpm.exp b/test/lib/completions/autorpm.exp
deleted file mode 100644
index 2ae4ff80..00000000
--- a/test/lib/completions/autorpm.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "autorpm "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/autoscan.exp b/test/lib/completions/autoscan.exp
deleted file mode 100644
index f75da812..00000000
--- a/test/lib/completions/autoscan.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "autoscan "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/autoupdate.exp b/test/lib/completions/autoupdate.exp
deleted file mode 100644
index c83912dd..00000000
--- a/test/lib/completions/autoupdate.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "autoupdate "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/avctrl.exp b/test/lib/completions/avctrl.exp
deleted file mode 100644
index 6ca9de70..00000000
--- a/test/lib/completions/avctrl.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "avctrl "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/awk.exp b/test/lib/completions/awk.exp
deleted file mode 100644
index 260dabcc..00000000
--- a/test/lib/completions/awk.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "awk "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/badblocks.exp b/test/lib/completions/badblocks.exp
deleted file mode 100644
index d453b5bd..00000000
--- a/test/lib/completions/badblocks.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "badblocks "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/base64.exp b/test/lib/completions/base64.exp
deleted file mode 100644
index 1f3f35cf..00000000
--- a/test/lib/completions/base64.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "base64 "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/bash.exp b/test/lib/completions/bash.exp
deleted file mode 100644
index bf01e76d..00000000
--- a/test/lib/completions/bash.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "bash --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/bc.exp b/test/lib/completions/bc.exp
deleted file mode 100644
index 23c22b62..00000000
--- a/test/lib/completions/bc.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "bc --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/bind.exp b/test/lib/completions/bind.exp
deleted file mode 100644
index 09bbaaa1..00000000
--- a/test/lib/completions/bind.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "bind -"
-sync_after_int
-
-assert_complete_any "bind k"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/bison.exp b/test/lib/completions/bison.exp
deleted file mode 100644
index 4bbb59fa..00000000
--- a/test/lib/completions/bison.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "bison --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/bk.exp b/test/lib/completions/bk.exp
deleted file mode 100644
index b652e6b0..00000000
--- a/test/lib/completions/bk.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "bk "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/brctl.exp b/test/lib/completions/brctl.exp
deleted file mode 100644
index 57c9edff..00000000
--- a/test/lib/completions/brctl.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "brctl "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/btdownloadcurses.py.exp b/test/lib/completions/btdownloadcurses.py.exp
deleted file mode 100644
index 71a00de7..00000000
--- a/test/lib/completions/btdownloadcurses.py.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "btdownloadcurses.py "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/btdownloadgui.py.exp b/test/lib/completions/btdownloadgui.py.exp
deleted file mode 100644
index 65f56776..00000000
--- a/test/lib/completions/btdownloadgui.py.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "btdownloadgui.py "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/btdownloadheadless.py.exp b/test/lib/completions/btdownloadheadless.py.exp
deleted file mode 100644
index 3c833bb8..00000000
--- a/test/lib/completions/btdownloadheadless.py.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "btdownloadheadless.py "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/bts.exp b/test/lib/completions/bts.exp
deleted file mode 100644
index 38b92b9d..00000000
--- a/test/lib/completions/bts.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "bts -"
-sync_after_int
-
-assert_complete "bts "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/bzip2.exp b/test/lib/completions/bzip2.exp
deleted file mode 100644
index d806851a..00000000
--- a/test/lib/completions/bzip2.exp
+++ /dev/null
@@ -1,24 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "bzip2 "
-
-
-sync_after_int
-
-
-assert_complete_homedir "bzip"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/c++.exp b/test/lib/completions/c++.exp
deleted file mode 100644
index c899de27..00000000
--- a/test/lib/completions/c++.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "c++ "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/cal.exp b/test/lib/completions/cal.exp
deleted file mode 100644
index bf7185e2..00000000
--- a/test/lib/completions/cal.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "cal "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/cancel.exp b/test/lib/completions/cancel.exp
deleted file mode 100644
index f4a03473..00000000
--- a/test/lib/completions/cancel.exp
+++ /dev/null
@@ -1,31 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
- # Adding a print job is successful?
-if {[assert_exec {lp -H hold $::srcdir/fixtures/shared/default/foo} job "" "untested"]} {
- # Yes, adding a print-job is successful;
- # Retrieve job-id, so we can cancel the job after the test
- set job_id [lindex [split $job] 3]
- # Retrieve list of all current print jobs
- assert_exec {lpstat | cut -d\040 -f1} jobs
- # Completion should show all print jobs
- assert_complete $jobs "cancel "
- # Remove/cancel the test print job
- assert_exec "cancel $job_id"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/cardctl.exp b/test/lib/completions/cardctl.exp
deleted file mode 100644
index 9df90f48..00000000
--- a/test/lib/completions/cardctl.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "cardctl "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/cat.exp b/test/lib/completions/cat.exp
deleted file mode 100644
index 01b3659e..00000000
--- a/test/lib/completions/cat.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "cat "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/cc.exp b/test/lib/completions/cc.exp
deleted file mode 100644
index eb722dea..00000000
--- a/test/lib/completions/cc.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "cc "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ccache.exp b/test/lib/completions/ccache.exp
deleted file mode 100644
index 7cb3103e..00000000
--- a/test/lib/completions/ccache.exp
+++ /dev/null
@@ -1,43 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "ccache -"
-sync_after_int
-
-
-set test "Tab should offer correct options from partial option"
-assert_complete_partial [list "--cleanup" "--clear"] "ccache" "--clea" $test
-sync_after_int
-
-
-set test "Tab should complete a command after ccache"
-assert_complete [list "stty"] "ccache stt" $test
-sync_after_int
-
-
-set test "Tab should complete a command after ccache --FLAG"
-assert_complete [list "stty"] "ccache --zero-stats stt" $test
-sync_after_int
-
-
-set test "Tab should complete a command's flags after ccache"
-assert_complete [list "--help"] "ccache ls --hel" $test
-sync_after_int
-
-
-set test "Tab should complete a command's flags after ccache --FLAG"
-assert_complete [list "--help"] "ccache --zero-stats ls --hel" $test
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ccze.exp b/test/lib/completions/ccze.exp
deleted file mode 100644
index 94b51b39..00000000
--- a/test/lib/completions/ccze.exp
+++ /dev/null
@@ -1,27 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "ccze "
-sync_after_int
-
-assert_no_complete "ccze -? "
-sync_after_int
-
-assert_complete_any "ccze -o "
-sync_after_int
-
-assert_complete_any "ccze --plugin="
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/cd.exp b/test/lib/completions/cd.exp
index 6f36c881..ded094c3 100644
--- a/test/lib/completions/cd.exp
+++ b/test/lib/completions/cd.exp
@@ -11,13 +11,6 @@ proc teardown {} {
setup
-set test "Tab should complete"
-assert_complete {"bar bar.d/" foo.d/} "cd $::srcdir/fixtures/shared/default/" $test
-
-
-sync_after_int
-
-
set test "Tab should complete cd at cursor position"
# Try completion
set cmd "cd $::srcdir/fixtures/shared/default/foo"
@@ -35,23 +28,4 @@ expect {
sync_after_int
-set test "Tab should complete CDPATH"
- # Set CDPATH
-assert_bash_exec "declare -p CDPATH &>/dev/null && OLDCDPATH=\$CDPATH || :"
-assert_bash_exec "CDPATH=\$PWD";
-assert_complete "$::srcdir/fixtures/shared/default/foo.d/" \
- "cd $::srcdir/fixtures/shared/default/fo" $test -nospace -expect-cmd-minus fo
-sync_after_int
-
-assert_bash_exec "unset CDPATH"
-# Assuming no subdirs here
-assert_bash_exec "cd $::srcdir/fixtures/shared/default/foo.d"
-assert_no_complete "cd " "cd shouldn't complete when there are no subdirs or CDPATH"
-sync_after_int
-
- # Reset PWD and CDPATH
-assert_bash_exec "cd \"\$OLDPWD\""
-assert_bash_exec "declare -p OLDCDPATH &>/dev/null && CDPATH=\$OLDCDPATH || unset CDPATH && unset OLDCDPATH"
-
-
teardown
diff --git a/test/lib/completions/cdrecord.exp b/test/lib/completions/cdrecord.exp
deleted file mode 100644
index 192d2ded..00000000
--- a/test/lib/completions/cdrecord.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "cdrecord -d"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/cfagent.exp b/test/lib/completions/cfagent.exp
deleted file mode 100644
index aa5c88cb..00000000
--- a/test/lib/completions/cfagent.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "cfagent -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/cfrun.exp b/test/lib/completions/cfrun.exp
deleted file mode 100644
index 2cf6a4cb..00000000
--- a/test/lib/completions/cfrun.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "cfrun -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/chage.exp b/test/lib/completions/chage.exp
deleted file mode 100644
index e5399054..00000000
--- a/test/lib/completions/chage.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "chage "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/change_pw.exp b/test/lib/completions/change_pw.exp
deleted file mode 100644
index 28301941..00000000
--- a/test/lib/completions/change_pw.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "change_pw -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/check_db.exp b/test/lib/completions/check_db.exp
deleted file mode 100644
index fe34ead2..00000000
--- a/test/lib/completions/check_db.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "check_db -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/check_perms.exp b/test/lib/completions/check_perms.exp
deleted file mode 100644
index b40b78fc..00000000
--- a/test/lib/completions/check_perms.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "check_perms -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/checksec.exp b/test/lib/completions/checksec.exp
deleted file mode 100644
index 03abd575..00000000
--- a/test/lib/completions/checksec.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "checksec -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/chfn.exp b/test/lib/completions/chfn.exp
deleted file mode 100644
index ea977c76..00000000
--- a/test/lib/completions/chfn.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "chfn "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/chgrp.exp b/test/lib/completions/chgrp.exp
deleted file mode 100644
index e9238bde..00000000
--- a/test/lib/completions/chgrp.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "chgrp "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/chkconfig.exp b/test/lib/completions/chkconfig.exp
deleted file mode 100644
index 1714144d..00000000
--- a/test/lib/completions/chkconfig.exp
+++ /dev/null
@@ -1,27 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "chkconfig -"
-sync_after_int
-
-
-# systemd may not be running e.g. in a docker container, and listing services
-# will then fail.
-if {[assert_exec {systemctl list-units} "" "" "unsupported" ]} {
- # TODO test this also if systemctl command is not available at all
- assert_complete_any "chkconfig "
-}
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/chown.exp b/test/lib/completions/chown.exp
index 6bfd9d05..792d52a9 100644
--- a/test/lib/completions/chown.exp
+++ b/test/lib/completions/chown.exp
@@ -12,13 +12,6 @@ proc teardown {} {
setup
-set users [exec bash -c "compgen -A user"]
-assert_complete $users "chown "
-
-
-sync_after_int
-
-
# Find user/group suitable for testing.
set failed_find_unique_completion 0
foreach ug {user group} {
@@ -34,14 +27,6 @@ foreach ug {user group} {
# These tests require an unique completion.
if {!$failed_find_unique_completion} {
- assert_complete $fulluser "chown $partuser"
- sync_after_int
-
- assert_complete $fulluser:$fullgroup "chown $fulluser:$partgroup"
- sync_after_int
-
- assert_complete "dot.user:$fullgroup" "chown dot.user:$partgroup"
- sync_after_int
foreach prefix {
"funky\\ user:" "funky.user:" "funky\\.user:" "fu\\ nky.user:"
@@ -52,28 +37,7 @@ if {!$failed_find_unique_completion} {
assert_complete $prefix$fullgroup "chown $prefix$partgroup" $test
sync_after_int
}
-
- # Check that we give up in degenerate cases instead of spewing various junk.
-
- assert_no_complete "chown $fulluser\\\\:$partgroup"
- sync_after_int
-
- assert_no_complete "chown $fulluser\\\\\\:$partgroup"
- sync_after_int
-
- assert_no_complete "chown $fulluser\\\\\\\\:$partgroup"
- sync_after_int
-
- # Colons in user/groupnames are not usually allowed.
- assert_no_complete "chown foo:bar:$partgroup"
- sync_after_int
}
-assert_complete {bar "bar bar.d/" foo foo.d/} "chown foo: $::srcdir/fixtures/shared/default/"
-sync_after_int
-
-assert_complete {bar "bar bar.d/" foo foo.d/} "chown :foo $::srcdir/fixtures/shared/default/"
-sync_after_int
-
teardown
diff --git a/test/lib/completions/chpasswd.exp b/test/lib/completions/chpasswd.exp
deleted file mode 100644
index 84c3345f..00000000
--- a/test/lib/completions/chpasswd.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "chpasswd -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/chronyc.exp b/test/lib/completions/chronyc.exp
deleted file mode 100644
index 33458113..00000000
--- a/test/lib/completions/chronyc.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "chronyc -"
-sync_after_int
-
-assert_complete_any "chronyc "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/chroot.exp b/test/lib/completions/chroot.exp
deleted file mode 100644
index ba9f63a1..00000000
--- a/test/lib/completions/chroot.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "chroot "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/chrpath.exp b/test/lib/completions/chrpath.exp
deleted file mode 100644
index 311628eb..00000000
--- a/test/lib/completions/chrpath.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "chrpath "
-sync_after_int
-
-assert_complete_any "chrpath -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/chsh.exp b/test/lib/completions/chsh.exp
deleted file mode 100644
index 6736c18c..00000000
--- a/test/lib/completions/chsh.exp
+++ /dev/null
@@ -1,26 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "chsh -s "
-
-
-sync_after_int
-
-
-assert_complete_any "chsh "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ci.exp b/test/lib/completions/ci.exp
deleted file mode 100644
index 15ef2ecc..00000000
--- a/test/lib/completions/ci.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "ci "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ciptool.exp b/test/lib/completions/ciptool.exp
deleted file mode 100644
index cefe8f92..00000000
--- a/test/lib/completions/ciptool.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "ciptool "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/civclient.exp b/test/lib/completions/civclient.exp
deleted file mode 100644
index c0047468..00000000
--- a/test/lib/completions/civclient.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "civclient -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/civserver.exp b/test/lib/completions/civserver.exp
deleted file mode 100644
index 3739f50e..00000000
--- a/test/lib/completions/civserver.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "civserver -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/cksfv.exp b/test/lib/completions/cksfv.exp
deleted file mode 100644
index 2b9be04c..00000000
--- a/test/lib/completions/cksfv.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "cksfv -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/cleanarch.exp b/test/lib/completions/cleanarch.exp
deleted file mode 100644
index a5f3bfe6..00000000
--- a/test/lib/completions/cleanarch.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "cleanarch -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/clisp.exp b/test/lib/completions/clisp.exp
deleted file mode 100644
index dfbad4f3..00000000
--- a/test/lib/completions/clisp.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "clisp "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/clone_member.exp b/test/lib/completions/clone_member.exp
deleted file mode 100644
index d83d73bc..00000000
--- a/test/lib/completions/clone_member.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "clone_member -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/co.exp b/test/lib/completions/co.exp
deleted file mode 100644
index 215268b6..00000000
--- a/test/lib/completions/co.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "co "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/compare.exp b/test/lib/completions/compare.exp
deleted file mode 100644
index 006d70a1..00000000
--- a/test/lib/completions/compare.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "compare "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/complete.exp b/test/lib/completions/complete.exp
deleted file mode 100644
index 9d898c51..00000000
--- a/test/lib/completions/complete.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "complete -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/composite.exp b/test/lib/completions/composite.exp
deleted file mode 100644
index aba9af3b..00000000
--- a/test/lib/completions/composite.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "composite "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/config_list.exp b/test/lib/completions/config_list.exp
deleted file mode 100644
index 27699239..00000000
--- a/test/lib/completions/config_list.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "config_list -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/configure.exp b/test/lib/completions/configure.exp
deleted file mode 100644
index 1be8e167..00000000
--- a/test/lib/completions/configure.exp
+++ /dev/null
@@ -1,24 +0,0 @@
-proc setup {} {
- # Make sure our own ./configure is in PATH
- assert_bash_exec {OLDPATH="$PATH"; PATH="$SRCDIR/..:$PATH"}
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
- assert_bash_exec {PATH="$OLDPATH"; unset -v OLDPATH}
-}
-
-
-setup
-
-
-assert_complete_any "configure --"
-sync_after_int
-
-assert_complete_any "configure --prefix "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/conjure.exp b/test/lib/completions/conjure.exp
deleted file mode 100644
index 4f628af3..00000000
--- a/test/lib/completions/conjure.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "conjure "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/convert.exp b/test/lib/completions/convert.exp
deleted file mode 100644
index b3a2e565..00000000
--- a/test/lib/completions/convert.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "convert "
-sync_after_int
-
-
-assert_complete_any "convert -format "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/cowsay.exp b/test/lib/completions/cowsay.exp
deleted file mode 100644
index 382f400f..00000000
--- a/test/lib/completions/cowsay.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "cowsay "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/cp.exp b/test/lib/completions/cp.exp
deleted file mode 100644
index 703bf263..00000000
--- a/test/lib/completions/cp.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "cp "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/cpan2dist.exp b/test/lib/completions/cpan2dist.exp
deleted file mode 100644
index 1c7836ad..00000000
--- a/test/lib/completions/cpan2dist.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "cpan2dist -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/cpio.exp b/test/lib/completions/cpio.exp
deleted file mode 100644
index 93f6f3c1..00000000
--- a/test/lib/completions/cpio.exp
+++ /dev/null
@@ -1,26 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "cpio --"
-
-
-sync_after_int
-
-
-assert_complete [exec bash -c "compgen -A user"] "cpio -R "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/cppcheck.exp b/test/lib/completions/cppcheck.exp
deleted file mode 100644
index 80b6e7b6..00000000
--- a/test/lib/completions/cppcheck.exp
+++ /dev/null
@@ -1,42 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "cppcheck "
-sync_after_int
-
-
-assert_complete_any "cppcheck -"
-sync_after_int
-
-
-assert_complete_any "cppcheck -DFOO=BAR "
-sync_after_int
-
-
-assert_no_complete "cppcheck -D "
-sync_after_int
-
-
-assert_complete "--enable=all" "cppcheck --enable=al"
-sync_after_int
-
-
-assert_complete "--enable=xx,style" "cppcheck --enable=xx,styl"
-sync_after_int
-
-
-assert_complete "--enable=xx,yy,style" "cppcheck --enable=xx,yy,styl"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/createdb.exp b/test/lib/completions/createdb.exp
deleted file mode 100644
index 234817f9..00000000
--- a/test/lib/completions/createdb.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "createdb -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/createuser.exp b/test/lib/completions/createuser.exp
deleted file mode 100644
index 87d4ac87..00000000
--- a/test/lib/completions/createuser.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "createuser -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/crontab.exp b/test/lib/completions/crontab.exp
deleted file mode 100644
index 18e2269f..00000000
--- a/test/lib/completions/crontab.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "crontab "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/cryptsetup.exp b/test/lib/completions/cryptsetup.exp
deleted file mode 100644
index 4c20bc5d..00000000
--- a/test/lib/completions/cryptsetup.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "cryptsetup "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/csplit.exp b/test/lib/completions/csplit.exp
deleted file mode 100644
index 87b89dea..00000000
--- a/test/lib/completions/csplit.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "csplit "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/curl.exp b/test/lib/completions/curl.exp
deleted file mode 100644
index e05c023e..00000000
--- a/test/lib/completions/curl.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "curl --h"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/cut.exp b/test/lib/completions/cut.exp
deleted file mode 100644
index edb558ea..00000000
--- a/test/lib/completions/cut.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "cut "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/cvs.exp b/test/lib/completions/cvs.exp
deleted file mode 100644
index 9248edc8..00000000
--- a/test/lib/completions/cvs.exp
+++ /dev/null
@@ -1,41 +0,0 @@
-proc setup {} {
- save_env
- assert_bash_exec {OLDHOME=$HOME ; HOME=$SRCDIR/fixtures/cvs}
-}
-
-
-proc teardown {} {
- assert_bash_exec {HOME=$OLDHOME}
- assert_env_unmodified {
- /OLDHOME=/d
- /OLDPWD=/d
- }
-}
-
-
-setup
-
-
-assert_complete_any "cvs "
-
-
-sync_after_int
-
-
-set test "-d should complete CVS roots"
-set cmd "cvs -d "
-send "$cmd\t"
-expect {
- -re "^$cmd\r\n.*:pserver:.*\r\n/@$cmd:pserver:.*$" { pass "$test" }
- default { fail "$test" }
-}
-
-
-sync_after_int
-
-
-assert_complete_dir "foo/bar" "cvs diff foo/" $::srcdir/fixtures/cvs
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/cvsps.exp b/test/lib/completions/cvsps.exp
deleted file mode 100644
index 6cf95ac1..00000000
--- a/test/lib/completions/cvsps.exp
+++ /dev/null
@@ -1,36 +0,0 @@
-proc setup {} {
- save_env
- assert_bash_exec {OLDHOME=$HOME ; HOME=$SRCDIR/fixtures/cvs}
-}
-
-
-proc teardown {} {
- assert_bash_exec {HOME=$OLDHOME}
- assert_env_unmodified {
- /OLDHOME=/d
- }
-}
-
-
-setup
-
-
-assert_complete_any "cvsps -"
-
-
-sync_after_int
-
-
-set test "No arguments should complete CVS roots"
-set cmd "cvsps "
-send "$cmd\t"
-expect {
- -re "^$cmd\r\n.*:pserver:.*\r\n/@$cmd:pserver:.*$" { pass "$test" }
- default { fail "$test" }
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/date.exp b/test/lib/completions/date.exp
deleted file mode 100644
index ee970cf7..00000000
--- a/test/lib/completions/date.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "date "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/dcop.exp b/test/lib/completions/dcop.exp
deleted file mode 100644
index dcff2802..00000000
--- a/test/lib/completions/dcop.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {dcop} words "" "untested"]} {
- assert_complete $words "dcop "
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/dd.exp b/test/lib/completions/dd.exp
deleted file mode 100644
index 4946e54d..00000000
--- a/test/lib/completions/dd.exp
+++ /dev/null
@@ -1,33 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "dd --"
-
-
-sync_after_int
-
-
-set test "option should be suffixed with ="
-set cmd "dd bs"
-send "$cmd\t"
-expect -ex "$cmd"
-expect {
- -re "^=$" { pass $test }
- -re {^\\=$} { xfail $test }
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/declare.exp b/test/lib/completions/declare.exp
deleted file mode 100644
index 8830b676..00000000
--- a/test/lib/completions/declare.exp
+++ /dev/null
@@ -1,26 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "declare -"
-sync_after_int
-
-assert_complete_any "declare +"
-sync_after_int
-
-assert_complete {BASH_ARGC BASH_ARGV} "declare -p BASH_ARG"
-sync_after_int
-
-assert_complete_any "declare -f _parse_"
-sync_after_int
-
-teardown
diff --git a/test/lib/completions/deja-dup.exp b/test/lib/completions/deja-dup.exp
deleted file mode 100644
index d46549cf..00000000
--- a/test/lib/completions/deja-dup.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "deja-dup -"
-sync_after_int
-
-assert_no_complete "deja-dup --help "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/desktop-file-validate.exp b/test/lib/completions/desktop-file-validate.exp
deleted file mode 100644
index 40cbf82f..00000000
--- a/test/lib/completions/desktop-file-validate.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "desktop-file-validate "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/df.exp b/test/lib/completions/df.exp
deleted file mode 100644
index acf212a9..00000000
--- a/test/lib/completions/df.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "df "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/dfutool.exp b/test/lib/completions/dfutool.exp
deleted file mode 100644
index 10e48544..00000000
--- a/test/lib/completions/dfutool.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "dfutool "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/dhclient.exp b/test/lib/completions/dhclient.exp
deleted file mode 100644
index 6caff5fc..00000000
--- a/test/lib/completions/dhclient.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "dhclient -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/dict.exp b/test/lib/completions/dict.exp
deleted file mode 100644
index 402e0c5c..00000000
--- a/test/lib/completions/dict.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "dict -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/diff.exp b/test/lib/completions/diff.exp
deleted file mode 100644
index 918bf7fd..00000000
--- a/test/lib/completions/diff.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "diff --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/dir.exp b/test/lib/completions/dir.exp
deleted file mode 100644
index c9f61cd5..00000000
--- a/test/lib/completions/dir.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "dir "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/display.exp b/test/lib/completions/display.exp
deleted file mode 100644
index 70cea182..00000000
--- a/test/lib/completions/display.exp
+++ /dev/null
@@ -1,26 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "display "
-
-
-sync_after_int
-
-
-assert_complete_any "display -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/dmesg.exp b/test/lib/completions/dmesg.exp
deleted file mode 100644
index 79f2e04a..00000000
--- a/test/lib/completions/dmesg.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "dmesg -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/dnsspoof.exp b/test/lib/completions/dnsspoof.exp
deleted file mode 100644
index 4aefb956..00000000
--- a/test/lib/completions/dnsspoof.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "dnsspoof -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/dot.exp b/test/lib/completions/dot.exp
deleted file mode 100644
index 2a85a56b..00000000
--- a/test/lib/completions/dot.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "dot "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/dpkg-deb.exp b/test/lib/completions/dpkg-deb.exp
deleted file mode 100644
index 37ece08d..00000000
--- a/test/lib/completions/dpkg-deb.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "dpkg-deb --c"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/dpkg-reconfigure.exp b/test/lib/completions/dpkg-reconfigure.exp
deleted file mode 100644
index 0212666b..00000000
--- a/test/lib/completions/dpkg-reconfigure.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "dpkg-reconfigure --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/dpkg-source.exp b/test/lib/completions/dpkg-source.exp
deleted file mode 100644
index a42759b9..00000000
--- a/test/lib/completions/dpkg-source.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "dpkg-source -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/dpkg.exp b/test/lib/completions/dpkg.exp
deleted file mode 100644
index b69f79fd..00000000
--- a/test/lib/completions/dpkg.exp
+++ /dev/null
@@ -1,29 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "dpkg --c"
-sync_after_int
-
-
-# Build list of installed packages
-if {[assert_exec {dpkg --get-selections | command grep \[\[:space:\]\]install$ | cut -f1} packages "" "untested"]} {
- assert_complete $packages "dpkg -L "
-}
-sync_after_int
-
-
-assert_complete_homedir "dpkg -i"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/dropdb.exp b/test/lib/completions/dropdb.exp
deleted file mode 100644
index d68cd48a..00000000
--- a/test/lib/completions/dropdb.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "dropdb -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/dropuser.exp b/test/lib/completions/dropuser.exp
deleted file mode 100644
index 8b36fa5e..00000000
--- a/test/lib/completions/dropuser.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "dropuser "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/dselect.exp b/test/lib/completions/dselect.exp
deleted file mode 100644
index 634db05e..00000000
--- a/test/lib/completions/dselect.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "dselect "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/dsniff.exp b/test/lib/completions/dsniff.exp
deleted file mode 100644
index cb8912b6..00000000
--- a/test/lib/completions/dsniff.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "dsniff -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/du.exp b/test/lib/completions/du.exp
deleted file mode 100644
index 6ddeb9b2..00000000
--- a/test/lib/completions/du.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "du "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/dumpdb.exp b/test/lib/completions/dumpdb.exp
deleted file mode 100644
index 5b617b11..00000000
--- a/test/lib/completions/dumpdb.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "dumpdb "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/dumpe2fs.exp b/test/lib/completions/dumpe2fs.exp
deleted file mode 100644
index e935c504..00000000
--- a/test/lib/completions/dumpe2fs.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "dumpe2fs "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/e2freefrag.exp b/test/lib/completions/e2freefrag.exp
deleted file mode 100644
index 1530c9c9..00000000
--- a/test/lib/completions/e2freefrag.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "e2freefrag "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/e2label.exp b/test/lib/completions/e2label.exp
deleted file mode 100644
index 8ae7f443..00000000
--- a/test/lib/completions/e2label.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "e2label "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ebtables.exp b/test/lib/completions/ebtables.exp
deleted file mode 100644
index e8feea55..00000000
--- a/test/lib/completions/ebtables.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "ebtables -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/eject.exp b/test/lib/completions/eject.exp
deleted file mode 100644
index 8de109d4..00000000
--- a/test/lib/completions/eject.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "eject -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/enscript.exp b/test/lib/completions/enscript.exp
deleted file mode 100644
index c859b50f..00000000
--- a/test/lib/completions/enscript.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "enscript --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/env.exp b/test/lib/completions/env.exp
deleted file mode 100644
index 4f213748..00000000
--- a/test/lib/completions/env.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {env --help} "" "" "unsupported"]} {
- assert_complete_any "env --"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/eog.exp b/test/lib/completions/eog.exp
deleted file mode 100644
index b708c564..00000000
--- a/test/lib/completions/eog.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "eog "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ether-wake.exp b/test/lib/completions/ether-wake.exp
deleted file mode 100644
index fe1aa174..00000000
--- a/test/lib/completions/ether-wake.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "ether-wake "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/evince.exp b/test/lib/completions/evince.exp
deleted file mode 100644
index 204467a1..00000000
--- a/test/lib/completions/evince.exp
+++ /dev/null
@@ -1,35 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified {/OLDPWD=/d}
-}
-
-
-setup
-
-
-# NOTE: The directory `fixtures/evince' contains an additional subdir `foo'
-# (should be visible as completion) and an additional file `.txt'
-# (shouldn't be visible as completion)
-set files {
- foo/
- .bmp .BMP .cbr .CBR .cbz .CBZ .djv .DJV .djvu .DJVU
- .dvi .DVI .dvi.bz2 .dvi.BZ2 .DVI.bz2 .DVI.BZ2 .dvi.gz .dvi.GZ .DVI.gz .DVI.GZ
- .eps .EPS .eps.bz2 .eps.BZ2 .EPS.bz2 .EPS.BZ2 .eps.gz .eps.GZ .EPS.gz .EPS.GZ
- .gif .GIF .ico .ICO .jpeg .JPEG .jpg .JPG .miff .MIFF .pbm .PBM .pcx .PCX
- .pdf .PDF .pdf.bz2 .pdf.BZ2 .PDF.bz2 .PDF.BZ2 .pdf.gz .pdf.GZ .PDF.gz .PDF.GZ
- .pgm .PGM .png .PNG .pnm .PNM .ppm .PPM
- .ps .PS .ps.bz2 .ps.BZ2 .PS.bz2 .PS.BZ2 .ps.gz .ps.GZ .PS.gz .PS.GZ
- .tga .TGA .tif .TIF .tiff .TIFF
- .xpm .XPM .xwd .XWD
-}
-assert_complete_dir $files "evince " "$::srcdir/fixtures/evince"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/expand.exp b/test/lib/completions/expand.exp
deleted file mode 100644
index 76b6eafa..00000000
--- a/test/lib/completions/expand.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {expand --help} "" "" "unsupported"]} {
- assert_complete_any "expand --"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/explodepkg.exp b/test/lib/completions/explodepkg.exp
deleted file mode 100644
index e5ee35e4..00000000
--- a/test/lib/completions/explodepkg.exp
+++ /dev/null
@@ -1,25 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified {/OLDPWD=/d}
-}
-
-
-setup
-
-
-set test "should complete *.t\[gbxl\]z files and dirs"
-set dir $::srcdir/fixtures/slackware/home
-set files [split [exec bash -c "cd $dir && find . -mindepth 1 -maxdepth 1 \
- \\( -type d -printf '%P/\\n' \\) -o \
- \\( -type f -name '*.t\[bglx\]z' -printf '%P\\n' \\)"] "\n"]
-assert_complete_dir $files "explodepkg " $dir $test
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/export.exp b/test/lib/completions/export.exp
deleted file mode 100644
index 84cb9170..00000000
--- a/test/lib/completions/export.exp
+++ /dev/null
@@ -1,55 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified {
- /OLDPWD=/d
- }
-}
-
-
-setup
-
-
-assert_complete_any "export BASH"
-sync_after_int
-
-
-assert_complete_any "export -n BASH"
-sync_after_int
-
-
-assert_no_complete "export -p "
-sync_after_int
-
-
-assert_complete_dir {bar "bar bar.d/" foo foo.d/} "export FOO=" \
- fixtures/shared/default
-sync_after_int
-
-
-assert_complete_dir {foo foo.d/} "export FOO=f" fixtures/shared/default "" \
- -expect-cmd-minus f
-sync_after_int
-
-
-# Functions: _export, _expand, ...
-assert_complete_any "export -fn _ex"
-sync_after_int
-
-
-assert_complete_any "export -f -n _ex"
-sync_after_int
-
-
-assert_complete_any "export FOO=\$BASH"
-sync_after_int
-
-
-assert_complete_any "export -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/faillog.exp b/test/lib/completions/faillog.exp
deleted file mode 100644
index 9ccd1ad2..00000000
--- a/test/lib/completions/faillog.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "faillog -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/fbgs.exp b/test/lib/completions/fbgs.exp
deleted file mode 100644
index 45fa22df..00000000
--- a/test/lib/completions/fbgs.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "fbgs "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/fbi.exp b/test/lib/completions/fbi.exp
deleted file mode 100644
index 9c583062..00000000
--- a/test/lib/completions/fbi.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "fbi "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/feh.exp b/test/lib/completions/feh.exp
deleted file mode 100644
index 28e90d99..00000000
--- a/test/lib/completions/feh.exp
+++ /dev/null
@@ -1,57 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "feh "
-
-
-sync_after_int
-
-
-if {[assert_exec {feh --help | grep "man feh" || exit 1} "" "" "unsupported"]} {
- set test "--lis<TAB> should complete \"--list\""
- assert_complete "--list" "feh --lis" $test
-}
-
-
-sync_after_int
-
-
-set test "-S pix<TAB> should complete \"pixels\""
-assert_complete "pixels" "feh -S pix" $test
-
-
-sync_after_int
-
-
-set test "--zoom ma<TAB> should complete \"max\""
-assert_complete "max" "feh --zoom ma" $test
-
-
-sync_after_int
-
-
-set test "-g 640<TAB> should complete digits plus \"x\""
-assert_complete "0 1 2 3 4 5 6 7 8 9 x" "feh -g 640" $test
-
-
-sync_after_int
-
-
-set test "-g 640x48<TAB> should complete digits"
-assert_complete "0 1 2 3 4 5 6 7 8 9" "feh -g 640x48" $test
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/file-roller.exp b/test/lib/completions/file-roller.exp
deleted file mode 100644
index 942941d0..00000000
--- a/test/lib/completions/file-roller.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "file-roller "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/file.exp b/test/lib/completions/file.exp
deleted file mode 100644
index 346960b6..00000000
--- a/test/lib/completions/file.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "file "
-sync_after_int
-
-assert_complete_any "file -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/filefrag.exp b/test/lib/completions/filefrag.exp
deleted file mode 100644
index fa80cd05..00000000
--- a/test/lib/completions/filefrag.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "filefrag "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/filesnarf.exp b/test/lib/completions/filesnarf.exp
deleted file mode 100644
index 03755056..00000000
--- a/test/lib/completions/filesnarf.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "filesnarf -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/find.exp b/test/lib/completions/find.exp
deleted file mode 100644
index 96d55334..00000000
--- a/test/lib/completions/find.exp
+++ /dev/null
@@ -1,78 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified {/OLDPWD=/d}
-}
-
-
-setup
-
-
-assert_complete_any "find "
-
-
-sync_after_int
-
-
-assert_complete_any "find -fstype "
-
-
-sync_after_int
-
-
-set options [list -daystart -depth -follow -help \
- -ignore_readdir_race -maxdepth -mindepth -mindepth -mount \
- -noignore_readdir_race -noleaf -regextype -version -warn -nowarn \
- -xdev \
- -amin -anewer -atime -cmin -cnewer -ctime -empty -executable -false \
- -fstype -gid -group -ilname -iname -inum -ipath -iregex -iwholename \
- -links -lname -mmin -mtime -name -newer -nogroup -nouser -path -perm \
- -readable -regex -samefile -size -true -type -uid -used -user \
- -wholename -writable -xtype -context \
- -delete -exec -execdir -fls -fprint -fprint0 -fprintf -ls -ok -okdir \
- -print -print0 -printf -prune -quit]
-assert_complete $options {find -}
-
-
-sync_after_int
-
-
-set test "-wholename should complete files/dirs"
-set dir $::srcdir/fixtures/shared/default
-set files [split [exec bash -c "cd $dir && ls -p"] "\n"]
-assert_complete_dir $files "find -wholename " $dir $test
-
-
-sync_after_int
-
-
-set test "-uid should complete uids"
-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" }
-}
-
-
-sync_after_int
-
-
-set test "-gid should complete gids"
-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" }
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/find_member.exp b/test/lib/completions/find_member.exp
deleted file mode 100644
index 55672091..00000000
--- a/test/lib/completions/find_member.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "find_member -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/finger.exp b/test/lib/completions/finger.exp
index 5a3d3e9e..fa9f5b6b 100644
--- a/test/lib/completions/finger.exp
+++ b/test/lib/completions/finger.exp
@@ -11,15 +11,6 @@ proc teardown {} {
setup
-set test "Tab should complete usernames"
-# Build string list of usernames
-set users {}
-foreach u [exec bash -c "compgen -A user -S @"] {
- lappend users $u
-}
-assert_complete $users "finger " $test
-
-
sync_after_int
diff --git a/test/lib/completions/flake8.exp b/test/lib/completions/flake8.exp
deleted file mode 100644
index 146ff04d..00000000
--- a/test/lib/completions/flake8.exp
+++ /dev/null
@@ -1,24 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "flake8 "
-sync_after_int
-
-assert_complete_any "flake8 -"
-sync_after_int
-
-assert_no_complete "flake8 --doesnt-exist="
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/fmt.exp b/test/lib/completions/fmt.exp
deleted file mode 100644
index 7d3cc17f..00000000
--- a/test/lib/completions/fmt.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {fmt --help} "" "" "unsupported"]} {
- assert_complete_any "fmt -"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/fold.exp b/test/lib/completions/fold.exp
deleted file mode 100644
index f447f08b..00000000
--- a/test/lib/completions/fold.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {fold --help} "" "" "unsupported"]} {
- assert_complete_any "fold --"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/freebsd-update.exp b/test/lib/completions/freebsd-update.exp
deleted file mode 100644
index 3657ebfd..00000000
--- a/test/lib/completions/freebsd-update.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "freebsd-update "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/freeciv-gtk2.exp b/test/lib/completions/freeciv-gtk2.exp
deleted file mode 100644
index 1c0ec474..00000000
--- a/test/lib/completions/freeciv-gtk2.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "freeciv-gtk2 -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/freeciv-server.exp b/test/lib/completions/freeciv-server.exp
deleted file mode 100644
index a9431848..00000000
--- a/test/lib/completions/freeciv-server.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "freeciv-server -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/freerdp.exp b/test/lib/completions/freerdp.exp
deleted file mode 100644
index be61d459..00000000
--- a/test/lib/completions/freerdp.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "xfreerdp"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/function.exp b/test/lib/completions/function.exp
deleted file mode 100644
index 823811f1..00000000
--- a/test/lib/completions/function.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "function _parse_"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/fusermount.exp b/test/lib/completions/fusermount.exp
deleted file mode 100644
index f6ac4f5d..00000000
--- a/test/lib/completions/fusermount.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "fusermount "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/g++.exp b/test/lib/completions/g++.exp
deleted file mode 100644
index 4dbe73f4..00000000
--- a/test/lib/completions/g++.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "g++ "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/g4.exp b/test/lib/completions/g4.exp
deleted file mode 100644
index 7d575f10..00000000
--- a/test/lib/completions/g4.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "g4 "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/g77.exp b/test/lib/completions/g77.exp
deleted file mode 100644
index e23745b7..00000000
--- a/test/lib/completions/g77.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "g77 "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/gcc.exp b/test/lib/completions/gcc.exp
deleted file mode 100644
index 00097cc2..00000000
--- a/test/lib/completions/gcc.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "gcc "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/gcj.exp b/test/lib/completions/gcj.exp
deleted file mode 100644
index cde07700..00000000
--- a/test/lib/completions/gcj.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "gcj "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/gcl.exp b/test/lib/completions/gcl.exp
deleted file mode 100644
index 1846d0d1..00000000
--- a/test/lib/completions/gcl.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "gcl "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/gdb.exp b/test/lib/completions/gdb.exp
deleted file mode 100644
index 2e389edb..00000000
--- a/test/lib/completions/gdb.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "gdb - "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/genaliases.exp b/test/lib/completions/genaliases.exp
deleted file mode 100644
index bb4d5e0e..00000000
--- a/test/lib/completions/genaliases.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "genaliases -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/gendiff.exp b/test/lib/completions/gendiff.exp
deleted file mode 100644
index cc1ebb68..00000000
--- a/test/lib/completions/gendiff.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "gendiff "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/genisoimage.exp b/test/lib/completions/genisoimage.exp
deleted file mode 100644
index 5379f047..00000000
--- a/test/lib/completions/genisoimage.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "genisoimage "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/geoiplookup.exp b/test/lib/completions/geoiplookup.exp
deleted file mode 100644
index 89166401..00000000
--- a/test/lib/completions/geoiplookup.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "geoiplookup -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/getconf.exp b/test/lib/completions/getconf.exp
deleted file mode 100644
index a599fed1..00000000
--- a/test/lib/completions/getconf.exp
+++ /dev/null
@@ -1,30 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "getconf P"
-sync_after_int
-
-assert_complete_any "getconf -"
-sync_after_int
-
-assert_complete_any "getconf -a "
-sync_after_int
-
-assert_complete_any "getconf -v "
-sync_after_int
-
-assert_complete_any "getconf PATH_MAX "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/getent.exp b/test/lib/completions/getent.exp
deleted file mode 100644
index 6500b22d..00000000
--- a/test/lib/completions/getent.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "getent "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/gkrellm.exp b/test/lib/completions/gkrellm.exp
deleted file mode 100644
index 009770fc..00000000
--- a/test/lib/completions/gkrellm.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "gkrellm -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/gm.exp b/test/lib/completions/gm.exp
deleted file mode 100644
index 43f0bce2..00000000
--- a/test/lib/completions/gm.exp
+++ /dev/null
@@ -1,27 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "gm "
-sync_after_int
-
-assert_complete_any "gm help "
-sync_after_int
-
-assert_complete_any "gm time "
-sync_after_int
-
-assert_no_complete "gm version "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/gmplayer.exp b/test/lib/completions/gmplayer.exp
deleted file mode 100644
index a110cb2f..00000000
--- a/test/lib/completions/gmplayer.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "gmplayer "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/gnatmake.exp b/test/lib/completions/gnatmake.exp
deleted file mode 100644
index bad4da33..00000000
--- a/test/lib/completions/gnatmake.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "gnatmake "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/gnokii.exp b/test/lib/completions/gnokii.exp
deleted file mode 100644
index 11bfeb6c..00000000
--- a/test/lib/completions/gnokii.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "gnokii "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/gnome-mplayer.exp b/test/lib/completions/gnome-mplayer.exp
deleted file mode 100644
index fd635bff..00000000
--- a/test/lib/completions/gnome-mplayer.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "gnome-mplayer "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/gpasswd.exp b/test/lib/completions/gpasswd.exp
deleted file mode 100644
index 68ac2cc3..00000000
--- a/test/lib/completions/gpasswd.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "gpasswd "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/gpc.exp b/test/lib/completions/gpc.exp
deleted file mode 100644
index 71eddacc..00000000
--- a/test/lib/completions/gpc.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "gpc "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/gperf.exp b/test/lib/completions/gperf.exp
deleted file mode 100644
index 1cf77678..00000000
--- a/test/lib/completions/gperf.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "gperf --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/gpg.exp b/test/lib/completions/gpg.exp
deleted file mode 100644
index ea6805fa..00000000
--- a/test/lib/completions/gpg.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "gpg "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/gpg2.exp b/test/lib/completions/gpg2.exp
deleted file mode 100644
index 3bc0e7a7..00000000
--- a/test/lib/completions/gpg2.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "gpg2 --h"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/gphoto2.exp b/test/lib/completions/gphoto2.exp
deleted file mode 100644
index 90dc1e5e..00000000
--- a/test/lib/completions/gphoto2.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "gphoto2 --"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/gprof.exp b/test/lib/completions/gprof.exp
deleted file mode 100644
index 996a1efd..00000000
--- a/test/lib/completions/gprof.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {gprof --help} "" "" "unsupported"]} {
- assert_complete_any "gprof --"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/grep.exp b/test/lib/completions/grep.exp
deleted file mode 100644
index c94ae727..00000000
--- a/test/lib/completions/grep.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "grep --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/groupadd.exp b/test/lib/completions/groupadd.exp
deleted file mode 100644
index c9a4f067..00000000
--- a/test/lib/completions/groupadd.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_no_complete "groupadd "
-sync_after_int
-
-assert_complete_any "groupadd -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/groupdel.exp b/test/lib/completions/groupdel.exp
deleted file mode 100644
index 07c77638..00000000
--- a/test/lib/completions/groupdel.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "groupdel "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/groupmems.exp b/test/lib/completions/groupmems.exp
deleted file mode 100644
index 41c4b43e..00000000
--- a/test/lib/completions/groupmems.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "groupmems -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/groupmod.exp b/test/lib/completions/groupmod.exp
deleted file mode 100644
index 451456b3..00000000
--- a/test/lib/completions/groupmod.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "groupmod "
-sync_after_int
-
-assert_complete_any "groupmod -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/growisofs.exp b/test/lib/completions/growisofs.exp
deleted file mode 100644
index 0f2a0ec7..00000000
--- a/test/lib/completions/growisofs.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "growisofs "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/grpck.exp b/test/lib/completions/grpck.exp
deleted file mode 100644
index 385ebe2b..00000000
--- a/test/lib/completions/grpck.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "grpck "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/grub.exp b/test/lib/completions/grub.exp
deleted file mode 100644
index b88d1f26..00000000
--- a/test/lib/completions/grub.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "grub --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/gzip.exp b/test/lib/completions/gzip.exp
deleted file mode 100644
index 95f774c6..00000000
--- a/test/lib/completions/gzip.exp
+++ /dev/null
@@ -1,32 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-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" }
-}
-
-
-sync_after_int
-
-
-assert_complete_homedir "gzip"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/hciattach.exp b/test/lib/completions/hciattach.exp
deleted file mode 100644
index 35642f28..00000000
--- a/test/lib/completions/hciattach.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "hciattach "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/hciconfig.exp b/test/lib/completions/hciconfig.exp
deleted file mode 100644
index 56444f4f..00000000
--- a/test/lib/completions/hciconfig.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "hciconfig "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/hcitool.exp b/test/lib/completions/hcitool.exp
deleted file mode 100644
index e6ae0032..00000000
--- a/test/lib/completions/hcitool.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "hcitool "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/hddtemp.exp b/test/lib/completions/hddtemp.exp
deleted file mode 100644
index a6721dbf..00000000
--- a/test/lib/completions/hddtemp.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "hddtemp -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/head.exp b/test/lib/completions/head.exp
deleted file mode 100644
index 7edb8a1b..00000000
--- a/test/lib/completions/head.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {head --help} "" "" "unsupported"]} {
- assert_complete_any "head --"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/hexdump.exp b/test/lib/completions/hexdump.exp
deleted file mode 100644
index e3447482..00000000
--- a/test/lib/completions/hexdump.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "hexdump -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/hid2hci.exp b/test/lib/completions/hid2hci.exp
deleted file mode 100644
index c090c2c9..00000000
--- a/test/lib/completions/hid2hci.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "hid2hci -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/host.exp b/test/lib/completions/host.exp
deleted file mode 100644
index 73081821..00000000
--- a/test/lib/completions/host.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "host -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/hostname.exp b/test/lib/completions/hostname.exp
deleted file mode 100644
index 9d9e4963..00000000
--- a/test/lib/completions/hostname.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "hostname -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/hping2.exp b/test/lib/completions/hping2.exp
deleted file mode 100644
index 8919626d..00000000
--- a/test/lib/completions/hping2.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "hping2 "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/hping3.exp b/test/lib/completions/hping3.exp
deleted file mode 100644
index 991ee3ad..00000000
--- a/test/lib/completions/hping3.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "hping3 "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/htop.exp b/test/lib/completions/htop.exp
deleted file mode 100644
index d3e94d10..00000000
--- a/test/lib/completions/htop.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "htop -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/htpasswd.exp b/test/lib/completions/htpasswd.exp
deleted file mode 100644
index bb66d2f0..00000000
--- a/test/lib/completions/htpasswd.exp
+++ /dev/null
@@ -1,32 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified {
- /OLDPWD=/d
- }
-}
-
-
-setup
-
-
-assert_complete_any "htpasswd "
-sync_after_int
-
-
-assert_no_complete "htpasswd -n $::srcdir/fixtures/htpasswd/ht"
-sync_after_int
-
-
-assert_complete_dir "htpasswd" "htpasswd " $::srcdir/fixtures/htpasswd
-sync_after_int
-
-
-assert_complete_dir "foo quux" "htpasswd -D htpasswd " $::srcdir/fixtures/htpasswd
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/hwclock.exp b/test/lib/completions/hwclock.exp
deleted file mode 100644
index b12951a9..00000000
--- a/test/lib/completions/hwclock.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "hwclock -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/iconv.exp b/test/lib/completions/iconv.exp
deleted file mode 100644
index dcce330f..00000000
--- a/test/lib/completions/iconv.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "iconv -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/id.exp b/test/lib/completions/id.exp
deleted file mode 100644
index b03ee721..00000000
--- a/test/lib/completions/id.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "id -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/identify.exp b/test/lib/completions/identify.exp
deleted file mode 100644
index 3347c5cd..00000000
--- a/test/lib/completions/identify.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "identify -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/idn.exp b/test/lib/completions/idn.exp
deleted file mode 100644
index 4625c7e4..00000000
--- a/test/lib/completions/idn.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "idn -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ifdown.exp b/test/lib/completions/ifdown.exp
deleted file mode 100644
index 7341ceb8..00000000
--- a/test/lib/completions/ifdown.exp
+++ /dev/null
@@ -1,25 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[info exists ::env(CI)]} {
- unsupported "ifdown should show completions"
-} else {
- assert_complete_any "ifdown "
- sync_after_int
-}
-
-assert_no_complete "ifdown bash-completion "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/iftop.exp b/test/lib/completions/iftop.exp
deleted file mode 100644
index 12941610..00000000
--- a/test/lib/completions/iftop.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "iftop "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ifup.exp b/test/lib/completions/ifup.exp
deleted file mode 100644
index 31b5ade4..00000000
--- a/test/lib/completions/ifup.exp
+++ /dev/null
@@ -1,25 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[info exists ::env(CI)]} {
- unsupported "ifup should show completions"
-} else {
- assert_complete_any "ifup "
- sync_after_int
-}
-
-assert_no_complete "ifup bash-completion "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/import.exp b/test/lib/completions/import.exp
deleted file mode 100644
index db6845ea..00000000
--- a/test/lib/completions/import.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "import "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/info.exp b/test/lib/completions/info.exp
deleted file mode 100644
index 443a1305..00000000
--- a/test/lib/completions/info.exp
+++ /dev/null
@@ -1,23 +0,0 @@
-proc setup {} {
- assert_bash_exec {OLDINFOPATH=$INFOPATH; INFOPATH=$INFOPATH:$TESTDIR/fixtures/info:}
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
- assert_bash_exec {INFOPATH="$OLDINFOPATH"; unset -v OLDINFOPATH}
-}
-
-
-setup
-
-
-assert_complete_any "info bash"
-sync_after_int
-
-assert_complete_any "info -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/inject.exp b/test/lib/completions/inject.exp
deleted file mode 100644
index 4f95be23..00000000
--- a/test/lib/completions/inject.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "inject "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/insmod.exp b/test/lib/completions/insmod.exp
deleted file mode 100644
index ca7c30f6..00000000
--- a/test/lib/completions/insmod.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "insmod "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/installpkg.exp b/test/lib/completions/installpkg.exp
deleted file mode 100644
index 48581aa1..00000000
--- a/test/lib/completions/installpkg.exp
+++ /dev/null
@@ -1,49 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified {/OLDPWD=/d}
-}
-
-
-setup
-
-
-assert_complete_any "installpkg -"
-
-
-sync_after_int
-
-
-set test "--<TAB> should complete all long options"
-set options [list --warn --md5sum --root --infobox --terse --menu --ask \
- --priority --tagfile]
-assert_complete $options "installpkg --" $test
-
-
-sync_after_int
-
-
-set test "--root should comlete only dirs"
-set dirs [split [exec bash -c "find . -type d -mindepth 1 -maxdepth 1 \
- -printf '%P/\n'"] "\n"]
-assert_complete $dirs "installpkg --root " $test
-
-
-sync_after_int
-
-
-set test "should complete *.t\[gbxl\]z files and dirs"
-set dir $::srcdir/fixtures/slackware/home
-set files [split [exec bash -c "cd $dir && find . -mindepth 1 -maxdepth 1 \
- \\( -type d -printf '%P/\\n' \\) -o \
- \\( -type f -name '*.t\[bglx\]z' -printf '%P\\n' \\)"] "\n"]
-assert_complete_dir $files "installpkg " $dir $test
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/interdiff.exp b/test/lib/completions/interdiff.exp
deleted file mode 100644
index 8880f461..00000000
--- a/test/lib/completions/interdiff.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "interdiff "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/invoke-rc.d.exp b/test/lib/completions/invoke-rc.d.exp
deleted file mode 100644
index d217d17e..00000000
--- a/test/lib/completions/invoke-rc.d.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "invoke-rc.d "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ionice.exp b/test/lib/completions/ionice.exp
deleted file mode 100644
index d0ff8b64..00000000
--- a/test/lib/completions/ionice.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "ionice -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ip.exp b/test/lib/completions/ip.exp
deleted file mode 100644
index f57712cb..00000000
--- a/test/lib/completions/ip.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "ip "
-sync_after_int
-
-assert_complete_any "ip a "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/iperf.exp b/test/lib/completions/iperf.exp
deleted file mode 100644
index 66a0ba3b..00000000
--- a/test/lib/completions/iperf.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "iperf "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ipmitool.exp b/test/lib/completions/ipmitool.exp
deleted file mode 100644
index aa18e3ff..00000000
--- a/test/lib/completions/ipmitool.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "ipmitool "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ipsec.exp b/test/lib/completions/ipsec.exp
deleted file mode 100644
index 74ef638c..00000000
--- a/test/lib/completions/ipsec.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "ipsec "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/iptables.exp b/test/lib/completions/iptables.exp
deleted file mode 100644
index 8ab42f56..00000000
--- a/test/lib/completions/iptables.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "iptables -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ipv6calc.exp b/test/lib/completions/ipv6calc.exp
deleted file mode 100644
index 42201f0c..00000000
--- a/test/lib/completions/ipv6calc.exp
+++ /dev/null
@@ -1,26 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "ipv6calc -"
-
-
-sync_after_int
-
-
-assert_complete_any "ipv6calc --in "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/irb.exp b/test/lib/completions/irb.exp
deleted file mode 100644
index 720edfdf..00000000
--- a/test/lib/completions/irb.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "irb "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/iscsiadm.exp b/test/lib/completions/iscsiadm.exp
deleted file mode 100644
index 104e7c4e..00000000
--- a/test/lib/completions/iscsiadm.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "iscsiadm --mode "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/isql.exp b/test/lib/completions/isql.exp
deleted file mode 100644
index ca40faca..00000000
--- a/test/lib/completions/isql.exp
+++ /dev/null
@@ -1,23 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified {/ODBCINI=/d}
-}
-
-
-setup
-
-
-assert_bash_exec {OLDODBCINI=$ODBCINI; ODBCINI=$TESTDIR/fixtures/isql/odbc.ini}
-assert_complete_any "isql "
-sync_after_int
-assert_bash_exec {ODBCINI=$OLDODBCINI; unset -v OLDODBCINI}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/iwconfig.exp b/test/lib/completions/iwconfig.exp
deleted file mode 100644
index 82ae11f3..00000000
--- a/test/lib/completions/iwconfig.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "iwconfig --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/iwlist.exp b/test/lib/completions/iwlist.exp
deleted file mode 100644
index 43c919ef..00000000
--- a/test/lib/completions/iwlist.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "iwlist --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/iwpriv.exp b/test/lib/completions/iwpriv.exp
deleted file mode 100644
index 86b1ee95..00000000
--- a/test/lib/completions/iwpriv.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "iwpriv --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/iwspy.exp b/test/lib/completions/iwspy.exp
deleted file mode 100644
index 2894ca4e..00000000
--- a/test/lib/completions/iwspy.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_env_unmodified "iwspy --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/jar.exp b/test/lib/completions/jar.exp
deleted file mode 100644
index d2cb476b..00000000
--- a/test/lib/completions/jar.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "jar "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/jarsigner.exp b/test/lib/completions/jarsigner.exp
deleted file mode 100644
index 7ea7cb2e..00000000
--- a/test/lib/completions/jarsigner.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "jarsigner "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/java.exp b/test/lib/completions/java.exp
deleted file mode 100644
index 62f6fd9d..00000000
--- a/test/lib/completions/java.exp
+++ /dev/null
@@ -1,53 +0,0 @@
-proc setup {} {
- assert_bash_exec {CLASSPATH=$SRCDIR/fixtures/java/a:$SRCDIR/fixtures/java/bashcomp.jar}
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "java -"
-
-
-sync_after_int
-
-
-assert_complete "b bashcomp.jarred c. toplevel" "java "
-
-
-sync_after_int
-
-
-assert_complete "bashcomp.jarred toplevel" \
- "java -classpath $::srcdir/fixtures/java/bashcomp.jar "
-
-
-sync_after_int
-
-
-assert_complete "bashcomp.jarred d toplevel" \
- "java -cp $::srcdir/fixtures/java/bashcomp.jar:$::srcdir/fixtures/java/a/c "
-
-
-sync_after_int
-
-
-assert_no_complete "java -cp \"\" "
-
-
-sync_after_int
-
-
-assert_complete "a/ bashcomp.jar bashcomp.war" "java -jar $::srcdir/fixtures/java/"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/javac.exp b/test/lib/completions/javac.exp
deleted file mode 100644
index 83b11d7f..00000000
--- a/test/lib/completions/javac.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "javac "
-sync_after_int
-
-assert_complete "a/ bashcomp.jar" "javac -cp $::srcdir/fixtures/java/"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/javadoc.exp b/test/lib/completions/javadoc.exp
deleted file mode 100644
index 79e86138..00000000
--- a/test/lib/completions/javadoc.exp
+++ /dev/null
@@ -1,26 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "javadoc "
-sync_after_int
-
-
-assert_complete {"bar bar.d/" foo.d/} "javadoc -linkoffline $::srcdir/fixtures/shared/default/"
-sync_after_int
-
-
-assert_complete {"bar bar.d/" foo.d/} "javadoc -nodeprecated -linkoffline foo $::srcdir/fixtures/shared/default/"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/javaws.exp b/test/lib/completions/javaws.exp
deleted file mode 100644
index cb29c65a..00000000
--- a/test/lib/completions/javaws.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "javaws "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/jpegoptim.exp b/test/lib/completions/jpegoptim.exp
deleted file mode 100644
index 4b735e80..00000000
--- a/test/lib/completions/jpegoptim.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "jpegoptim "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/jps.exp b/test/lib/completions/jps.exp
deleted file mode 100644
index 62d5d710..00000000
--- a/test/lib/completions/jps.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "jps -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/jshint.exp b/test/lib/completions/jshint.exp
deleted file mode 100644
index 553883e1..00000000
--- a/test/lib/completions/jshint.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "jshint "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/k3b.exp b/test/lib/completions/k3b.exp
deleted file mode 100644
index cde14b86..00000000
--- a/test/lib/completions/k3b.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "k3b "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/kcov.exp b/test/lib/completions/kcov.exp
deleted file mode 100644
index c6c4a06d..00000000
--- a/test/lib/completions/kcov.exp
+++ /dev/null
@@ -1,25 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "kcov "
-sync_after_int
-
-set test "--exclude-patter<TAB> should complete \"--exclude-pattern=\""
-assert_complete "--exclude-pattern=" "kcov --exclude-patter" $test -nospace
-sync_after_int
-
-assert_complete_any "kcov -l 42,"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/kdvi.exp b/test/lib/completions/kdvi.exp
deleted file mode 100644
index fa993f5e..00000000
--- a/test/lib/completions/kdvi.exp
+++ /dev/null
@@ -1,27 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified {/OLDPWD=/d}
-}
-
-
-setup
-
-
-# NOTE: The directory `fixtures/kdvi' contains an additional subdir `foo'
-# (should be visible as completion) and an additional file `.txt'
-# (shouldn't be visible as completion)
-set files {
- foo/
- .dvi .DVI .dvi.bz2 .DVI.bz2 .dvi.gz .DVI.gz .dvi.Z .DVI.Z
-}
-assert_complete_dir $files "kdvi " "$::srcdir/fixtures/kdvi"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/kill.exp b/test/lib/completions/kill.exp
deleted file mode 100644
index 9aeb8412..00000000
--- a/test/lib/completions/kill.exp
+++ /dev/null
@@ -1,30 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_bash_type ps]} {
- assert_complete_any "kill 1"
- sync_after_int
-}
-
-
-assert_complete [get_signals] "kill -s "
-sync_after_int
-
-
-set expected [get_signals -]
-lappend expected "-l" "-s"
-assert_complete [lsort -unique $expected] "kill -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/killall.exp b/test/lib/completions/killall.exp
deleted file mode 100644
index a55ac591..00000000
--- a/test/lib/completions/killall.exp
+++ /dev/null
@@ -1,23 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-# "p": Assume that our process name completion runs ps
-assert_complete_any "killall p"
-sync_after_int
-
-
-assert_complete [get_signals] "killall --signal "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/kldload.exp b/test/lib/completions/kldload.exp
deleted file mode 100644
index a1d87c97..00000000
--- a/test/lib/completions/kldload.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "kldload "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/kldunload.exp b/test/lib/completions/kldunload.exp
deleted file mode 100644
index 476c5104..00000000
--- a/test/lib/completions/kldunload.exp
+++ /dev/null
@@ -1,24 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[catch {eval exec {kldstat | grep "\.ko$"}}] == 0} {
- assert_complete_any "kldunload "
-} else {
- assert_no_complete "kldunload "
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/koji.exp b/test/lib/completions/koji.exp
deleted file mode 100644
index a9673807..00000000
--- a/test/lib/completions/koji.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "koji "
-sync_after_int
-
-
-assert_complete_any "koji -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/kpdf.exp b/test/lib/completions/kpdf.exp
deleted file mode 100644
index 6f0feb68..00000000
--- a/test/lib/completions/kpdf.exp
+++ /dev/null
@@ -1,26 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified {/OLDPWD=/d}
-}
-
-
-setup
-
-
-# NOTE: The directory `fixtures/kpdf' contains an additional subdir `foo'
-# (should be visible as completion) and an additional file `.txt'
-# (shouldn't be visible as completion)
-set files {
- foo/ .eps .ps .EPS .PS .pdf .PDF
-}
-assert_complete_dir $files "kpdf " "$::srcdir/fixtures/kpdf"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/kplayer.exp b/test/lib/completions/kplayer.exp
deleted file mode 100644
index 4fdfa672..00000000
--- a/test/lib/completions/kplayer.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "kplayer "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ktutil.exp b/test/lib/completions/ktutil.exp
deleted file mode 100644
index 709a0850..00000000
--- a/test/lib/completions/ktutil.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "ktutil "
-sync_after_int
-
-assert_complete_any "ktutil -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/l2ping.exp b/test/lib/completions/l2ping.exp
deleted file mode 100644
index de8c58c1..00000000
--- a/test/lib/completions/l2ping.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "l2ping -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/larch.exp b/test/lib/completions/larch.exp
deleted file mode 100644
index cefcbe02..00000000
--- a/test/lib/completions/larch.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "larch library-"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/lastlog.exp b/test/lib/completions/lastlog.exp
deleted file mode 100644
index 74d75553..00000000
--- a/test/lib/completions/lastlog.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "lastlog -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ld.exp b/test/lib/completions/ld.exp
deleted file mode 100644
index ee660fcb..00000000
--- a/test/lib/completions/ld.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "ld "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ldapadd.exp b/test/lib/completions/ldapadd.exp
deleted file mode 100644
index bc066ab6..00000000
--- a/test/lib/completions/ldapadd.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "ldapadd -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ldapcompare.exp b/test/lib/completions/ldapcompare.exp
deleted file mode 100644
index c693f703..00000000
--- a/test/lib/completions/ldapcompare.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "ldapcompare -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ldapdelete.exp b/test/lib/completions/ldapdelete.exp
deleted file mode 100644
index cc20d0e7..00000000
--- a/test/lib/completions/ldapdelete.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "ldapdelete -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ldapmodrdn.exp b/test/lib/completions/ldapmodrdn.exp
deleted file mode 100644
index 3ae6c399..00000000
--- a/test/lib/completions/ldapmodrdn.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "ldapmodrdn -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ldappasswd.exp b/test/lib/completions/ldappasswd.exp
deleted file mode 100644
index 2dd49393..00000000
--- a/test/lib/completions/ldappasswd.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "ldappasswd -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ldapsearch.exp b/test/lib/completions/ldapsearch.exp
deleted file mode 100644
index 92394ecd..00000000
--- a/test/lib/completions/ldapsearch.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "ldapsearch -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ldapvi.exp b/test/lib/completions/ldapvi.exp
deleted file mode 100644
index 54c62772..00000000
--- a/test/lib/completions/ldapvi.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "ldapvi -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ldapwhoami.exp b/test/lib/completions/ldapwhoami.exp
deleted file mode 100644
index 7be41740..00000000
--- a/test/lib/completions/ldapwhoami.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "ldapwhoami -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ldd.exp b/test/lib/completions/ldd.exp
deleted file mode 100644
index 1c3239c7..00000000
--- a/test/lib/completions/ldd.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "ldd "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/less.exp b/test/lib/completions/less.exp
deleted file mode 100644
index 78d6ef14..00000000
--- a/test/lib/completions/less.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "less --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/lftp.exp b/test/lib/completions/lftp.exp
deleted file mode 100644
index bb219650..00000000
--- a/test/lib/completions/lftp.exp
+++ /dev/null
@@ -1,24 +0,0 @@
-proc setup {} {
- assert_bash_exec {HOME=$SRCDIR/fixtures/lftp}
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-set expected [get_hosts]
-# `lftptest' is defined in ./fixtures/lftp/.lftp/bookmarks
-lappend expected lftptest
-assert_complete $expected "lftp "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/lftpget.exp b/test/lib/completions/lftpget.exp
deleted file mode 100644
index 0eadb6e9..00000000
--- a/test/lib/completions/lftpget.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "lftpget -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/lilo.exp b/test/lib/completions/lilo.exp
deleted file mode 100644
index 36ea2c66..00000000
--- a/test/lib/completions/lilo.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "lilo -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/links.exp b/test/lib/completions/links.exp
deleted file mode 100644
index 4124e2f4..00000000
--- a/test/lib/completions/links.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "links "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/lintian-info.exp b/test/lib/completions/lintian-info.exp
deleted file mode 100644
index 5bde97fd..00000000
--- a/test/lib/completions/lintian-info.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "lintian-info "
-sync_after_int
-
-assert_complete_any "lintian-info --"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/lintian.exp b/test/lib/completions/lintian.exp
deleted file mode 100644
index 5b1e695c..00000000
--- a/test/lib/completions/lintian.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "lintian --"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/lisp.exp b/test/lib/completions/lisp.exp
deleted file mode 100644
index 5131b45d..00000000
--- a/test/lib/completions/lisp.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "lisp "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/list_admins.exp b/test/lib/completions/list_admins.exp
deleted file mode 100644
index 3b412136..00000000
--- a/test/lib/completions/list_admins.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "list_admins -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/list_lists.exp b/test/lib/completions/list_lists.exp
deleted file mode 100644
index a62dca25..00000000
--- a/test/lib/completions/list_lists.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "list_lists -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/list_members.exp b/test/lib/completions/list_members.exp
deleted file mode 100644
index 8c74cdfb..00000000
--- a/test/lib/completions/list_members.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "list_members -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/list_owners.exp b/test/lib/completions/list_owners.exp
deleted file mode 100644
index 65e3ba8e..00000000
--- a/test/lib/completions/list_owners.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "list_owners -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ln.exp b/test/lib/completions/ln.exp
deleted file mode 100644
index 61405020..00000000
--- a/test/lib/completions/ln.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "ln "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/look.exp b/test/lib/completions/look.exp
deleted file mode 100644
index af9a71a8..00000000
--- a/test/lib/completions/look.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {look foo | grep ^foo} words {} "unsupported"]} {
- assert_complete $words "look foo"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/lpq.exp b/test/lib/completions/lpq.exp
deleted file mode 100644
index 41fdb216..00000000
--- a/test/lib/completions/lpq.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "lpq "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/lpr.exp b/test/lib/completions/lpr.exp
deleted file mode 100644
index 1ec46844..00000000
--- a/test/lib/completions/lpr.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "lpr "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/lrzip.exp b/test/lib/completions/lrzip.exp
deleted file mode 100644
index 2c4218ec..00000000
--- a/test/lib/completions/lrzip.exp
+++ /dev/null
@@ -1,24 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "lrzip "
-
-
-sync_after_int
-
-
-assert_complete_homedir "lrzip"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ls.exp b/test/lib/completions/ls.exp
deleted file mode 100644
index 24fc46f8..00000000
--- a/test/lib/completions/ls.exp
+++ /dev/null
@@ -1,36 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {ls --help} "" "" "unsupported"]} {
- assert_complete_any "ls --"
-}
-sync_after_int
-
-
-assert_complete_homedir "ls"
-sync_after_int
-
-
-set test "~part should complete to ~full<space> if home dir does not exist"
-# Create list of users, having non-existing home dir
-assert_bash_exec {for u in $(compgen -u); do \
- eval test -d ~$u || echo $u; unset u; done} {} /@ users
-if {![find_unique_completion_pair $users part full]} {
- untested "Not running, no suitable test user found: $test"
-} else {
- assert_complete "~$full " "ls ~$part" $test -nospace
-}
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/lsof.exp b/test/lib/completions/lsof.exp
deleted file mode 100644
index 551bde2a..00000000
--- a/test/lib/completions/lsof.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "lsof "
-sync_after_int
-
-assert_complete_any "lsof -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/lspci.exp b/test/lib/completions/lspci.exp
deleted file mode 100644
index ea9e859f..00000000
--- a/test/lib/completions/lspci.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "lspci -"
-sync_after_int
-
-assert_complete_any "lspci -A "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/lsscsi.exp b/test/lib/completions/lsscsi.exp
deleted file mode 100644
index 66603142..00000000
--- a/test/lib/completions/lsscsi.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_no_complete "lsscsi "
-sync_after_int
-
-assert_complete_any "lsscsi -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/lsusb.exp b/test/lib/completions/lsusb.exp
deleted file mode 100644
index dddb6352..00000000
--- a/test/lib/completions/lsusb.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "lsusb -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/lua.exp b/test/lib/completions/lua.exp
deleted file mode 100644
index 864b1bfc..00000000
--- a/test/lib/completions/lua.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "lua "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/luac.exp b/test/lib/completions/luac.exp
deleted file mode 100644
index d7cfb23b..00000000
--- a/test/lib/completions/luac.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "luac "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/luseradd.exp b/test/lib/completions/luseradd.exp
deleted file mode 100644
index 744314a7..00000000
--- a/test/lib/completions/luseradd.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "luseradd -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/luserdel.exp b/test/lib/completions/luserdel.exp
deleted file mode 100644
index 70d11661..00000000
--- a/test/lib/completions/luserdel.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "luserdel "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/lusermod.exp b/test/lib/completions/lusermod.exp
deleted file mode 100644
index f96293e6..00000000
--- a/test/lib/completions/lusermod.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "lusermod "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/lvchange.exp b/test/lib/completions/lvchange.exp
deleted file mode 100644
index 2240e5eb..00000000
--- a/test/lib/completions/lvchange.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {lvchange --help} "" "" "untested"]} { # may fail as non-root
- assert_complete_any "lvchange --"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/lvcreate.exp b/test/lib/completions/lvcreate.exp
deleted file mode 100644
index 678ac1be..00000000
--- a/test/lib/completions/lvcreate.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {lvcreate --help} "" "" "untested"]} { # may fail as non-root
- assert_complete_any "lvcreate --"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/lvdisplay.exp b/test/lib/completions/lvdisplay.exp
deleted file mode 100644
index 5e8c3210..00000000
--- a/test/lib/completions/lvdisplay.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {lvdisplay --help} "" "" "untested"]} { # may fail as non-root
- assert_complete_any "lvdisplay --"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/lvextend.exp b/test/lib/completions/lvextend.exp
deleted file mode 100644
index 7c0e329e..00000000
--- a/test/lib/completions/lvextend.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {lvextend --help} "" "" "untested"]} { # may fail as non-root
- assert_complete_any "lvextend --"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/lvm.exp b/test/lib/completions/lvm.exp
deleted file mode 100644
index 91fe0dcd..00000000
--- a/test/lib/completions/lvm.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "lvm pv"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/lvmdiskscan.exp b/test/lib/completions/lvmdiskscan.exp
deleted file mode 100644
index 30c73c5c..00000000
--- a/test/lib/completions/lvmdiskscan.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {lvmdiskscan --help} "" "" "untested"]} { # may fail as non-root
- assert_complete_any "lvmdiskscan --"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/lvreduce.exp b/test/lib/completions/lvreduce.exp
deleted file mode 100644
index b9904fef..00000000
--- a/test/lib/completions/lvreduce.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {lvreduce --help} "" "" "untested"]} { # may fail as non-root
- assert_complete_any "lvreduce --"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/lvremove.exp b/test/lib/completions/lvremove.exp
deleted file mode 100644
index 0f41d8dc..00000000
--- a/test/lib/completions/lvremove.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {lvremove --help} "" "" "untested"]} { # may fail as non-root
- assert_complete_any "lvremove --"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/lvrename.exp b/test/lib/completions/lvrename.exp
deleted file mode 100644
index 77d6c5e0..00000000
--- a/test/lib/completions/lvrename.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {lvrename --help} "" "" "untested"]} { # may fail as non-root
- assert_complete_any "lvrename --"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/lvresize.exp b/test/lib/completions/lvresize.exp
deleted file mode 100644
index a0e8f99e..00000000
--- a/test/lib/completions/lvresize.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {lvresize --help} "" "" "untested"]} { # may fail as non-root
- assert_complete_any "lvresize --"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/lvs.exp b/test/lib/completions/lvs.exp
deleted file mode 100644
index c46a8153..00000000
--- a/test/lib/completions/lvs.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {lvs --help} "" "" "untested"]} { # may fail as non-root
- assert_complete_any "lvs --"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/lvscan.exp b/test/lib/completions/lvscan.exp
deleted file mode 100644
index 60effb5d..00000000
--- a/test/lib/completions/lvscan.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {lvscan --help} "" "" "untested"]} { # may fail as non-root
- assert_complete_any "lvscan --"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/lz4.exp b/test/lib/completions/lz4.exp
deleted file mode 100644
index dc41f919..00000000
--- a/test/lib/completions/lz4.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "lz4 "
-sync_after_int
-
-assert_complete_homedir "lz4"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/lzip.exp b/test/lib/completions/lzip.exp
deleted file mode 100644
index fd92af62..00000000
--- a/test/lib/completions/lzip.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "lzip "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/lzma.exp b/test/lib/completions/lzma.exp
deleted file mode 100644
index 16b45d0b..00000000
--- a/test/lib/completions/lzma.exp
+++ /dev/null
@@ -1,30 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "lzma "
-
-
-sync_after_int
-
-
-assert_complete "a/ bashcomp.lzma bashcomp.tlz" "lzma -d $::srcdir/fixtures/xz/"
-
-
-sync_after_int
-
-
-assert_complete_homedir "lzma"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/lzop.exp b/test/lib/completions/lzop.exp
deleted file mode 100644
index 3084fd3e..00000000
--- a/test/lib/completions/lzop.exp
+++ /dev/null
@@ -1,24 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "lzop "
-
-
-sync_after_int
-
-
-assert_complete_homedir "lzop"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/m4.exp b/test/lib/completions/m4.exp
deleted file mode 100644
index 334132db..00000000
--- a/test/lib/completions/m4.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {m4 --help} "" "" "unsupported"]} {
- assert_complete_any "m4 --"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/macof.exp b/test/lib/completions/macof.exp
deleted file mode 100644
index 873ae1da..00000000
--- a/test/lib/completions/macof.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "macof -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/mailmanctl.exp b/test/lib/completions/mailmanctl.exp
deleted file mode 100644
index 2924806a..00000000
--- a/test/lib/completions/mailmanctl.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "mailmanctl "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/mailsnarf.exp b/test/lib/completions/mailsnarf.exp
deleted file mode 100644
index 9fb937f3..00000000
--- a/test/lib/completions/mailsnarf.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "mailsnarf -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/make.exp b/test/lib/completions/make.exp
deleted file mode 100644
index 0c188dba..00000000
--- a/test/lib/completions/make.exp
+++ /dev/null
@@ -1,77 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified {/OLDPWD=/d}
-}
-
-
-setup
-
-
-set test "-f Ma<TAB> should complete \"Makefile\""
-set dir $::srcdir/fixtures/make
-assert_complete_dir "Makefile" "make -f Ma" $dir $test
-
-
-sync_after_int
-
-set test "\"make <TAB>\" should complete targets"
-set dir $::srcdir/fixtures/make
-set targets "all sample install clean extra_makefile"
-file delete $dir/extra_makefile
-assert_complete_dir $targets "make " $dir $test
-
-
-sync_after_int
-
-
-set test "\"make .<TAB>\" should complete hidden targets"
-set dir $::srcdir/fixtures/make
-set targets ".test_passes .cache/"
-assert_complete_dir $targets "make ." $dir $test
-
-
-sync_after_int
-
-
-set test "\"make .cache/<TAB>\" should complete targets"
-set dir $::srcdir/fixtures/make
-set targets "1 2"
-assert_complete_dir $targets "make .cache/" $dir $test
-
-
-sync_after_int
-
-
-# FIXME: for some reason this fails in centos6, even though the behavior
-# appears to be correct; skip in CI for now.
-set test "\"make .cache/.<TAB>\" should complete hidden targets"
-if {[info exists ::env(CI)] && [info exists ::env(DIST)] && $::env(DIST) == "centos6"} {
- xfail $test
-} else {
- set dir $::srcdir/fixtures/make
- set targets ".1 .2"
- assert_complete_dir $targets "make .cache/." $dir $test \
- -expect-cmd-minus "."
- sync_after_int
-}
-
-
-set test "\"make <TAB>\" should not show anything in directory without makefile"
-set dir $::srcdir/fixtures/shared/empty_dir
-assert_complete_dir "" "make " $dir $test
-
-
-sync_after_int
-
-
-assert_complete_any "make -j "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/makepkg.exp b/test/lib/completions/makepkg.exp
deleted file mode 100644
index 56e06339..00000000
--- a/test/lib/completions/makepkg.exp
+++ /dev/null
@@ -1,28 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "makepkg -"
-
-
-sync_after_int
-
-
-set test "--<TAB> should complete all long options"
-set options [list --linkadd --prepend --chown]
-assert_complete $options "makepkg --" $test
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/man.exp b/test/lib/completions/man.exp
deleted file mode 100644
index d601c434..00000000
--- a/test/lib/completions/man.exp
+++ /dev/null
@@ -1,76 +0,0 @@
-proc setup {} {
- assert_bash_exec "export MANPATH=$::srcdirabs/fixtures/man:$::srcdirabs/tmp/man"
- save_env
-
- if {! [is_cygwin]} { # Colon not allowed in filenames
- assert_bash_exec {(cd $TESTDIR/tmp && mkdir -p man/man3 && touch man/man3/Bash::Completion.3pm.gz || true)}
- }
-}
-
-
-proc teardown {} {
- assert_env_unmodified {
- /OLDPWD/d
- /OLDMANPATH/d
- }
-
- if {! [is_cygwin]} {
- assert_bash_exec {(cd $TESTDIR/tmp && rm -r man || true)}
- }
-}
-
-
-setup
-
-
-# Something we assume a system installed man page present for
-set assumed_present "man"
-
-assert_complete "bash-completion-testcase" "man bash-completion-testcas"
-sync_after_int
-
-assert_complete_dir oo.1 "man man1/f" $::srcdir/fixtures/man
-sync_after_int
-
-if {! [is_cygwin]} {
- assert_complete "Bash::Completion" "man Bash::C"
- sync_after_int
-}
-
-assert_complete_dir "man/quux.8" "man man/" $::srcdir/fixtures/man
-sync_after_int
-
-set desc "man $assumed_present with MANPATH having no leading/trailing colon"
-assert_no_complete "man $assumed_present" "$desc should not complete"
-sync_after_int
-
-# Trailing colon in MANPATH: append system default search path
-assert_bash_exec "OLDMANPATH=\$MANPATH; MANPATH=\$MANPATH:"
-set desc "with trailing colon in MANPATH"
-
-set cmd "man $assumed_present"
-assert_complete_any "$cmd" "$cmd $desc should complete"
-sync_after_int
-
-set cmd "man bash-completion-testcas"
-assert_complete "bash-completion-testcase" "$cmd" "$cmd $desc should complete"
-sync_after_int
-
-assert_bash_exec "MANPATH=\$OLDMANPATH"
-
-# Leading colon in MANPATH: prepend system default search path
-assert_bash_exec "OLDMANPATH=\$MANPATH; MANPATH=:\$MANPATH"
-set desc "with leading colon in MANPATH"
-
-set cmd "man $assumed_present"
-assert_complete_any "$cmd" "$cmd $desc should complete"
-sync_after_int
-
-set cmd "man bash-completion-testcas"
-assert_complete "bash-completion-testcase" "$cmd" "$cmd $desc should complete"
-sync_after_int
-
-assert_bash_exec "MANPATH=\$OLDMANPATH"
-
-
-teardown
diff --git a/test/lib/completions/mc.exp b/test/lib/completions/mc.exp
deleted file mode 100644
index eb97246d..00000000
--- a/test/lib/completions/mc.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "mc -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/mcrypt.exp b/test/lib/completions/mcrypt.exp
deleted file mode 100644
index e194446b..00000000
--- a/test/lib/completions/mcrypt.exp
+++ /dev/null
@@ -1,24 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "mcrypt "
-sync_after_int
-
-assert_complete_any "mcrypt -a "
-sync_after_int
-
-assert_complete_any "mcrypt -m "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/md5sum.exp b/test/lib/completions/md5sum.exp
deleted file mode 100644
index 54ed6416..00000000
--- a/test/lib/completions/md5sum.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "md5sum "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/mdadm.exp b/test/lib/completions/mdadm.exp
deleted file mode 100644
index 6559aa20..00000000
--- a/test/lib/completions/mdadm.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "mdadm "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/mdecrypt.exp b/test/lib/completions/mdecrypt.exp
deleted file mode 100644
index 8d9d9f59..00000000
--- a/test/lib/completions/mdecrypt.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "mdecrypt "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/mdtool.exp b/test/lib/completions/mdtool.exp
deleted file mode 100644
index 076cb17a..00000000
--- a/test/lib/completions/mdtool.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "mdtool "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/medusa.exp b/test/lib/completions/medusa.exp
deleted file mode 100644
index 6ad2fdc3..00000000
--- a/test/lib/completions/medusa.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "medusa -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/mencoder.exp b/test/lib/completions/mencoder.exp
deleted file mode 100644
index cb0ba7c5..00000000
--- a/test/lib/completions/mencoder.exp
+++ /dev/null
@@ -1,25 +0,0 @@
-proc setup {} {
- save_env
- assert_bash_exec {OLDHOME=$HOME ; HOME=$SRCDIR/fixtures/mplayer}
-}
-
-
-proc teardown {} {
- assert_bash_exec {HOME=$OLDHOME}
- assert_env_unmodified {
- /OLDHOME=/d
- }
-}
-
-
-setup
-
-
-assert_complete_any "mencoder "
-sync_after_int
-
-assert_complete_any "mencoder -v"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/mii-diag.exp b/test/lib/completions/mii-diag.exp
deleted file mode 100644
index 952ff632..00000000
--- a/test/lib/completions/mii-diag.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "mii-diag "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/mii-tool.exp b/test/lib/completions/mii-tool.exp
deleted file mode 100644
index 03827edd..00000000
--- a/test/lib/completions/mii-tool.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "mii-tool "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/minicom.exp b/test/lib/completions/minicom.exp
deleted file mode 100644
index dfc96c01..00000000
--- a/test/lib/completions/minicom.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "minicom -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/mkdir.exp b/test/lib/completions/mkdir.exp
deleted file mode 100644
index 049212f0..00000000
--- a/test/lib/completions/mkdir.exp
+++ /dev/null
@@ -1,33 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "mkdir "
-
-
-sync_after_int
-
-
-assert_complete {bar "bar bar.d/" foo foo.d/} "mkdir $::srcdir/fixtures/shared/default/"
-
-
-sync_after_int
-
-
-set test "mkdir should complete files with nospace"
-assert_complete {foo} "mkdir $::srcdir/fixtures/shared/default/foo.d/" $test -nospace
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/mkfifo.exp b/test/lib/completions/mkfifo.exp
deleted file mode 100644
index 59412a2e..00000000
--- a/test/lib/completions/mkfifo.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "mkfifo "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/mkinitrd.exp b/test/lib/completions/mkinitrd.exp
deleted file mode 100644
index 007f278d..00000000
--- a/test/lib/completions/mkinitrd.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "mkinitrd "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/mkisofs.exp b/test/lib/completions/mkisofs.exp
deleted file mode 100644
index 98780b1e..00000000
--- a/test/lib/completions/mkisofs.exp
+++ /dev/null
@@ -1,48 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "mkisofs "
-
-
-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" }
-}
-
-
-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" }
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/mknod.exp b/test/lib/completions/mknod.exp
deleted file mode 100644
index 145f4531..00000000
--- a/test/lib/completions/mknod.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "mknod "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/mktemp.exp b/test/lib/completions/mktemp.exp
deleted file mode 100644
index 8b0a3be2..00000000
--- a/test/lib/completions/mktemp.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "mktemp -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/mmsitepass.exp b/test/lib/completions/mmsitepass.exp
deleted file mode 100644
index 70d2a126..00000000
--- a/test/lib/completions/mmsitepass.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "mmsitepass -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/mock.exp b/test/lib/completions/mock.exp
deleted file mode 100644
index 8190264a..00000000
--- a/test/lib/completions/mock.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "mock "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/modinfo.exp b/test/lib/completions/modinfo.exp
deleted file mode 100644
index 90e9702a..00000000
--- a/test/lib/completions/modinfo.exp
+++ /dev/null
@@ -1,38 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-set uname [exec bash -c "uname -r"]
-if {[assert_exec "ls /lib/modules/$uname" "" "" "unsupported"]} {
- set test "in<TAB> should complete modulename"
- assert_complete_any "modinfo in" $test
-}
-
-
-sync_after_int
-
-
-set test "should not complete anything for non-existent kernel"
-assert_no_complete "modinfo -k you-dont-have-such-kernel in" $test
-
-
-sync_after_int
-
-
-set test "should complete filepaths"
-assert_complete "/tmp/" "modinfo /tm" $test -nospace
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/modprobe.exp b/test/lib/completions/modprobe.exp
deleted file mode 100644
index b0a530ef..00000000
--- a/test/lib/completions/modprobe.exp
+++ /dev/null
@@ -1,52 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-set test "--al<TAB> should complete \"--all\""
-assert_complete "--all" "modprobe --al" $test
-
-
-sync_after_int
-
-
-set uname [exec bash -c "uname -r"]
-if {[assert_exec "ls /lib/modules/$uname" "" "" "unsupported"]} {
- set test "in<TAB> should complete modulename"
- assert_complete_any "modprobe in" $test
-}
-
-
-sync_after_int
-
-
-set test "should not complete anything for non-existent kernel"
-assert_no_complete "modprobe -S you-dont-have-such-kernel in" $test
-
-
-sync_after_int
-
-
-set test "should not complete anything for non-existent module"
-assert_no_complete "modprobe you-dont-have-such-module " $test
-
-
-sync_after_int
-
-
-set test "should complete filepaths"
-assert_complete "/tmp/" "modprobe /tm" $test -nospace
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/module.exp b/test/lib/completions/module.exp
deleted file mode 100644
index 5e36a6da..00000000
--- a/test/lib/completions/module.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "module "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/mogrify.exp b/test/lib/completions/mogrify.exp
deleted file mode 100644
index 84ceeff5..00000000
--- a/test/lib/completions/mogrify.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "mogrify "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/monodevelop.exp b/test/lib/completions/monodevelop.exp
deleted file mode 100644
index 0bfe788e..00000000
--- a/test/lib/completions/monodevelop.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "monodevelop "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/montage.exp b/test/lib/completions/montage.exp
deleted file mode 100644
index 4d85e1a4..00000000
--- a/test/lib/completions/montage.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "montage "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/mount.exp b/test/lib/completions/mount.exp
deleted file mode 100644
index fea99b85..00000000
--- a/test/lib/completions/mount.exp
+++ /dev/null
@@ -1,46 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified {/OLDPWD/d}
-}
-
-
-setup
-
-
-assert_complete_any "mount "
-
-
-sync_after_int
-
-
-assert_complete_any "mount -t "
-
-
-sync_after_int
-
-
-set test "mount /dev/sda1 def should complete directory name"
-assert_complete_dir "default/" "mount /dev/sda1 def" $::srcdir/fixtures/shared $test -nospace
-
-
-sync_after_int
-
-
-set test "Check completing nfs mounts"
-set expected [list /test/path /test/path2 /second/path]
-set cmd "mount mocksrv:/"
-assert_bash_exec {OLDPATH="$PATH"; PATH="$SRCDIRABS/fixtures/mount/bin:$PATH";}
-# This needs an explicit cword param or will output "unresolved".
-assert_complete $expected $cmd $test -expect-cmd-minus /
-sync_after_int
-assert_bash_exec {PATH="$OLDPATH"; unset -v OLDPATH}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/mplayer.exp b/test/lib/completions/mplayer.exp
deleted file mode 100644
index 8c9de756..00000000
--- a/test/lib/completions/mplayer.exp
+++ /dev/null
@@ -1,25 +0,0 @@
-proc setup {} {
- save_env
- assert_bash_exec {OLDHOME=$HOME ; HOME=$SRCDIR/fixtures/mplayer}
-}
-
-
-proc teardown {} {
- assert_bash_exec {HOME=$OLDHOME}
- assert_env_unmodified {
- /OLDHOME=/d
- }
-}
-
-
-setup
-
-
-assert_complete_any "mplayer "
-sync_after_int
-
-assert_complete_any "mplayer -h"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/mr.exp b/test/lib/completions/mr.exp
deleted file mode 100644
index d7d41bb6..00000000
--- a/test/lib/completions/mr.exp
+++ /dev/null
@@ -1,46 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-setup
-
-assert_complete_any "mr "
-sync_after_int
-
-# Some versions require man to be around for useful output.
-if {[assert_exec {man -h} "" "" "unsupported"]} {
-
- assert_complete_any "mr --"
- sync_after_int
-
- assert_complete {"foo"} "mr -c $::srcdir/fixtures/shared/default/foo.d/"
- sync_after_int
-
- assert_complete {"bar bar.d/" "foo.d/"} "mr -d $::srcdir/fixtures/shared/default/"
- sync_after_int
-
- assert_complete {"bar" "bar bar.d/" "foo" "foo.d/"} "mr bootstrap $::srcdir/fixtures/shared/default/"
- sync_after_int
-
- # Disabled for now; "clean" doesn't exist before mr 1.20141023
- #assert_complete "-f" "mr clean -"
- #sync_after_int
-
- assert_complete "-m" "mr commit -"
- sync_after_int
-
- assert_no_complete "mr status "
- sync_after_int
-
- # Disabled temporarily: suggesting all commands produces too much output for
- # test suite.
- #assert_complete_any "mr run "
- #sync_after_int
-}
-
-teardown
diff --git a/test/lib/completions/msgsnarf.exp b/test/lib/completions/msgsnarf.exp
deleted file mode 100644
index c542e33e..00000000
--- a/test/lib/completions/msgsnarf.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "msgsnarf -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/msynctool.exp b/test/lib/completions/msynctool.exp
deleted file mode 100644
index cb238d9f..00000000
--- a/test/lib/completions/msynctool.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "msynctool "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/mtx.exp b/test/lib/completions/mtx.exp
deleted file mode 100644
index 1de15269..00000000
--- a/test/lib/completions/mtx.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "mtx "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/munin-node-configure.exp b/test/lib/completions/munin-node-configure.exp
deleted file mode 100644
index 2e17f3eb..00000000
--- a/test/lib/completions/munin-node-configure.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "munin-node-configure --libdir "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/munin-run.exp b/test/lib/completions/munin-run.exp
deleted file mode 100644
index 25a639bc..00000000
--- a/test/lib/completions/munin-run.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "munin-run -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/munindoc.exp b/test/lib/completions/munindoc.exp
deleted file mode 100644
index 62a4307c..00000000
--- a/test/lib/completions/munindoc.exp
+++ /dev/null
@@ -1,19 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-# Assume at least munin* available
-assert_complete_any "munindoc m"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/mussh.exp b/test/lib/completions/mussh.exp
deleted file mode 100644
index 24c5c1f1..00000000
--- a/test/lib/completions/mussh.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "mussh -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/mutt.exp b/test/lib/completions/mutt.exp
deleted file mode 100644
index 1f4425e2..00000000
--- a/test/lib/completions/mutt.exp
+++ /dev/null
@@ -1,43 +0,0 @@
-proc setup {} {
- save_env
- assert_bash_exec {OLDHOME=$HOME ; HOME=$SRCDIRABS/fixtures/mutt}
-}
-
-
-proc teardown {} {
- assert_bash_exec {HOME=$OLDHOME}
- assert_env_unmodified {
- /OLDPWD=/d
- /OLDHOME=/d
- }
-}
-
-
-setup
-
-
-assert_complete_any "mutt -"
-
-
-sync_after_int
-
-
-set test "mutt should complete mailboxes"
-set expected {foo/ bar/ muttrc}
-assert_complete_dir $expected "mutt -F muttrc -f =" $::srcdir/fixtures/mutt $test
-
-
-set test "mutt should complete aliases"
-set expected {a1 a2}
-assert_complete_dir $expected "mutt -F muttrc -A " $::srcdir/fixtures/mutt $test
-
-
-sync_after_int
-
-
-set expected "$::srcdirabs/fixtures/mutt/muttrc $::srcdirabs/fixtures/mutt/bar/muttrc_b $::srcdirabs/fixtures/mutt/foo/muttrc_f"
-assert_bash_list $expected { _muttconffiles "$HOME/muttrc" "$HOME/muttrc" } "find muttrcs recursively"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/muttng.exp b/test/lib/completions/muttng.exp
deleted file mode 100644
index 32239128..00000000
--- a/test/lib/completions/muttng.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "muttng -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/mv.exp b/test/lib/completions/mv.exp
deleted file mode 100644
index d65c4868..00000000
--- a/test/lib/completions/mv.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "mv "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/mysql.exp b/test/lib/completions/mysql.exp
deleted file mode 100644
index b7a50b81..00000000
--- a/test/lib/completions/mysql.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "mysql --"
-sync_after_int
-
-
-assert_complete_any "mysql --default-character-set="
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/mysqladmin.exp b/test/lib/completions/mysqladmin.exp
deleted file mode 100644
index ae9b8ce8..00000000
--- a/test/lib/completions/mysqladmin.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "mysqladmin -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/nc.exp b/test/lib/completions/nc.exp
deleted file mode 100644
index 84e61896..00000000
--- a/test/lib/completions/nc.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "nc -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ncftp.exp b/test/lib/completions/ncftp.exp
deleted file mode 100644
index d6683b86..00000000
--- a/test/lib/completions/ncftp.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "ncftp "
-sync_after_int
-
-
-assert_complete_any "ncftp -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/nethogs.exp b/test/lib/completions/nethogs.exp
deleted file mode 100644
index d6234070..00000000
--- a/test/lib/completions/nethogs.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "nethogs "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/netstat.exp b/test/lib/completions/netstat.exp
deleted file mode 100644
index e4ef676c..00000000
--- a/test/lib/completions/netstat.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "netstat "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/newgrp.exp b/test/lib/completions/newgrp.exp
deleted file mode 100644
index a5cddb8c..00000000
--- a/test/lib/completions/newgrp.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "newgrp "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/newlist.exp b/test/lib/completions/newlist.exp
deleted file mode 100644
index dfabdc50..00000000
--- a/test/lib/completions/newlist.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "newlist -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/newusers.exp b/test/lib/completions/newusers.exp
deleted file mode 100644
index a1928120..00000000
--- a/test/lib/completions/newusers.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "newusers "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ngrep.exp b/test/lib/completions/ngrep.exp
deleted file mode 100644
index a49543bb..00000000
--- a/test/lib/completions/ngrep.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "ngrep -"
-sync_after_int
-
-assert_complete_any "ngrep -d "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/nl.exp b/test/lib/completions/nl.exp
deleted file mode 100644
index b7255ac2..00000000
--- a/test/lib/completions/nl.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "nl "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/nm.exp b/test/lib/completions/nm.exp
deleted file mode 100644
index 9ce73d45..00000000
--- a/test/lib/completions/nm.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "nm "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/nmap.exp b/test/lib/completions/nmap.exp
deleted file mode 100644
index 02aab991..00000000
--- a/test/lib/completions/nmap.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "nmap --v"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/nmcli.exp b/test/lib/completions/nmcli.exp
deleted file mode 100644
index b891f45e..00000000
--- a/test/lib/completions/nmcli.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "nmcli "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/nproc.exp b/test/lib/completions/nproc.exp
deleted file mode 100644
index d6df0472..00000000
--- a/test/lib/completions/nproc.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_no_complete "nproc "
-sync_after_int
-
-assert_complete_any "nproc -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/nslookup.exp b/test/lib/completions/nslookup.exp
deleted file mode 100644
index 20b84451..00000000
--- a/test/lib/completions/nslookup.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "nslookup -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ntpdate.exp b/test/lib/completions/ntpdate.exp
deleted file mode 100644
index 7a7dd716..00000000
--- a/test/lib/completions/ntpdate.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "ntpdate -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/objcopy.exp b/test/lib/completions/objcopy.exp
deleted file mode 100644
index 29be7e62..00000000
--- a/test/lib/completions/objcopy.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "objcopy "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/objdump.exp b/test/lib/completions/objdump.exp
deleted file mode 100644
index c1f62e35..00000000
--- a/test/lib/completions/objdump.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "objdump "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/od.exp b/test/lib/completions/od.exp
deleted file mode 100644
index e2712d12..00000000
--- a/test/lib/completions/od.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "od "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/oggdec.exp b/test/lib/completions/oggdec.exp
deleted file mode 100644
index 18b0f949..00000000
--- a/test/lib/completions/oggdec.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "oggdec "
-sync_after_int
-
-assert_complete_any "oggdec --"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/openssl.exp b/test/lib/completions/openssl.exp
deleted file mode 100644
index 3adbbae7..00000000
--- a/test/lib/completions/openssl.exp
+++ /dev/null
@@ -1,35 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-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" }
-}
-
-
-sync_after_int
-
-
-assert_complete_any "openssl pkey -cipher "
-sync_after_int
-
-assert_complete_any "openssl dgst -s"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/opera.exp b/test/lib/completions/opera.exp
deleted file mode 100644
index 9b666403..00000000
--- a/test/lib/completions/opera.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "opera "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/optipng.exp b/test/lib/completions/optipng.exp
deleted file mode 100644
index 0a079190..00000000
--- a/test/lib/completions/optipng.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "optipng "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/p4.exp b/test/lib/completions/p4.exp
deleted file mode 100644
index 20d8fb6e..00000000
--- a/test/lib/completions/p4.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "p4 "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pack200.exp b/test/lib/completions/pack200.exp
deleted file mode 100644
index 537bf327..00000000
--- a/test/lib/completions/pack200.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "pack200 "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/passwd.exp b/test/lib/completions/passwd.exp
deleted file mode 100644
index df2945b8..00000000
--- a/test/lib/completions/passwd.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "passwd "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/paste.exp b/test/lib/completions/paste.exp
deleted file mode 100644
index 224d9dd9..00000000
--- a/test/lib/completions/paste.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "paste "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/patch.exp b/test/lib/completions/patch.exp
deleted file mode 100644
index 07e88f15..00000000
--- a/test/lib/completions/patch.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "patch "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pdftotext.exp b/test/lib/completions/pdftotext.exp
deleted file mode 100644
index 4c5cfca5..00000000
--- a/test/lib/completions/pdftotext.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "pdftotext "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/perl.exp b/test/lib/completions/perl.exp
deleted file mode 100644
index 3a92a6b9..00000000
--- a/test/lib/completions/perl.exp
+++ /dev/null
@@ -1,131 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified {/PERL5LIB=/d}
-}
-
-
-setup
-
-
-assert_complete_any "perl "
-
-
-sync_after_int
-
-
-set test "Second argument should file complete"
-set cmd "perl foo $::srcdir/fixtures/shared/default/f"
-send "$cmd\t"
-expect {
- -re "^$cmd\r\nfoo +foo.d/ *\r\n/@${cmd}oo$" { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- -re eof { unresolved "eof" }
-}
-
-
-sync_after_int
-
-
-set test "-I without space should complete directories"
-set cmd "perl -I$::srcdir/fixtures/shared/default/"
-send "$cmd\t"
-expect {
- -re "^$cmd\r\nbar bar.d/ +foo.d/ *\r\n/@$cmd$" { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- -re eof { unresolved "eof" }
-}
-
-
-sync_after_int
-
-
-set test "-I with space should complete directories"
-set cmd "perl -I $::srcdir/fixtures/shared/default/"
-send "$cmd\t"
-expect {
- -re "^$cmd\r\nbar bar.d/ +foo.d/ *\r\n/@$cmd$" { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- -re eof { unresolved "eof" }
-}
-
-
-sync_after_int
-
-
-set test "-x without space should complete directories"
-set cmd "perl -x$::srcdir/fixtures/shared/default/b"
-send "$cmd\t"
-expect {
- -re "^${cmd}ar\\\\ bar.d/ *$" { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- -re eof { unresolved "eof" }
-}
-
-
-sync_after_int
-
-
-set test "-x with space should complete directories"
-set cmd "perl -x $::srcdir/fixtures/shared/default/b"
-send "$cmd\t"
-expect {
- -re "^${cmd}ar\\\\ bar.d/ *$" { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- -re eof { unresolved "eof" }
-}
-
-
-sync_after_int
-
-
-set test "- should complete options"
-set options {
- -0 -a -c -C -d -D -e -F -h -i -I -l -m -M -n -p -P -s -S -T -u -U -v -V -w -W -x -X
-}
-assert_complete $options "perl -" $test
-
-
-sync_after_int
-
-assert_no_complete "perl -e "
-sync_after_int
-
-assert_complete_any "perl -V:install"
-sync_after_int
-
-assert_complete_any "perl -V::install"
-sync_after_int
-
-# Assuming that File::Spec and friends are always installed...
-
-assert_complete_any "perl -MFile"
-sync_after_int
-
-assert_complete_any "perl -MFile::Sp"
-sync_after_int
-
-assert_complete_any "perl -MFile::Spec::Func"
-sync_after_int
-
-assert_complete_any "perl -M-File"
-sync_after_int
-
-assert_complete_any "perl -m-File::"
-sync_after_int
-
-# Make sure at least our mock Devel::* module is around
-assert_bash_exec {OLDPERL5LIB=$PERL5LIB; export PERL5LIB=$TESTDIR/fixtures/perl}
-
-assert_complete_any "perl -d:"
-sync_after_int
-
-assert_complete_any "perl -dt:"
-sync_after_int
-
-assert_bash_exec {export PERL5LIB=$OLDPERL5LIB; unset -v OLDPERL5LIB}
-
-teardown
diff --git a/test/lib/completions/perldoc.exp b/test/lib/completions/perldoc.exp
deleted file mode 100644
index 3197bf5c..00000000
--- a/test/lib/completions/perldoc.exp
+++ /dev/null
@@ -1,39 +0,0 @@
-proc setup {} {
- assert_bash_exec {export PERL5LIB=$SRCDIR/fixtures/perldoc}
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-set test "perldoc should complete word containing colons"
-set cmd "perldoc File::"
-send "$cmd\t"
-expect {
- # Assuming the module `File::Path' is always installed
- -re "\\sPath\\s" { pass "$test" }
- # Assuming there's no perl module named `fixtures', but only our directory
- # `test/fixtures' which is presented falsely.
- -re "\\sfixtures/\\s" { fail "$test" }
- -re "perldoc File::File::" { fail "$test" }
- -re /@ { unresolved "$test" }
- default { unresolved "$test" }
-}
-sync_after_int
-
-
-assert_complete_any "perldoc -"
-sync_after_int
-
-
-assert_complete "BashCompletionModule BashCompletionDoc" "perldoc BashCompletion"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/perltidy.exp b/test/lib/completions/perltidy.exp
deleted file mode 100644
index 09fa2b14..00000000
--- a/test/lib/completions/perltidy.exp
+++ /dev/null
@@ -1,27 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "perltidy "
-sync_after_int
-
-assert_complete_any "perltidy -h"
-sync_after_int
-
-assert_complete_any "perltidy -ole="
-sync_after_int
-
-assert_no_complete "perltidy -doesntexist="
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pgrep.exp b/test/lib/completions/pgrep.exp
deleted file mode 100644
index c6276f71..00000000
--- a/test/lib/completions/pgrep.exp
+++ /dev/null
@@ -1,19 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-# "p": Assume that our process name completion runs ps
-assert_complete_any "pgrep p"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/phing.exp b/test/lib/completions/phing.exp
deleted file mode 100644
index f064ea4a..00000000
--- a/test/lib/completions/phing.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "phing -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pidof.exp b/test/lib/completions/pidof.exp
deleted file mode 100644
index d8ab9e8c..00000000
--- a/test/lib/completions/pidof.exp
+++ /dev/null
@@ -1,19 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-# "p": Assume that our process name completion runs ps
-assert_complete_any "pidof p"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pine.exp b/test/lib/completions/pine.exp
deleted file mode 100644
index 9919a4cb..00000000
--- a/test/lib/completions/pine.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "pine -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pinfo.exp b/test/lib/completions/pinfo.exp
deleted file mode 100644
index de241ff5..00000000
--- a/test/lib/completions/pinfo.exp
+++ /dev/null
@@ -1,23 +0,0 @@
-proc setup {} {
- assert_bash_exec {OLDINFOPATH=$INFOPATH; INFOPATH=$INFOPATH:$TESTDIR/fixtures/info:}
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
- assert_bash_exec {INFOPATH="$OLDINFOPATH"; unset -v OLDINFOPATH}
-}
-
-
-setup
-
-
-assert_complete_any "pinfo bash"
-sync_after_int
-
-assert_complete_any "pinfo -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ping.exp b/test/lib/completions/ping.exp
deleted file mode 100644
index 9ef7f2fd..00000000
--- a/test/lib/completions/ping.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "ping "
-sync_after_int
-
-assert_complete_any "ping -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pkg-config.exp b/test/lib/completions/pkg-config.exp
deleted file mode 100644
index adf9a301..00000000
--- a/test/lib/completions/pkg-config.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "pkg-config -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pkg-get.exp b/test/lib/completions/pkg-get.exp
deleted file mode 100644
index 38b2b97f..00000000
--- a/test/lib/completions/pkg-get.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "pkg-get "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pkg_deinstall.exp b/test/lib/completions/pkg_deinstall.exp
deleted file mode 100644
index c2b3ae0b..00000000
--- a/test/lib/completions/pkg_deinstall.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- assert_bash_exec {PKG_DBDIR=$::srcdir/fixtures/pkgtools/db}
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-set pkgs [exec bash -c "cd $::srcdir/fixtures/pkgtools/db ; compgen -d"]
-assert_complete $pkgs "pkg_deinstall "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pkg_delete.exp b/test/lib/completions/pkg_delete.exp
deleted file mode 100644
index 37ce4035..00000000
--- a/test/lib/completions/pkg_delete.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "pkg_delete "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pkg_info.exp b/test/lib/completions/pkg_info.exp
deleted file mode 100644
index ad8ed84e..00000000
--- a/test/lib/completions/pkg_info.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "pkg_info "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pkgadd.exp b/test/lib/completions/pkgadd.exp
deleted file mode 100644
index ba5eadf9..00000000
--- a/test/lib/completions/pkgadd.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "pkgadd "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pkgrm.exp b/test/lib/completions/pkgrm.exp
deleted file mode 100644
index 08c685c4..00000000
--- a/test/lib/completions/pkgrm.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "pkgrm "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pkgtool.exp b/test/lib/completions/pkgtool.exp
deleted file mode 100644
index c071ecd4..00000000
--- a/test/lib/completions/pkgtool.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "pkgtool -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pkgutil.exp b/test/lib/completions/pkgutil.exp
deleted file mode 100644
index e79dea15..00000000
--- a/test/lib/completions/pkgutil.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "pkgutil "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pkill.exp b/test/lib/completions/pkill.exp
deleted file mode 100644
index 6faddfc3..00000000
--- a/test/lib/completions/pkill.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "pkill "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/plague-client.exp b/test/lib/completions/plague-client.exp
deleted file mode 100644
index ddcc8491..00000000
--- a/test/lib/completions/plague-client.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "plague-client "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pm-hibernate.exp b/test/lib/completions/pm-hibernate.exp
deleted file mode 100644
index 1a20603d..00000000
--- a/test/lib/completions/pm-hibernate.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "pm-hibernate -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pm-is-supported.exp b/test/lib/completions/pm-is-supported.exp
deleted file mode 100644
index 8bd136ff..00000000
--- a/test/lib/completions/pm-is-supported.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "pm-is-supported -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pm-powersave.exp b/test/lib/completions/pm-powersave.exp
deleted file mode 100644
index dea37139..00000000
--- a/test/lib/completions/pm-powersave.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "pm-powersave "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pngfix.exp b/test/lib/completions/pngfix.exp
deleted file mode 100644
index d492610d..00000000
--- a/test/lib/completions/pngfix.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "pngfix "
-sync_after_int
-
-assert_complete_any "pngfix -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/portinstall.exp b/test/lib/completions/portinstall.exp
deleted file mode 100644
index ab14afa8..00000000
--- a/test/lib/completions/portinstall.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- assert_bash_exec {PORTSDIR=$TESTDIR/tmp; sed -e s,PORTSDIR,$PORTSDIR,g $::srcdir/fixtures/pkgtools/ports/INDEX.dist > $PORTSDIR/INDEX; cp $PORTSDIR/INDEX $PORTSDIR/INDEX-5}
- save_env
-}
-
-
-proc teardown {} {
- assert_bash_exec {rm $PORTSDIR/INDEX $PORTSDIR/INDEX-5}
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete "bash-2.05b.007_6 bash-3.1.17 bash-completion-20060301_2 shells/bash shells/bash-completion shells/bash2" "portinstall "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/portsnap.exp b/test/lib/completions/portsnap.exp
deleted file mode 100644
index d6028cae..00000000
--- a/test/lib/completions/portsnap.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "portsnap "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/portupgrade.exp b/test/lib/completions/portupgrade.exp
deleted file mode 100644
index 62b5789d..00000000
--- a/test/lib/completions/portupgrade.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-proc setup {} {
- assert_bash_exec {PKG_DBDIR=fixtures/pkgtools/db}
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete "a b-c-d" "portupgrade "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/postcat.exp b/test/lib/completions/postcat.exp
deleted file mode 100644
index 78636676..00000000
--- a/test/lib/completions/postcat.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "postcat "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/postconf.exp b/test/lib/completions/postconf.exp
deleted file mode 100644
index a7f26714..00000000
--- a/test/lib/completions/postconf.exp
+++ /dev/null
@@ -1,29 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-# Broken configs may abort output of postconf halfway through, so use
-# something from early output to not trigger false positives because of
-# this. For example, inet_protocols=all but no IPv6 configured:
-# postconf: fatal: parameter inet_interfaces: no local interface found for ::1
-# ...and output can be cut off somewhere near lmtp_tls_secur*.
-# ...or be completely missing, so all we can do is to skip.
-set test "\"postconf al\" should complete al* variables"
-if {[assert_exec {postconf} "" "" "untested"]} {
- assert_complete_any "postconf al"
-}
-sync_after_int
-
-assert_complete_any "postconf -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/postfix.exp b/test/lib/completions/postfix.exp
deleted file mode 100644
index d1cb7e80..00000000
--- a/test/lib/completions/postfix.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "postfix "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/postmap.exp b/test/lib/completions/postmap.exp
deleted file mode 100644
index af31061f..00000000
--- a/test/lib/completions/postmap.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "postmap "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/postsuper.exp b/test/lib/completions/postsuper.exp
deleted file mode 100644
index 145895e2..00000000
--- a/test/lib/completions/postsuper.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "postsuper "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/povray.exp b/test/lib/completions/povray.exp
deleted file mode 100644
index 30d58e48..00000000
--- a/test/lib/completions/povray.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "povray "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pr.exp b/test/lib/completions/pr.exp
deleted file mode 100644
index 478017b2..00000000
--- a/test/lib/completions/pr.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "pr "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/prelink.exp b/test/lib/completions/prelink.exp
deleted file mode 100644
index 4a493667..00000000
--- a/test/lib/completions/prelink.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "prelink "
-sync_after_int
-
-assert_complete_any "prelink -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/protoc.exp b/test/lib/completions/protoc.exp
deleted file mode 100644
index caeb8274..00000000
--- a/test/lib/completions/protoc.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "protoc "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/psql.exp b/test/lib/completions/psql.exp
deleted file mode 100644
index 3dbffaf2..00000000
--- a/test/lib/completions/psql.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "psql -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ptx.exp b/test/lib/completions/ptx.exp
deleted file mode 100644
index 220243c3..00000000
--- a/test/lib/completions/ptx.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "ptx "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/puppet.exp b/test/lib/completions/puppet.exp
deleted file mode 100644
index 8b82a160..00000000
--- a/test/lib/completions/puppet.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "puppet "
-sync_after_int
-
-assert_complete_any "puppet agent --"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pushd.exp b/test/lib/completions/pushd.exp
deleted file mode 100644
index 54e3ad8b..00000000
--- a/test/lib/completions/pushd.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "pushd "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pv.exp b/test/lib/completions/pv.exp
deleted file mode 100644
index 64d685ae..00000000
--- a/test/lib/completions/pv.exp
+++ /dev/null
@@ -1,24 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "pv "
-sync_after_int
-
-assert_complete_any "pv -"
-sync_after_int
-
-assert_complete_any "pv --pidfile "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pvchange.exp b/test/lib/completions/pvchange.exp
deleted file mode 100644
index f317b52f..00000000
--- a/test/lib/completions/pvchange.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {pvchange --help} "" "" "untested"]} { # may fail as non-root
- assert_complete_any "pvchange --"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pvcreate.exp b/test/lib/completions/pvcreate.exp
deleted file mode 100644
index 6e36b368..00000000
--- a/test/lib/completions/pvcreate.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {pvcreate --help} "" "" "untested"]} { # may fail as non-root
- assert_complete_any "pvcreate --"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pvdisplay.exp b/test/lib/completions/pvdisplay.exp
deleted file mode 100644
index 7b1df0c3..00000000
--- a/test/lib/completions/pvdisplay.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {pvdisplay --help} "" "" "untested"]} { # may fail as non-root
- assert_complete_any "pvdisplay --"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pvmove.exp b/test/lib/completions/pvmove.exp
deleted file mode 100644
index 24d17006..00000000
--- a/test/lib/completions/pvmove.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "pvmove --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pvremove.exp b/test/lib/completions/pvremove.exp
deleted file mode 100644
index 6d655e79..00000000
--- a/test/lib/completions/pvremove.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {pvremove --help} "" "" "untested"]} { # may fail as non-root
- assert_complete_any "pvremove --"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pvs.exp b/test/lib/completions/pvs.exp
deleted file mode 100644
index 195665fd..00000000
--- a/test/lib/completions/pvs.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {pvs --help} "" "" "untested"]} { # may fail as non-root
- assert_complete_any "pvs --"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pvscan.exp b/test/lib/completions/pvscan.exp
deleted file mode 100644
index d3b8ad33..00000000
--- a/test/lib/completions/pvscan.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "pvscan --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pwck.exp b/test/lib/completions/pwck.exp
deleted file mode 100644
index e7c5706c..00000000
--- a/test/lib/completions/pwck.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "pwck "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pwd.exp b/test/lib/completions/pwd.exp
deleted file mode 100644
index 3690076a..00000000
--- a/test/lib/completions/pwd.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "pwd -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pwdx.exp b/test/lib/completions/pwdx.exp
deleted file mode 100644
index 314623bd..00000000
--- a/test/lib/completions/pwdx.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "pwdx "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pwgen.exp b/test/lib/completions/pwgen.exp
deleted file mode 100644
index b8882b68..00000000
--- a/test/lib/completions/pwgen.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "pwgen -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/py.test.exp b/test/lib/completions/py.test.exp
deleted file mode 100644
index 736b9828..00000000
--- a/test/lib/completions/py.test.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "py.test "
-sync_after_int
-
-assert_complete_any "py.test -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pycodestyle.exp b/test/lib/completions/pycodestyle.exp
deleted file mode 100644
index a4d095e0..00000000
--- a/test/lib/completions/pycodestyle.exp
+++ /dev/null
@@ -1,24 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "pycodestyle "
-sync_after_int
-
-assert_complete_any "pycodestyle -"
-sync_after_int
-
-assert_no_complete "pycodestyle --doesnt-exist="
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pydoc.exp b/test/lib/completions/pydoc.exp
deleted file mode 100644
index fe573693..00000000
--- a/test/lib/completions/pydoc.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "pydoc r"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pyflakes.exp b/test/lib/completions/pyflakes.exp
deleted file mode 100644
index 22a8cf7c..00000000
--- a/test/lib/completions/pyflakes.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "pyflakes "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pylint.exp b/test/lib/completions/pylint.exp
deleted file mode 100644
index 62774220..00000000
--- a/test/lib/completions/pylint.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "pylint -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/python.exp b/test/lib/completions/python.exp
deleted file mode 100644
index be0e8a2d..00000000
--- a/test/lib/completions/python.exp
+++ /dev/null
@@ -1,48 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "python "
-sync_after_int
-
-assert_complete_any "python -"
-sync_after_int
-
-assert_no_complete "python -c "
-sync_after_int
-
-assert_complete {"bar bar.d/" foo.d/} "python $::srcdir/fixtures/shared/default/"
-sync_after_int
-
-assert_complete {bar "bar bar.d/" foo foo.d/} "python -c foo $::srcdir/fixtures/shared/default/"
-sync_after_int
-
-assert_no_complete "python -c foo -"
-sync_after_int
-
-assert_no_complete "python -m foo -"
-sync_after_int
-
-assert_complete_any "python -m sy"
-sync_after_int
-
-assert_complete_any "python -m json."
-sync_after_int
-
-assert_complete_any "python -W "
-sync_after_int
-
-assert_complete_any "python -Wa"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/pyvenv.exp b/test/lib/completions/pyvenv.exp
deleted file mode 100644
index 9eca0e4c..00000000
--- a/test/lib/completions/pyvenv.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "pyvenv "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/qemu.exp b/test/lib/completions/qemu.exp
deleted file mode 100644
index cd3d5938..00000000
--- a/test/lib/completions/qemu.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "qemu "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/qrunner.exp b/test/lib/completions/qrunner.exp
deleted file mode 100644
index 0dec16cc..00000000
--- a/test/lib/completions/qrunner.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "qrunner -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/querybts.exp b/test/lib/completions/querybts.exp
deleted file mode 100644
index 4ed09d8a..00000000
--- a/test/lib/completions/querybts.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "querybts --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/quota.exp b/test/lib/completions/quota.exp
deleted file mode 100644
index 1eb9f161..00000000
--- a/test/lib/completions/quota.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "quota "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/quotacheck.exp b/test/lib/completions/quotacheck.exp
deleted file mode 100644
index 353d204a..00000000
--- a/test/lib/completions/quotacheck.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "quotacheck -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/quotaon.exp b/test/lib/completions/quotaon.exp
deleted file mode 100644
index b8279e59..00000000
--- a/test/lib/completions/quotaon.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "quotaon -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/radvdump.exp b/test/lib/completions/radvdump.exp
deleted file mode 100644
index ad1363fd..00000000
--- a/test/lib/completions/radvdump.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "radvdump -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/rcs.exp b/test/lib/completions/rcs.exp
deleted file mode 100644
index 781ac37f..00000000
--- a/test/lib/completions/rcs.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "rcs "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/rcsdiff.exp b/test/lib/completions/rcsdiff.exp
deleted file mode 100644
index 23b009c6..00000000
--- a/test/lib/completions/rcsdiff.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "rcsdiff "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/rdesktop.exp b/test/lib/completions/rdesktop.exp
deleted file mode 100644
index 32544941..00000000
--- a/test/lib/completions/rdesktop.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "rdesktop -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/rdict.exp b/test/lib/completions/rdict.exp
deleted file mode 100644
index 5d6ad847..00000000
--- a/test/lib/completions/rdict.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "rdict --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/readelf.exp b/test/lib/completions/readelf.exp
deleted file mode 100644
index c2d5ee5b..00000000
--- a/test/lib/completions/readelf.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "readelf --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/readonly.exp b/test/lib/completions/readonly.exp
deleted file mode 100644
index cf64ca0a..00000000
--- a/test/lib/completions/readonly.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "readonly BASH_ARG"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/remove_members.exp b/test/lib/completions/remove_members.exp
deleted file mode 100644
index 59f7b6c4..00000000
--- a/test/lib/completions/remove_members.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "remove_members --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/removepkg.exp b/test/lib/completions/removepkg.exp
deleted file mode 100644
index b7cf4b1c..00000000
--- a/test/lib/completions/removepkg.exp
+++ /dev/null
@@ -1,35 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified {/ROOT=/d}
-}
-
-
-setup
-
-
-set test "-<TAB> should complete all options"
-set options [list -copy -keep -preserve -warn]
-assert_complete $options "removepkg -" $test
-
-
-sync_after_int
-
-
-set test "should complete files in \$ROOT/var/log/packages/"
-# set env(ROOT) [file normalize $::srcdir/fixtures/slackware]
-# set dir $env(ROOT)/var/log/packages/
-set root [file normalize $::srcdir/fixtures/slackware]
-set dir $root/var/log/packages/
-assert_bash_exec "ROOT=$root"
-set files [split [exec bash -c "cd $dir && ls"] "\n"]
-assert_complete $files "removepkg " $test
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/renice.exp b/test/lib/completions/renice.exp
deleted file mode 100644
index 5e25ddea..00000000
--- a/test/lib/completions/renice.exp
+++ /dev/null
@@ -1,25 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_bash_type ps]} {
-
- assert_complete_any "renice 1"
- sync_after_int
-
- assert_complete_any "renice -g "
- sync_after_int
-
-}
-
-
-teardown
diff --git a/test/lib/completions/repomanage.exp b/test/lib/completions/repomanage.exp
deleted file mode 100644
index de5169bc..00000000
--- a/test/lib/completions/repomanage.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "repomanage "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/reportbug.exp b/test/lib/completions/reportbug.exp
deleted file mode 100644
index 660778f7..00000000
--- a/test/lib/completions/reportbug.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "reportbug --m"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/reptyr.exp b/test/lib/completions/reptyr.exp
deleted file mode 100644
index 35ccb91c..00000000
--- a/test/lib/completions/reptyr.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "reptyr -"
-sync_after_int
-
-
-assert_complete_any "reptyr "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/resolvconf.exp b/test/lib/completions/resolvconf.exp
deleted file mode 100644
index d1eaf246..00000000
--- a/test/lib/completions/resolvconf.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "resolvconf -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/rfcomm.exp b/test/lib/completions/rfcomm.exp
deleted file mode 100644
index b449134c..00000000
--- a/test/lib/completions/rfcomm.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "rfcomm "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/rfkill.exp b/test/lib/completions/rfkill.exp
deleted file mode 100644
index ab0f1811..00000000
--- a/test/lib/completions/rfkill.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "rfkill "
-sync_after_int
-
-assert_complete_any "rfkill -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ri.exp b/test/lib/completions/ri.exp
deleted file mode 100644
index 1210685b..00000000
--- a/test/lib/completions/ri.exp
+++ /dev/null
@@ -1,26 +0,0 @@
-proc setup {} {
- assert_bash_exec {OLDRI="$RI"; export RI="-d $SRCDIR/fixtures/ri"}
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
- assert_bash_exec {RI="$OLDRI"; unset -v OLDRI}
-}
-
-
-setup
-
-
-assert_complete_any "ri -"
-sync_after_int
-
-assert_complete "BashCompletion/ cache.ri" "ri --dump=$::srcdir/fixtures/ri/"
-sync_after_int
-
-assert_complete "BashCompletion" "ri BashCompletio"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/rlog.exp b/test/lib/completions/rlog.exp
deleted file mode 100644
index 87984a8d..00000000
--- a/test/lib/completions/rlog.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "rlog "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/rm.exp b/test/lib/completions/rm.exp
deleted file mode 100644
index f764a8e7..00000000
--- a/test/lib/completions/rm.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "rm "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/rmdir.exp b/test/lib/completions/rmdir.exp
deleted file mode 100644
index 1a904b64..00000000
--- a/test/lib/completions/rmdir.exp
+++ /dev/null
@@ -1,26 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "rmdir "
-
-
-sync_after_int
-
-
-assert_complete {"bar bar.d/" foo.d/} "rmdir $::srcdir/fixtures/shared/default/"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/rmlist.exp b/test/lib/completions/rmlist.exp
deleted file mode 100644
index d530d117..00000000
--- a/test/lib/completions/rmlist.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "rmlist -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/rmmod.exp b/test/lib/completions/rmmod.exp
deleted file mode 100644
index 6c563211..00000000
--- a/test/lib/completions/rmmod.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "rmmod -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/route.exp b/test/lib/completions/route.exp
deleted file mode 100644
index 76e1b5e0..00000000
--- a/test/lib/completions/route.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "route "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/rpcdebug.exp b/test/lib/completions/rpcdebug.exp
deleted file mode 100644
index 7f1a1c2f..00000000
--- a/test/lib/completions/rpcdebug.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "rpcdebug -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/rpm.exp b/test/lib/completions/rpm.exp
deleted file mode 100644
index 82ab28dc..00000000
--- a/test/lib/completions/rpm.exp
+++ /dev/null
@@ -1,29 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "rpm "
-
-
-sync_after_int
-
-
- # Build list of installed packages
-if {[assert_exec {rpm -qa --qf=%\{NAME\}\n | sort -u} packages]} {
- assert_complete $packages "rpm -q "
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/rpm2tgz.exp b/test/lib/completions/rpm2tgz.exp
deleted file mode 100644
index eb597982..00000000
--- a/test/lib/completions/rpm2tgz.exp
+++ /dev/null
@@ -1,31 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified {/OLDPWD=/d}
-}
-
-
-setup
-
-
-assert_complete_any "rpm2tgz -"
-
-
-sync_after_int
-
-
-set test "should complete *.rpm files and dirs"
-set dir $::srcdir/fixtures/slackware/home
-set files [split [exec bash -c "cd $dir && find . -mindepth 1 -maxdepth 1 \
- \\( -type d -printf '%P/\\n' \\) -o \
- \\( -type f -name '*.rpm' -printf '%P\\n' \\)"] "\n"]
-assert_complete_dir $files "rpm2tgz " $dir $test
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/rpmbuild.exp b/test/lib/completions/rpmbuild.exp
deleted file mode 100644
index 4058d722..00000000
--- a/test/lib/completions/rpmbuild.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "rpmbuild -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/rrdtool.exp b/test/lib/completions/rrdtool.exp
deleted file mode 100644
index 3fb392e4..00000000
--- a/test/lib/completions/rrdtool.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "rrdtool "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/rsync.exp b/test/lib/completions/rsync.exp
deleted file mode 100644
index accc6569..00000000
--- a/test/lib/completions/rsync.exp
+++ /dev/null
@@ -1,28 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified {
- /_scp_path_esc=/d
- }
-}
-
-
-setup
-
-
-assert_complete_any "rsync "
-sync_after_int
-
-
-assert_complete "rsh ssh" "rsync --rsh "
-sync_after_int
-
-
-assert_complete "rsh ssh" "rsync --rsh="
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/rtcwake.exp b/test/lib/completions/rtcwake.exp
deleted file mode 100644
index 81ca3206..00000000
--- a/test/lib/completions/rtcwake.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "rtcwake "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/runuser.exp b/test/lib/completions/runuser.exp
deleted file mode 100644
index 051abe1d..00000000
--- a/test/lib/completions/runuser.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "runuser "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/sbcl-mt.exp b/test/lib/completions/sbcl-mt.exp
deleted file mode 100644
index a80e543b..00000000
--- a/test/lib/completions/sbcl-mt.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete {bar "bar bar.d/" foo foo.d/} "sbcl-mt $::srcdir/fixtures/shared/default/"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/sbcl.exp b/test/lib/completions/sbcl.exp
deleted file mode 100644
index 3adeb6bf..00000000
--- a/test/lib/completions/sbcl.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete {bar "bar bar.d/" foo foo.d/} "sbcl $::srcdir/fixtures/shared/default/"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/sbopkg.exp b/test/lib/completions/sbopkg.exp
deleted file mode 100644
index c4dbfe26..00000000
--- a/test/lib/completions/sbopkg.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "sbopkg -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/scp.exp b/test/lib/completions/scp.exp
index 6b06cb25..1497a7fb 100644
--- a/test/lib/completions/scp.exp
+++ b/test/lib/completions/scp.exp
@@ -23,11 +23,11 @@ set test "Tab should complete remote pwd"
set host bash_completion
# Retrieving home directory (host_pwd) from ssh-host `bash_completion'
- # yields error?
+ # yields error?
if {
[catch {
- exec -- ssh -o "Batchmode yes" -o "ConnectTimeout 1" $host pwd 2>> /dev/null
- } host_pwd]
+ exec -- ssh -o "Batchmode yes" -o "ConnectTimeout 1" $host pwd 2>>/dev/null
+ } host_pwd]
} {
# Yes, retrieving pwd from ssh yields error; reset `host_pwd'
# Indicate host pwd is unknown and test is unsupported
diff --git a/test/lib/completions/screen.exp b/test/lib/completions/screen.exp
deleted file mode 100644
index a5b8c69f..00000000
--- a/test/lib/completions/screen.exp
+++ /dev/null
@@ -1,36 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified {/OLDPWD=/d}
-}
-
-
-setup
-
-
-assert_complete_any "screen -"
-sync_after_int
-
-
-assert_complete {bar "bar bar.d/" foo foo.d/} \
- "screen -c $::srcdir/fixtures/shared/default/" "-c should complete files/dirs"
-sync_after_int
-
-
-assert_complete_any "screen cat"
-sync_after_int
-
-
-# Limit number of matches, assume at least vt100 and friends are there
-assert_complete_any "screen -T vt"
-sync_after_int
-
-
-assert_complete_any "screen -T foo cat"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/sdptool.exp b/test/lib/completions/sdptool.exp
deleted file mode 100644
index c46a1fa2..00000000
--- a/test/lib/completions/sdptool.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "sdptool "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/sed.exp b/test/lib/completions/sed.exp
deleted file mode 100644
index dd480a60..00000000
--- a/test/lib/completions/sed.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {sed --help} "" "" "unsupported"]} {
- assert_complete_any "sed --"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/seq.exp b/test/lib/completions/seq.exp
deleted file mode 100644
index 6e5ef8dc..00000000
--- a/test/lib/completions/seq.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "seq --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/service.exp b/test/lib/completions/service.exp
deleted file mode 100644
index f3cf7355..00000000
--- a/test/lib/completions/service.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "service "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/set.exp b/test/lib/completions/set.exp
deleted file mode 100644
index c14ecff6..00000000
--- a/test/lib/completions/set.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "set no"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/setquota.exp b/test/lib/completions/setquota.exp
deleted file mode 100644
index d169e1ad..00000000
--- a/test/lib/completions/setquota.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "setquota "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/sftp.exp b/test/lib/completions/sftp.exp
index 3c18ddb7..c5c0919f 100644
--- a/test/lib/completions/sftp.exp
+++ b/test/lib/completions/sftp.exp
@@ -57,8 +57,4 @@ assert_complete $expected "sftp -F spaced\\ \\ conf "
sync_after_int
-assert_complete "-Fspaced\\ \\ conf" "sftp -Fsp" "-F should complete filename"
-sync_after_int
-
-
teardown
diff --git a/test/lib/completions/sh.exp b/test/lib/completions/sh.exp
deleted file mode 100644
index e1a51bb9..00000000
--- a/test/lib/completions/sh.exp
+++ /dev/null
@@ -1,38 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "sh -"
-
-
-sync_after_int
-
-
-assert_complete_any "sh +"
-
-
-sync_after_int
-
-
-assert_complete_any "sh -o "
-
-
-sync_after_int
-
-
-assert_no_complete "sh -c "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/sha1sum.exp b/test/lib/completions/sha1sum.exp
deleted file mode 100644
index c5983044..00000000
--- a/test/lib/completions/sha1sum.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "sha1sum --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/shar.exp b/test/lib/completions/shar.exp
deleted file mode 100644
index 604a2031..00000000
--- a/test/lib/completions/shar.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "shar --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/sitecopy.exp b/test/lib/completions/sitecopy.exp
deleted file mode 100644
index 7e0c87fe..00000000
--- a/test/lib/completions/sitecopy.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "sitecopy --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/slackpkg.exp b/test/lib/completions/slackpkg.exp
deleted file mode 100644
index 150f03fc..00000000
--- a/test/lib/completions/slackpkg.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "slackpkg -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/slapt-get.exp b/test/lib/completions/slapt-get.exp
index 7f5375a4..4522610d 100644
--- a/test/lib/completions/slapt-get.exp
+++ b/test/lib/completions/slapt-get.exp
@@ -11,26 +11,6 @@ proc teardown {} {
setup
-assert_complete_any "slapt-get -"
-
-
-sync_after_int
-
-
-set test "--up<TAB> should complete \"--update --upgrade\""
-assert_complete "--update --upgrade" "slapt-get --up" $test
-
-
-sync_after_int
-
-
-set test "--install should not complete anything if config doesn't exist"
-assert_no_complete "slapt-get -c non-existent-file --install " $test
-
-
-sync_after_int
-
-
set test "--install should complete available packages"
set config $::srcdir/fixtures/slackware/etc/slapt-get/slapt-getrc
set workdir [file normalize $::srcdir/fixtures/slackware/var/slapt-get/]
diff --git a/test/lib/completions/slapt-src.exp b/test/lib/completions/slapt-src.exp
index 9410f9c1..b66385ef 100644
--- a/test/lib/completions/slapt-src.exp
+++ b/test/lib/completions/slapt-src.exp
@@ -11,26 +11,6 @@ proc teardown {} {
setup
-assert_complete_any "slapt-src -"
-
-
-sync_after_int
-
-
-set test "--bu<TAB> should complete \"--build\""
-assert_complete "--build" "slapt-src --bu" $test
-
-
-sync_after_int
-
-
-set test "--ins<TAB> should complete \"--install\""
-assert_complete "--install" "slapt-src --ins" $test
-
-
-sync_after_int
-
-
set test "--install should complete available packages"
set config $::srcdir/fixtures/slackware/etc/slapt-get/slapt-srcrc
set workdir [file normalize $::srcdir/fixtures/slackware/usr/src/slapt-src/]
diff --git a/test/lib/completions/smartctl.exp b/test/lib/completions/smartctl.exp
deleted file mode 100644
index 24919396..00000000
--- a/test/lib/completions/smartctl.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "smartctl --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/smbcacls.exp b/test/lib/completions/smbcacls.exp
deleted file mode 100644
index d501f825..00000000
--- a/test/lib/completions/smbcacls.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "smbcacls -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/smbclient.exp b/test/lib/completions/smbclient.exp
deleted file mode 100644
index 0fb8e2da..00000000
--- a/test/lib/completions/smbclient.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "smbclient -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/smbcquotas.exp b/test/lib/completions/smbcquotas.exp
deleted file mode 100644
index 24be2f60..00000000
--- a/test/lib/completions/smbcquotas.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "smbcquotas -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/smbget.exp b/test/lib/completions/smbget.exp
deleted file mode 100644
index 938cd0e5..00000000
--- a/test/lib/completions/smbget.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "smbget -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/smbpasswd.exp b/test/lib/completions/smbpasswd.exp
deleted file mode 100644
index b6e86bbc..00000000
--- a/test/lib/completions/smbpasswd.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "smbpasswd -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/smbtar.exp b/test/lib/completions/smbtar.exp
deleted file mode 100644
index e0d58f5f..00000000
--- a/test/lib/completions/smbtar.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "smbtar -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/smbtree.exp b/test/lib/completions/smbtree.exp
deleted file mode 100644
index b234e443..00000000
--- a/test/lib/completions/smbtree.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "smbtree -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/snownews.exp b/test/lib/completions/snownews.exp
deleted file mode 100644
index c8ad6741..00000000
--- a/test/lib/completions/snownews.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "snownews --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/sort.exp b/test/lib/completions/sort.exp
deleted file mode 100644
index a130bbc8..00000000
--- a/test/lib/completions/sort.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "sort --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/split.exp b/test/lib/completions/split.exp
deleted file mode 100644
index e13df49a..00000000
--- a/test/lib/completions/split.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {split --help} "" "" "unsupported"]} {
- assert_complete_any "split --"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/spovray.exp b/test/lib/completions/spovray.exp
deleted file mode 100644
index 2b2c33de..00000000
--- a/test/lib/completions/spovray.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "spovray "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/sqlite3.exp b/test/lib/completions/sqlite3.exp
deleted file mode 100644
index af1ada82..00000000
--- a/test/lib/completions/sqlite3.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "sqlite3 "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ss.exp b/test/lib/completions/ss.exp
deleted file mode 100644
index e64e33d9..00000000
--- a/test/lib/completions/ss.exp
+++ /dev/null
@@ -1,24 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "ss -"
-sync_after_int
-
-assert_complete_any "ss -A "
-sync_after_int
-
-assert_complete_any "ss -A foo,"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ssh-add.exp b/test/lib/completions/ssh-add.exp
deleted file mode 100644
index 2fb2a9b4..00000000
--- a/test/lib/completions/ssh-add.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "ssh-add "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ssh-copy-id.exp b/test/lib/completions/ssh-copy-id.exp
deleted file mode 100644
index 5abe303d..00000000
--- a/test/lib/completions/ssh-copy-id.exp
+++ /dev/null
@@ -1,26 +0,0 @@
-proc setup {} {
- save_env
- # Some old versions of ssh-copy-id won't output even usage if no
- # identities are found. Try to make sure there is at least one (for CI).
- assert_bash_exec {OLDHOME=$HOME ; HOME=$SRCDIR/fixtures/ssh-copy-id}
-}
-
-
-proc teardown {} {
- assert_bash_exec {HOME=$OLDHOME}
- assert_env_unmodified {
- /OLDHOME=/d
- }
-}
-
-
-setup
-
-
-assert_complete_any "ssh-copy-id -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ssh-keygen.exp b/test/lib/completions/ssh-keygen.exp
deleted file mode 100644
index fea2529e..00000000
--- a/test/lib/completions/ssh-keygen.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "ssh-keygen -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ssh.exp b/test/lib/completions/ssh.exp
index c082558e..1702371c 100644
--- a/test/lib/completions/ssh.exp
+++ b/test/lib/completions/ssh.exp
@@ -19,21 +19,6 @@ proc teardown {} {
setup
-set test "Tab should complete both commands and hostname"
- # Try completion
-set cmd "ssh -F config ls"
-send "$cmd\t"
-set expected "^$cmd\r\n.*ls.*ls_known_host.*\r\n/@$cmd$"
-expect {
- -re $expected { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- default { unresolved "$test" }
-}
-
-
-sync_after_int
-
-
set test "-F without space shouldn't error"
# Try completion
set cmd "ssh -F"
@@ -50,15 +35,6 @@ expect {
sync_after_int
-set test "First argument shouldn't complete with commands"
-# NOTE: This test assumes there's a command "bash" and no host named "bash"
-set cmd "ssh bas"
-assert_complete [get_known_hosts "bas"] $cmd $test
-
-
-sync_after_int
-
-
set test "First argument should complete partial hostname"
# Build string list of hostnames, starting with the character of the first
# host, unless host starts with a COMP_WORDBREAKS character, e.g. a colon (:).
@@ -82,11 +58,4 @@ assert_complete $hosts "ssh $char" $test -ltrim-colon-completions -expect-cmd-mi
sync_after_int
-set test "-F should complete filename"
-assert_complete "-Fspaced\\ \\ conf" "ssh -Fsp" $test
-
-
-sync_after_int
-
-
teardown
diff --git a/test/lib/completions/sshfs.exp b/test/lib/completions/sshfs.exp
deleted file mode 100644
index 42adbd8b..00000000
--- a/test/lib/completions/sshfs.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified {
- /_scp_path_esc=/d
- }
-}
-
-
-setup
-
-
-assert_complete_any "sshfs ./"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/sshmitm.exp b/test/lib/completions/sshmitm.exp
deleted file mode 100644
index 13b50673..00000000
--- a/test/lib/completions/sshmitm.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "sshmitm -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/sshow.exp b/test/lib/completions/sshow.exp
deleted file mode 100644
index 074d7b12..00000000
--- a/test/lib/completions/sshow.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "sshow -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/strace.exp b/test/lib/completions/strace.exp
deleted file mode 100644
index 933d1b48..00000000
--- a/test/lib/completions/strace.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "strace -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/stream.exp b/test/lib/completions/stream.exp
deleted file mode 100644
index 8cbda602..00000000
--- a/test/lib/completions/stream.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "stream "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/strings.exp b/test/lib/completions/strings.exp
deleted file mode 100644
index 103d5d3a..00000000
--- a/test/lib/completions/strings.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "strings "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/strip.exp b/test/lib/completions/strip.exp
deleted file mode 100644
index 00f4ab9c..00000000
--- a/test/lib/completions/strip.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "strip --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/su.exp b/test/lib/completions/su.exp
deleted file mode 100644
index 55dd80d1..00000000
--- a/test/lib/completions/su.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-assert_complete_any "su "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/sudo.exp b/test/lib/completions/sudo.exp
index 5fdb97f1..73e485d6 100644
--- a/test/lib/completions/sudo.exp
+++ b/test/lib/completions/sudo.exp
@@ -11,36 +11,6 @@ proc teardown {} {
setup
-assert_complete_dir foo.d/ "sudo cd fo" $::srcdir/fixtures/shared/default \
- "" -nospace
-
-
-sync_after_int
-
-
-assert_complete_dir fixtures/ "sudo sh fix" $::srcdir "" -nospace
-
-
-sync_after_int
-
-
-# test that `mount` and `sudo mount` behave the same way
-set test "sudo mount /dev/sda1 def should complete directory name"
-assert_complete_dir "default/" "sudo mount /dev/sda1 def" $::srcdir/fixtures/shared $test -nospace
-
-
-sync_after_int
-
-
-set test "sudo -e should complete filenames and directories"
-set dir $::srcdir/fixtures/shared/default
-set files {foo foo.d/}
-assert_complete_dir $files "sudo -e -u root bar foo" $dir $test
-
-
-sync_after_int
-
-
# Find user/group suitable for testing.
set failed_find_unique_completion 0
foreach ug {user group} {
@@ -56,14 +26,6 @@ foreach ug {user group} {
# These tests require an unique completion.
if {!$failed_find_unique_completion} {
- assert_complete $fulluser "sudo chown $partuser"
- sync_after_int
-
- assert_complete $fulluser:$fullgroup "sudo chown $fulluser:$partgroup"
- sync_after_int
-
- assert_complete "dot.user:$fullgroup" "sudo chown dot.user:$partgroup"
- sync_after_int
foreach prefix {
"funky\\ user:" "funky.user:" "funky\\.user:" "fu\\ nky.user:"
@@ -74,21 +36,6 @@ if {!$failed_find_unique_completion} {
assert_complete $prefix$fullgroup "sudo chown $prefix$partgroup" $test
sync_after_int
}
-
- # Check that we give up in degenerate cases instead of spewing various junk.
-
- assert_no_complete "sudo chown $fulluser\\\\:$partgroup"
- sync_after_int
-
- assert_no_complete "sudo chown $fulluser\\\\\\:$partgroup"
- sync_after_int
-
- assert_no_complete "sudo chown $fulluser\\\\\\\\:$partgroup"
- sync_after_int
-
- # Colons in user/groupnames are not usually allowed.
- assert_no_complete "sudo chown foo:bar:$partgroup"
- sync_after_int
}
diff --git a/test/lib/completions/svcadm.exp b/test/lib/completions/svcadm.exp
deleted file mode 100644
index e7266146..00000000
--- a/test/lib/completions/svcadm.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "svcadm "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/svk.exp b/test/lib/completions/svk.exp
deleted file mode 100644
index a794a008..00000000
--- a/test/lib/completions/svk.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "svk "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/svn.exp b/test/lib/completions/svn.exp
deleted file mode 100644
index d1a08ae4..00000000
--- a/test/lib/completions/svn.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "svn "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/svnadmin.exp b/test/lib/completions/svnadmin.exp
deleted file mode 100644
index f20d52cf..00000000
--- a/test/lib/completions/svnadmin.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "svnadmin "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/svnlook.exp b/test/lib/completions/svnlook.exp
deleted file mode 100644
index 114435ec..00000000
--- a/test/lib/completions/svnlook.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "svnlook "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/sync_members.exp b/test/lib/completions/sync_members.exp
deleted file mode 100644
index 817432bb..00000000
--- a/test/lib/completions/sync_members.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "sync_members --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/synclient.exp b/test/lib/completions/synclient.exp
deleted file mode 100644
index 1e9c7b5b..00000000
--- a/test/lib/completions/synclient.exp
+++ /dev/null
@@ -1,26 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "synclient -"
-sync_after_int
-
-
-# synclient -l may error out with e.g.
-# Couldn't find synaptics properties. No synaptics driver loaded?
-if {[assert_exec {synclient -l} "" "" "unsupported"]} {
- assert_complete_any "synclient "
-}
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/sysbench.exp b/test/lib/completions/sysbench.exp
deleted file mode 100644
index 2a0fe339..00000000
--- a/test/lib/completions/sysbench.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "sysbench "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/sysctl.exp b/test/lib/completions/sysctl.exp
deleted file mode 100644
index 6aa9ffe0..00000000
--- a/test/lib/completions/sysctl.exp
+++ /dev/null
@@ -1,23 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {sysctl -N -a 2>/dev/null | grep ^kern | sort -u} values]} {
- set test "sysctl kern should show completions"
- assert_complete $values "sysctl kern" $test -expect-cmd-minus kern
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/tac.exp b/test/lib/completions/tac.exp
deleted file mode 100644
index d4fe7937..00000000
--- a/test/lib/completions/tac.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "tac --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/tail.exp b/test/lib/completions/tail.exp
deleted file mode 100644
index fd685b1a..00000000
--- a/test/lib/completions/tail.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {tail --help} "" "" "unsupported"]} {
- assert_complete_any "tail --"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/tar.exp b/test/lib/completions/tar.exp
deleted file mode 100644
index 75434e94..00000000
--- a/test/lib/completions/tar.exp
+++ /dev/null
@@ -1,132 +0,0 @@
-proc setup {} {
- save_env
-}
-
-proc teardown {} {
- assert_env_unmodified {
- /OLDPWD=/d
- /declare -f _tar/d
- }
-}
-
-setup
-
-# Detect whether system's tar is GNU tar
-set cmd "tar --version"
-send "$cmd\r"
-expect "^$cmd\r\n"
-expect {
- -re "GNU\[^\n\]*\n" {
- set tar_version gnu
- }
- -re ".*\n" {
- set tar_version unknown
- }
-}
-sync_after_int
-
-
-set test "old option: list escaped chars"
-assert_complete_dir "a/b\\'c/" "tar tf escape.tar a/b\\\'" $::srcdir/fixtures/tar $test
-sync_after_int
-
-# TODO: "tar tf escape.tar a/b"
-
-set test "check that any completion done"
-assert_complete_any "tar "
-sync_after_int
-
-# Use bsdtar as the it completes to only 'zc zt zx' ('tar' can be GNU tar and it
-# can would have more options)
-set test "old option: mode is not on first place"
-assert_complete {zc zt zx} "bsdtar z" $test
-sync_after_int
-
-set test "old option: test 'f' when mode is not as a first option"
-assert_complete_dir "dir/ dir2/" "tar zfc " $::srcdir/fixtures/tar
-sync_after_int
-
-set test "old option: creating archive and 'f' option"
-assert_complete_dir "dir/ dir2/" "tar cf " $::srcdir/fixtures/tar
-sync_after_int
-
-set test "old option: archive listing"
-assert_complete_dir "dir/fileA dir/fileB dir/fileC" "tar tf archive.tar.xz dir/file" $::srcdir/fixtures/tar
-sync_after_int
-
-set test "old option: check _second_ option in \"old\" argument"
-assert_complete_dir "dir/ dir2/" "bsdtar cbfvv NOT_EXISTS " $::srcdir/fixtures/tar
-sync_after_int
-
-set test "old option: create and members"
-assert_complete_dir "dir/ dir2/ archive.tar.xz escape.tar" "tar cTfvv NOT_EXISTS DONT_CREATE.tar " $::srcdir/fixtures/tar
-sync_after_int
-
-set test "old option: extract and archive"
-assert_complete_dir "dir/ dir2/ archive.tar.xz escape.tar" "tar xvf " $::srcdir/fixtures/tar
-sync_after_int
-
-if { "$tar_version" == "gnu" } {
- set test "check short options"
- assert_complete_any "tar -c"
- sync_after_int
-
- set test "mode not as a first option"
- assert_complete_dir "dir/ dir2/" "tar -zcf " $::srcdir/fixtures/tar
- sync_after_int
-
- # Only directories should be completed.
- set test "check that we do not suggest re-writing existing archive"
- assert_complete_dir "dir/ dir2/" "tar -cf " $::srcdir/fixtures/tar
- sync_after_int
-
- set test "check --file option"
- assert_complete_dir "dir/ dir2/" "tar -c --file " $::srcdir/fixtures/tar
- sync_after_int
-
- set test "check --file option #2"
- assert_complete_dir "dir/ dir2/" "tar -cvv --file " $::srcdir/fixtures/tar
- sync_after_int
-
- set test "archive listing"
- assert_complete_dir "dir/fileA dir/fileB dir/fileC" "tar -tf archive.tar.xz dir/file" $::srcdir/fixtures/tar
- sync_after_int
-
- set test "archive listing with --file"
- assert_complete_dir "dir/fileA dir/fileB dir/fileC" "tar -t --file archive.tar.xz dir/file" $::srcdir/fixtures/tar
- sync_after_int
-
- # Some random options should work:
- set test "test random tar's long option #1"
- assert_complete "--blocking-factor= --block-number" "tar --block" $test
- sync_after_int
-
- set test "test random tar's long option #2"
- assert_complete "--add-file=" "tar --add-fil" $test -nospace
- sync_after_int
-
- set test "test random tar's long option #3"
- assert_complete "--posix" "tar -cf /dev/null --posi" $test
- sync_after_int
-
- # --owner
- set users [exec bash -c "compgen -A user"]
- set test "test --owner option"
- assert_complete $users "tar --owner=" $test
- sync_after_int
-
- # --group
- set groups [exec bash -c "compgen -A group"]
- set test "test --group option"
- assert_complete $groups "tar --group=" $test
- sync_after_int
-
- # use -b for this as -b is still not handled by tar's completion
- set test "short opt -XXXb <TAB> (arg required)"
- assert_no_complete "tar -cvvfb " $test
- sync_after_int
-
- # TODO: how to test that 'tar -cf<TAB>' completes to 'tar -cf '
-}
-
-teardown
diff --git a/test/lib/completions/tcpdump.exp b/test/lib/completions/tcpdump.exp
deleted file mode 100644
index 79158abf..00000000
--- a/test/lib/completions/tcpdump.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "tcpdump -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/tcpkill.exp b/test/lib/completions/tcpkill.exp
deleted file mode 100644
index d3a45e43..00000000
--- a/test/lib/completions/tcpkill.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "tcpkill -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/tcpnice.exp b/test/lib/completions/tcpnice.exp
deleted file mode 100644
index b4b93097..00000000
--- a/test/lib/completions/tcpnice.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "tcpnice -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/tee.exp b/test/lib/completions/tee.exp
deleted file mode 100644
index 1058bb8e..00000000
--- a/test/lib/completions/tee.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "tee "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/texindex.exp b/test/lib/completions/texindex.exp
deleted file mode 100644
index 43b4c09a..00000000
--- a/test/lib/completions/texindex.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "texindex --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/tightvncviewer.exp b/test/lib/completions/tightvncviewer.exp
deleted file mode 100644
index ee987f60..00000000
--- a/test/lib/completions/tightvncviewer.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "tightvncviewer "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/time.exp b/test/lib/completions/time.exp
deleted file mode 100644
index d052458c..00000000
--- a/test/lib/completions/time.exp
+++ /dev/null
@@ -1,36 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified {/OLDPWD=/d}
-}
-
-
-setup
-
-
-assert_complete_any "time set"
-
-
-sync_after_int
-
-
-set test "-p find -typ should complete find's options"
-assert_complete "-type" "time -p find -typ" $test
-
-
-sync_after_int
-
-
-set test "it should be possible to complete file paths"
-set dir $::srcdir/fixtures/shared
-set files [split [exec bash -c "cd $dir/bin && ls -p"] "\n"]
-assert_complete_dir $files "time ./bin/" $dir $test
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/timeout.exp b/test/lib/completions/timeout.exp
deleted file mode 100644
index f56c80f3..00000000
--- a/test/lib/completions/timeout.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "timeout -"
-sync_after_int
-
-assert_no_complete "timeout " "1st non-option arg=timeout, shouldn't complete"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/tipc.exp b/test/lib/completions/tipc.exp
deleted file mode 100644
index dd88de31..00000000
--- a/test/lib/completions/tipc.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "tipc "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/touch.exp b/test/lib/completions/touch.exp
deleted file mode 100644
index 61d22b33..00000000
--- a/test/lib/completions/touch.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {touch --help} "" "" "unsupported"]} {
- assert_complete_any "touch --"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/tox.exp b/test/lib/completions/tox.exp
deleted file mode 100644
index 55106326..00000000
--- a/test/lib/completions/tox.exp
+++ /dev/null
@@ -1,24 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "tox -"
-sync_after_int
-
-assert_complete "ALL" "tox -e "
-sync_after_int
-
-assert_complete "ALL" "tox -e foo,"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/tr.exp b/test/lib/completions/tr.exp
deleted file mode 100644
index c10c8ba1..00000000
--- a/test/lib/completions/tr.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {tr --help} "" "" "unsupported"]} {
- assert_complete_any "tr --"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/tracepath.exp b/test/lib/completions/tracepath.exp
deleted file mode 100644
index 33b32567..00000000
--- a/test/lib/completions/tracepath.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "tracepath "
-sync_after_int
-
-assert_complete_any "tracepath -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/tshark.exp b/test/lib/completions/tshark.exp
deleted file mode 100644
index 9e7d9d31..00000000
--- a/test/lib/completions/tshark.exp
+++ /dev/null
@@ -1,24 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "tshark -"
-sync_after_int
-
-assert_complete_any "tshark -G "
-sync_after_int
-
-assert_complete_any "tshark -O foo,htt"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/tune2fs.exp b/test/lib/completions/tune2fs.exp
deleted file mode 100644
index df70d904..00000000
--- a/test/lib/completions/tune2fs.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "tune2fs "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/udevadm.exp b/test/lib/completions/udevadm.exp
deleted file mode 100644
index 87a948a8..00000000
--- a/test/lib/completions/udevadm.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "udevadm "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/umount.exp b/test/lib/completions/umount.exp
index e7703d12..03144355 100644
--- a/test/lib/completions/umount.exp
+++ b/test/lib/completions/umount.exp
@@ -37,12 +37,6 @@ proc teardown {} {
setup
-assert_complete_any "umount "
-
-
-sync_after_int
-
-
set test "Testing internal __linux_fstab_unescape function for umount"
# One round of slashes is for bash.
assert_bash_exec {var=one\'two\\040three\\}
diff --git a/test/lib/completions/unace.exp b/test/lib/completions/unace.exp
deleted file mode 100644
index c9d7606e..00000000
--- a/test/lib/completions/unace.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "unace -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/uname.exp b/test/lib/completions/uname.exp
deleted file mode 100644
index 0c363ab5..00000000
--- a/test/lib/completions/uname.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {uname --help} "" "" "unsupported"]} {
- assert_complete_any "uname --"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/unexpand.exp b/test/lib/completions/unexpand.exp
deleted file mode 100644
index c9aecc25..00000000
--- a/test/lib/completions/unexpand.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {unexpand --help} "" "" "unsupported"]} {
- assert_complete_any "unexpand --"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/uniq.exp b/test/lib/completions/uniq.exp
deleted file mode 100644
index d516106c..00000000
--- a/test/lib/completions/uniq.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {uniq --help} "" "" "unsupported"]} {
- assert_complete_any "uniq --"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/units.exp b/test/lib/completions/units.exp
deleted file mode 100644
index 96ec91d1..00000000
--- a/test/lib/completions/units.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {units --help} "" "" "unsupported"]} {
- assert_complete_any "units --"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/unpack200.exp b/test/lib/completions/unpack200.exp
deleted file mode 100644
index b4360491..00000000
--- a/test/lib/completions/unpack200.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "unpack200 "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/unrar.exp b/test/lib/completions/unrar.exp
deleted file mode 100644
index b5e27b21..00000000
--- a/test/lib/completions/unrar.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "unrar -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/unset.exp b/test/lib/completions/unset.exp
deleted file mode 100644
index 42e753cb..00000000
--- a/test/lib/completions/unset.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "unset BASH_ARG"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/unshunt.exp b/test/lib/completions/unshunt.exp
deleted file mode 100644
index cac4ce65..00000000
--- a/test/lib/completions/unshunt.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "unshunt --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/update-alternatives.exp b/test/lib/completions/update-alternatives.exp
deleted file mode 100644
index b94d88c5..00000000
--- a/test/lib/completions/update-alternatives.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "update-alternatives --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/update-rc.d.exp b/test/lib/completions/update-rc.d.exp
deleted file mode 100644
index f2eafea5..00000000
--- a/test/lib/completions/update-rc.d.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "update-rc.d -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/upgradepkg.exp b/test/lib/completions/upgradepkg.exp
index 4783aec3..ffb4ba28 100644
--- a/test/lib/completions/upgradepkg.exp
+++ b/test/lib/completions/upgradepkg.exp
@@ -11,31 +11,6 @@ proc teardown {} {
setup
-assert_complete_any "upgradepkg -"
-
-
-sync_after_int
-
-
-set test "--<TAB> should complete all long options"
-set options [list --dry-run --install-new --reinstall --verbose]
-assert_complete $options "upgradepkg --" $test
-
-
-sync_after_int
-
-
-set test "should complete *.t\[gbxl\]z files and dirs"
-set dir $::srcdir/fixtures/slackware/home
-set files [split [exec bash -c "cd $dir && find . -mindepth 1 -maxdepth 1 \
- \\( -type d -printf '%P/\\n' \\) -o \
- \\( -type f -name '*.t\[bglx\]z' -printf '%P\\n' \\)"] "\n"]
-assert_complete_dir $files "upgradepkg " $dir $test
-
-
-sync_after_int
-
-
set test "should complete *.t\[gbxl\]z files and dirs after % sign"
set oldpkg "xx-2.0-i486-2"
set dir $::srcdir/fixtures/slackware/home
diff --git a/test/lib/completions/urlsnarf.exp b/test/lib/completions/urlsnarf.exp
deleted file mode 100644
index ed543629..00000000
--- a/test/lib/completions/urlsnarf.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "urlsnarf -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/uscan.exp b/test/lib/completions/uscan.exp
deleted file mode 100644
index f96ee971..00000000
--- a/test/lib/completions/uscan.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "uscan -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/useradd.exp b/test/lib/completions/useradd.exp
deleted file mode 100644
index c4f4957e..00000000
--- a/test/lib/completions/useradd.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_no_complete "useradd "
-sync_after_int
-
-assert_complete_any "useradd -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/userdel.exp b/test/lib/completions/userdel.exp
deleted file mode 100644
index 2a46246c..00000000
--- a/test/lib/completions/userdel.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-# "r": root
-assert_complete_any "userdel r"
-sync_after_int
-
-assert_complete_any "userdel -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/usermod.exp b/test/lib/completions/usermod.exp
deleted file mode 100644
index d7daf992..00000000
--- a/test/lib/completions/usermod.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "usermod "
-sync_after_int
-
-assert_complete_any "usermod -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/valgrind.exp b/test/lib/completions/valgrind.exp
deleted file mode 100644
index 6e3702b6..00000000
--- a/test/lib/completions/valgrind.exp
+++ /dev/null
@@ -1,50 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified {/OLDPWD=/d}
-}
-
-
-setup
-
-
-# b: assuming we have at least bash that starts with b in $PATH
-assert_complete_any "valgrind b"
-
-
-sync_after_int
-
-
-assert_complete_any "valgrind -"
-
-
-sync_after_int
-
-
-set test "--tool=memche<TAB> should complete \"memcheck\""
-assert_complete "--tool=memcheck" "valgrind --tool=memche" $test
-
-
-sync_after_int
-
-
-set test "--tool=helgrind --history-l<TAB> should complete \"--history-level=\""
-assert_complete "--history-level=" "valgrind --tool=helgrind --history-l" $test -nospace
-
-
-sync_after_int
-
-
-set test "it should be possible to complete file paths"
-set dir $::srcdir/fixtures/shared
-set files [split [exec bash -c "cd $dir/bin && ls -p"] "\n"]
-assert_complete_dir $files "valgrind --log-file=v\\ 0.log ./bin/" $dir $test
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/vdir.exp b/test/lib/completions/vdir.exp
deleted file mode 100644
index c0e5ee43..00000000
--- a/test/lib/completions/vdir.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "vdir "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/vgcfgbackup.exp b/test/lib/completions/vgcfgbackup.exp
deleted file mode 100644
index 14162ee0..00000000
--- a/test/lib/completions/vgcfgbackup.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {vgcfgbackup --help} "" "" "untested"]} { # may fail as non-root
- assert_complete_any "vgcfgbackup -"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/vgcfgrestore.exp b/test/lib/completions/vgcfgrestore.exp
deleted file mode 100644
index 2cf5f1ca..00000000
--- a/test/lib/completions/vgcfgrestore.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {vgcfgrestore --help} "" "" "untested"]} { # may fail as non-root
- assert_complete_any "vgcfgrestore -"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/vgchange.exp b/test/lib/completions/vgchange.exp
deleted file mode 100644
index b6c0e1df..00000000
--- a/test/lib/completions/vgchange.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "vgchange -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/vgck.exp b/test/lib/completions/vgck.exp
deleted file mode 100644
index b2c86da8..00000000
--- a/test/lib/completions/vgck.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {vgck --help} "" "" "untested"]} { # may fail as non-root
- assert_complete_any "vgck -"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/vgconvert.exp b/test/lib/completions/vgconvert.exp
deleted file mode 100644
index f432229e..00000000
--- a/test/lib/completions/vgconvert.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {vgconvert --help} "" "" "untested"]} { # may fail as non-root
- assert_complete_any "vgconvert -"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/vgcreate.exp b/test/lib/completions/vgcreate.exp
deleted file mode 100644
index 6f3b3e37..00000000
--- a/test/lib/completions/vgcreate.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "vgcreate -"
-sync_after_int
-
-
-assert_no_complete "vgcreate __does_not_exist__"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/vgdisplay.exp b/test/lib/completions/vgdisplay.exp
deleted file mode 100644
index 5fd20596..00000000
--- a/test/lib/completions/vgdisplay.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {vgdisplay --help} "" "" "untested"]} { # may fail as non-root
- assert_complete_any "vgdisplay -"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/vgexport.exp b/test/lib/completions/vgexport.exp
deleted file mode 100644
index e6e45d00..00000000
--- a/test/lib/completions/vgexport.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {vgexport --help} "" "" "untested"]} { # may fail as non-root
- assert_complete_any "vgexport -"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/vgextend.exp b/test/lib/completions/vgextend.exp
deleted file mode 100644
index 18dc2016..00000000
--- a/test/lib/completions/vgextend.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {vgextend --help} "" "" "untested"]} { # may fail as non-root
- assert_complete_any "vgextend -"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/vgimport.exp b/test/lib/completions/vgimport.exp
deleted file mode 100644
index f4c1f833..00000000
--- a/test/lib/completions/vgimport.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {vgimport --help} "" "" "untested"]} { # may fail as non-root
- assert_complete_any "vgimport -"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/vgmerge.exp b/test/lib/completions/vgmerge.exp
deleted file mode 100644
index a8366848..00000000
--- a/test/lib/completions/vgmerge.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {vgmerge --help} "" "" "untested"]} { # may fail as non-root
- assert_complete_any "vgmerge -"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/vgmknodes.exp b/test/lib/completions/vgmknodes.exp
deleted file mode 100644
index b8c3d57f..00000000
--- a/test/lib/completions/vgmknodes.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {vgmknodes --help} "" "" "untested"]} { # may fail as non-root
- assert_complete_any "vgmknodes -"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/vgreduce.exp b/test/lib/completions/vgreduce.exp
deleted file mode 100644
index fc349680..00000000
--- a/test/lib/completions/vgreduce.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {vgreduce --help} "" "" "untested"]} { # may fail as non-root
- assert_complete_any "vgreduce -"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/vgremove.exp b/test/lib/completions/vgremove.exp
deleted file mode 100644
index 0ec1011f..00000000
--- a/test/lib/completions/vgremove.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {vgremove --help} "" "" "untested"]} { # may fail as non-root
- assert_complete_any "vgremove -"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/vgrename.exp b/test/lib/completions/vgrename.exp
deleted file mode 100644
index 62e7d3e6..00000000
--- a/test/lib/completions/vgrename.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {vgrename --help} "" "" "untested"]} { # may fail as non-root
- assert_complete_any "vgrename -"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/vgs.exp b/test/lib/completions/vgs.exp
deleted file mode 100644
index 8a6cf650..00000000
--- a/test/lib/completions/vgs.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {vgs --help} "" "" "untested"]} { # may fail as non-root
- assert_complete_any "vgs -"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/vgscan.exp b/test/lib/completions/vgscan.exp
deleted file mode 100644
index a26838fc..00000000
--- a/test/lib/completions/vgscan.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {vgscan --help} "" "" "untested"]} { # may fail as non-root
- assert_complete_any "vgscan -"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/vgsplit.exp b/test/lib/completions/vgsplit.exp
deleted file mode 100644
index b183cfda..00000000
--- a/test/lib/completions/vgsplit.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "vgsplit -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/vi.exp b/test/lib/completions/vi.exp
deleted file mode 100644
index db3e3deb..00000000
--- a/test/lib/completions/vi.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "vi "
-sync_after_int
-
-
-assert_complete {libfoo.conf foo.txt} "vi $::srcdir/fixtures/shared/ld.so.conf.d/"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/vipw.exp b/test/lib/completions/vipw.exp
deleted file mode 100644
index c29ad9b1..00000000
--- a/test/lib/completions/vipw.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "vipw -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/vmstat.exp b/test/lib/completions/vmstat.exp
deleted file mode 100644
index f749322a..00000000
--- a/test/lib/completions/vmstat.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-assert_complete_any "vmstat -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/vncviewer.exp b/test/lib/completions/vncviewer.exp
deleted file mode 100644
index 8c51e0b2..00000000
--- a/test/lib/completions/vncviewer.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified {
- /declare -f _vncviewer_bootstrap/d
- }
-}
-
-
-setup
-
-
-assert_complete_any "vncviewer "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/vpnc.exp b/test/lib/completions/vpnc.exp
deleted file mode 100644
index 451d8093..00000000
--- a/test/lib/completions/vpnc.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "vpnc -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/watch.exp b/test/lib/completions/watch.exp
deleted file mode 100644
index 02ae8f1b..00000000
--- a/test/lib/completions/watch.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "watch -"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/wc.exp b/test/lib/completions/wc.exp
deleted file mode 100644
index b261b6a7..00000000
--- a/test/lib/completions/wc.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {wc --help} "" "" "unsupported"]} {
- assert_complete_any "wc --"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/webmitm.exp b/test/lib/completions/webmitm.exp
deleted file mode 100644
index adb97cc2..00000000
--- a/test/lib/completions/webmitm.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "webmitm -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/wget.exp b/test/lib/completions/wget.exp
deleted file mode 100644
index 457ae2ce..00000000
--- a/test/lib/completions/wget.exp
+++ /dev/null
@@ -1,26 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "wget --"
-
-
-sync_after_int
-
-
-assert_no_complete "wget "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/who.exp b/test/lib/completions/who.exp
deleted file mode 100644
index 6cca6795..00000000
--- a/test/lib/completions/who.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-if {[assert_exec {who --help} "" "" "unsupported"]} {
- assert_complete_any "who --"
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/wine.exp b/test/lib/completions/wine.exp
deleted file mode 100644
index 2cc60c48..00000000
--- a/test/lib/completions/wine.exp
+++ /dev/null
@@ -1,31 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified {/OLDPWD=/d}
-}
-
-
-setup
-
-
-set test "should complete *.exe, *.com files and dirs"
-set dir $::srcdir/fixtures/shared/default
-assert_complete_dir {"bar bar.d/" foo.d/} "wine " $dir $test
-
-
-sync_after_int
-
-
-set test "should complete any files and dirs after executable"
-set dir $::srcdir/fixtures/shared/default
-set files {bar "bar bar.d/" foo foo.d/}
-assert_complete_dir $files "wine notepad " $dir $test
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/withlist.exp b/test/lib/completions/withlist.exp
deleted file mode 100644
index e1f91f6a..00000000
--- a/test/lib/completions/withlist.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "withlist --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/wodim.exp b/test/lib/completions/wodim.exp
deleted file mode 100644
index 55f63c30..00000000
--- a/test/lib/completions/wodim.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "wodim "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/wol.exp b/test/lib/completions/wol.exp
deleted file mode 100644
index a4ac9e4e..00000000
--- a/test/lib/completions/wol.exp
+++ /dev/null
@@ -1,29 +0,0 @@
-proc setup {} {
- # See fixtures/shared/bin/{arp,ifconfig}
- assert_bash_exec {OLDPATH="$PATH"; PATH="$SRCDIR/fixtures/shared/bin:$PATH";}
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
- assert_bash_exec {PATH="$OLDPATH"; unset -v OLDPATH}
-}
-
-
-setup
-
-
-assert_complete "00:00:00:00:00:00 11:11:11:11:11:11 22:22:22:22:22:22 33:33:33:33:33:33" "wol "
-
-
-sync_after_int
-
-
-assert_complete "00:00:00:00:00:00" "wol 00:"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/write.exp b/test/lib/completions/write.exp
deleted file mode 100644
index 4503f6cc..00000000
--- a/test/lib/completions/write.exp
+++ /dev/null
@@ -1,19 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-# "r": root
-assert_complete_any "write r"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/wsimport.exp b/test/lib/completions/wsimport.exp
deleted file mode 100644
index 36bf35c1..00000000
--- a/test/lib/completions/wsimport.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "wsimport "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/wtf.exp b/test/lib/completions/wtf.exp
deleted file mode 100644
index 0080967c..00000000
--- a/test/lib/completions/wtf.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "wtf A"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/wvdial.exp b/test/lib/completions/wvdial.exp
deleted file mode 100644
index 5b52daa8..00000000
--- a/test/lib/completions/wvdial.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "wvdial -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/xdg-mime.exp b/test/lib/completions/xdg-mime.exp
deleted file mode 100644
index 015c586e..00000000
--- a/test/lib/completions/xdg-mime.exp
+++ /dev/null
@@ -1,39 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "xdg-mime "
-sync_after_int
-
-assert_complete_any "xdg-mime -"
-sync_after_int
-
-assert_complete_any "xdg-mime query "
-sync_after_int
-
-assert_complete_any "xdg-mime query filetype "
-sync_after_int
-
-assert_complete_any "xdg-mime query default "
-sync_after_int
-
-assert_complete_any "xdg-mime default foo.desktop "
-sync_after_int
-
-assert_complete_any "xdg-mime install --mode "
-sync_after_int
-
-assert_complete_any "xdg-mime uninstall "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/xdg-settings.exp b/test/lib/completions/xdg-settings.exp
deleted file mode 100644
index 99a5838d..00000000
--- a/test/lib/completions/xdg-settings.exp
+++ /dev/null
@@ -1,24 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "xdg-settings "
-sync_after_int
-
-assert_complete_any "xdg-settings --"
-sync_after_int
-
-assert_complete_any "xdg-settings get "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/xfreerdp.exp b/test/lib/completions/xfreerdp.exp
deleted file mode 100644
index f61cfcad..00000000
--- a/test/lib/completions/xfreerdp.exp
+++ /dev/null
@@ -1,28 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-set test "Tab should complete options"
-set cmd "xfreerdp --"
-send "$cmd\t"
-set expected "^$cmd\r\n--data.*--kbd-list.*--plugin\r\n/@$cmd$"
-expect {
- -re $expected { pass "$test" }
- -re /@ { unresolved "$test at prompt" }
- default { unresolved "$test" }
-}
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/xgamma.exp b/test/lib/completions/xgamma.exp
deleted file mode 100644
index c4c2228e..00000000
--- a/test/lib/completions/xgamma.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-set test "-gam<TAB> should complete \"-gamma\""
-assert_complete "-gamma" "xgamma -gam" $test
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/xm.exp b/test/lib/completions/xm.exp
deleted file mode 100644
index 5a0c58e0..00000000
--- a/test/lib/completions/xm.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "xm "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/xmllint.exp b/test/lib/completions/xmllint.exp
deleted file mode 100644
index 20daab6d..00000000
--- a/test/lib/completions/xmllint.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "xmllint "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/xmlwf.exp b/test/lib/completions/xmlwf.exp
deleted file mode 100644
index 6c306f34..00000000
--- a/test/lib/completions/xmlwf.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "xmlwf "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/xmms.exp b/test/lib/completions/xmms.exp
deleted file mode 100644
index 1f1f6d57..00000000
--- a/test/lib/completions/xmms.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "xmms --"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/xmodmap.exp b/test/lib/completions/xmodmap.exp
deleted file mode 100644
index 2bf4da1c..00000000
--- a/test/lib/completions/xmodmap.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "xmodmap "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/xpovray.exp b/test/lib/completions/xpovray.exp
deleted file mode 100644
index 53a5fcd0..00000000
--- a/test/lib/completions/xpovray.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "xpovray "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/xrandr.exp b/test/lib/completions/xrandr.exp
deleted file mode 100644
index e76a5665..00000000
--- a/test/lib/completions/xrandr.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "xrandr "
-sync_after_int
-
-assert_no_complete "xrandr --mode "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/xrdb.exp b/test/lib/completions/xrdb.exp
deleted file mode 100644
index f02625dc..00000000
--- a/test/lib/completions/xrdb.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "xrdb "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/xsltproc.exp b/test/lib/completions/xsltproc.exp
deleted file mode 100644
index 2c558ff1..00000000
--- a/test/lib/completions/xsltproc.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "xsltproc "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/xvnc4viewer.exp b/test/lib/completions/xvnc4viewer.exp
deleted file mode 100644
index 6432ed25..00000000
--- a/test/lib/completions/xvnc4viewer.exp
+++ /dev/null
@@ -1,45 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-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 -} $test
-
-
-sync_after_int
-
-
-set expected {hextile raw zrle}
-assert_complete $expected "xvnc4viewer -PreferredEncoding "
-
-
-sync_after_int
-
-
-set expected {hextile raw zrle}
-assert_complete $expected "xvnc4viewer --preferredencoding "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/xxd.exp b/test/lib/completions/xxd.exp
deleted file mode 100644
index 6f12c0c0..00000000
--- a/test/lib/completions/xxd.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "xxd "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/xz.exp b/test/lib/completions/xz.exp
deleted file mode 100644
index ba9ccd3a..00000000
--- a/test/lib/completions/xz.exp
+++ /dev/null
@@ -1,37 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified {/OLDPWD=/d}
-}
-
-
-setup
-
-
-assert_complete_any "xz "
-
-
-sync_after_int
-
-
-assert_complete_dir "a/ bashcomp.lzma bashcomp.tar.xz bashcomp.tlz bashcomp.xz" \
- "xz -d " $::srcdir/fixtures/xz
-
-
-sync_after_int
-
-
-assert_complete_dir "a/ bashcomp.tar" "xz " $::srcdir/fixtures/xz
-
-
-sync_after_int
-
-
-assert_complete_homedir "xz"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/xzdec.exp b/test/lib/completions/xzdec.exp
deleted file mode 100644
index 578cba7d..00000000
--- a/test/lib/completions/xzdec.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "xzdec "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ypcat.exp b/test/lib/completions/ypcat.exp
deleted file mode 100644
index a8249dc2..00000000
--- a/test/lib/completions/ypcat.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "ypcat "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/ypmatch.exp b/test/lib/completions/ypmatch.exp
deleted file mode 100644
index ac264c18..00000000
--- a/test/lib/completions/ypmatch.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "ypmatch foo "
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/yum-arch.exp b/test/lib/completions/yum-arch.exp
deleted file mode 100644
index 85c47c22..00000000
--- a/test/lib/completions/yum-arch.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "yum-arch -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/yum.exp b/test/lib/completions/yum.exp
deleted file mode 100644
index 899ecddb..00000000
--- a/test/lib/completions/yum.exp
+++ /dev/null
@@ -1,20 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "yum -"
-
-
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/zopfli.exp b/test/lib/completions/zopfli.exp
deleted file mode 100644
index 8e17e92b..00000000
--- a/test/lib/completions/zopfli.exp
+++ /dev/null
@@ -1,22 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "zopfli "
-sync_after_int
-
-
-assert_complete_homedir "zopfli"
-sync_after_int
-
-
-teardown
diff --git a/test/lib/completions/zopflipng.exp b/test/lib/completions/zopflipng.exp
deleted file mode 100644
index 9c421a14..00000000
--- a/test/lib/completions/zopflipng.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_env_unmodified
-}
-
-
-setup
-
-
-assert_complete_any "zopflipng "
-sync_after_int
-
-
-teardown
diff --git a/test/lib/library.exp b/test/lib/library.exp
index 9321c5ca..899d74b6 100644
--- a/test/lib/library.exp
+++ b/test/lib/library.exp
@@ -51,7 +51,7 @@ proc assert_bash_exec {{aCmd ""} {title ""} {prompt /@} {out -1}} {
# @param string $command Command to locate
proc assert_bash_type {command} {
set test "$command should be available in bash"
- set cmd "type $command &> /dev/null && echo -n 0 || echo -n 1"
+ set cmd "type $command &>/dev/null && echo -n 0 || echo -n 1"
send "$cmd\r"
expect "$cmd\r\n"
expect {
@@ -508,39 +508,6 @@ proc assert_env_unmodified {{sed ""} {file ""} {diff ""}} {
}
-# Make sure the specified command executed from within Tcl/Expect.
-# Fail the test with status UNSUPPORTED if Tcl fails with error "POSIX/ENOENT
-# (No such file or directory)", or with the given Tcl failure status command
-# (default "unresolved") if other error occurs.
-# NOTE: Further tests are assumed if executing the command is successful. The
-# test isn't immediately declared to have PASSED if the command is
-# executed successful.
-# @param string $command
-# @param string $stdout (optional) Reference to variable to hold stdout.
-# @param string $test (optional) Test title
-# @param string $failcmd (optional, default "unresolved") Failure command
-# @see assert_bash_exec()
-proc assert_exec {cmd {stdout ''} {test ''} {failcmd "unresolved"}} {
- if {$test == ""} {set test "$cmd should execute successfully"}
- upvar $stdout results
- set status [catch {eval exec $cmd} results]
- if {$status == 0} {
- set result true
- } else {
- set result false
- # Command not found (POSIX/ENOENT = no such file or directory)?
- if {[lindex $::errorCode 0] == "POSIX" && [lindex $::errorCode 1] == "ENOENT"} {
- # Yes, command not found;
- # Indicate test is unsupported
- unsupported "$test"
- } else {
- $failcmd "$test"
- }
- }
- return $result
-}
-
-
# Check that no completion is attempted on a certain command.
# Params:
# @cmd The command to attempt to complete.
@@ -584,24 +551,6 @@ proc assert_no_output {{cmd} {test ""} {prompt /@}} {
}
-# Check that ~part completes to ~full/ if home dir exists.
-# @param string $cmd The command to attempt home dir completion for.
-# @param string $test Optional parameter with test name.
-# @param string $prompt (optional) Bash prompt. Default is "/@"
-proc assert_complete_homedir {{cmd} {test ""} {prompt /@}} {
- if {[string length $test] == 0} {
- set test "$cmd should complete ~part to ~full/ if home dir exists"
- }
- assert_bash_exec {for u in $(compgen -u); do \
- eval test -d ~$u && echo $u; unset u; done} {} /@ users
- if {![find_unique_completion_pair $users part full]} {
- untested "Not running, no suitable test user found: $test"
- } else {
- assert_complete "~$full/" "$cmd ~$part" $test -nospace
- }
-}
-
-
# Source/run file with additional tests if completion for the specified command
# is installed in bash, and the command is available.
# @param string $command Command to check completion availability for.
@@ -680,26 +629,6 @@ proc get_hosts_avahi {} {
}
-# Get signals
-# This function is written in analogy to the bash function `_signals()' in
-# `bash_completion'.
-# @param prefix
-# @return list Signals starting with `SIG', but with the `SIG' prefix removed.
-proc get_signals {{prefix ""}} {
- set signals {}
- foreach signal [exec bash -c {compgen -A signal}] {
- # Does signal start with `SIG'?
- if {[string range $signal 0 [expr [string length "SIG"] - 1]] == "SIG"} {
- # Remove `SIG' prefix
- set signal [string range $signal 3 end]
- # Add signal (with dash (-) prefix) to list
- lappend signals $prefix$signal
- }
- }
- return $signals
-}
-
-
# Initialize tcl globals with bash variables
proc init_tcl_bash_globals {} {
global BASH_VERSINFO BASH_VERSION COMP_WORDBREAKS LC_CTYPE
@@ -717,7 +646,7 @@ proc init_tcl_bash_globals {} {
# @return boolean True (1) if completion is installed, False (0) if not.
proc assert_install_completion_for {command} {
set test "$command should have completion installed in bash"
- set cmd "__load_completion $command ; complete -p $command &> /dev/null && echo -n 0 || echo -n 1"
+ set cmd "__load_completion $command ; complete -p $command &>/dev/null && echo -n 0 || echo -n 1"
send "$cmd\r"
expect "$cmd\r\n"
expect {
@@ -811,27 +740,6 @@ proc match_items {items {args {}}} {
}
-
-# Get real command.
-# - arg: $1 Command
-# - return: Command found, empty string if not found
-proc realcommand {cmd} {
- set result ""
- if [string length [set path [auto_execok $cmd]]] {
- if {[string length [auto_execok realpath]]} {
- set result [exec realpath $path]
- } elseif {[string length [auto_execok greadlink]]} {
- set result [exec greadlink -f $path]
- } elseif {[string length [auto_execok readlink]]} {
- set result [exec readlink -f $path]
- } else {
- set result $path
- }
- }
- return $result
-}
-
-
# Generate filename to save environment to.
# @param string $file File-basename to save environment to. If the file has a
# `.exp' suffix, it is removed. E.g.:
@@ -1043,10 +951,11 @@ proc start_interactive_test {} {
init_bash_xtrace
}
global OPT_BUFFER_SIZE
- if {[info exists OPT_BUFFER_SIZE]} {
- verbose "Changing default expect match buffer size to $OPT_BUFFER_SIZE"
- match_max $OPT_BUFFER_SIZE
+ if {![info exists OPT_BUFFER_SIZE]} {
+ set OPT_BUFFER_SIZE 20000
}
+ verbose "Changing default expect match buffer size to $OPT_BUFFER_SIZE"
+ match_max $OPT_BUFFER_SIZE
global OPT_TIMEOUT
if {[info exists OPT_TIMEOUT]} {
global timeout
diff --git a/test/lib/library.sh b/test/lib/library.sh
index 0a671595..ed5a85d4 100644
--- a/test/lib/library.sh
+++ b/test/lib/library.sh
@@ -2,7 +2,6 @@
# @param $1 Char to add to $COMP_WORDBREAKS
-# @see remove_comp_wordbreak_char()
add_comp_wordbreak_char() {
[[ "${COMP_WORDBREAKS//[^$1]}" ]] || COMP_WORDBREAKS+=$1
} # add_comp_wordbreak_char()
@@ -37,30 +36,3 @@ echo_array() {
local name=$1[@]
printf "%s\n" "${!name}" | sort
} # echo_array()
-
-
-# Check if current bash version meets specified minimum
-# @param $1 (integer) Major version number
-# @param $2 (integer) Minor version number
-# @param $3 (integer) Patch level
-# @return 0 if success, > 0 if not
-is_bash_version_minimal() {
- [[ (
- ${BASH_VERSINFO[0]} -gt $1
- ) || (
- ${BASH_VERSINFO[0]} -eq $1 &&
- ${BASH_VERSINFO[1]} -gt $2
- ) || (
- ${BASH_VERSINFO[0]} -eq $1 &&
- ${BASH_VERSINFO[1]} -eq $2 &&
- ${BASH_VERSINFO[2]} -ge $3
- )
- ]]
-} # is_bash_version_minimal()
-
-
-# @param $1 Char to remove from $COMP_WORDBREAKS
-# @see add_comp_wordbreak_char()
-remove_comp_wordbreak_char() {
- COMP_WORDBREAKS=${COMP_WORDBREAKS//$1}
-} # remove_comp_wordbreak_char()
diff --git a/test/log/.gitignore b/test/log/.gitignore
deleted file mode 100644
index 72e8ffc0..00000000
--- a/test/log/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-*
diff --git a/test/requirements.txt b/test/requirements.txt
new file mode 100644
index 00000000..23ced801
--- /dev/null
+++ b/test/requirements.txt
@@ -0,0 +1,5 @@
+black>=19.3b0
+pexpect>=4
+pytest>=3.5
+pytest-xdist
+typing;python_version<"3.5"
diff --git a/test/run b/test/run
index 88e5aabf..6180bbbf 100755
--- a/test/run
+++ b/test/run
@@ -10,7 +10,7 @@ usage() {
echo
echo "Interesting options:"
echo " --tool_exec= Test against a different bash executable."
- echo " --buffer_size Change expect match buffer size from the default of 2000 bytes."
+ echo " --buffer-size Change expect match buffer size from our default of 20000 bytes."
echo " --debug Create a dbg.log in the test directory with detailed expect match information."
echo " --timeout Change expect timeout from the default of 10 seconds."
echo " --debug-xtrace Create an xtrace.log in the test directory with set -x output."
diff --git a/test/run-shellcheck b/test/run-shellcheck
new file mode 100755
index 00000000..cae7b809
--- /dev/null
+++ b/test/run-shellcheck
@@ -0,0 +1,4 @@
+#!/bin/sh -eu
+cd "$(dirname $0)/.."
+exec docker run --network none -tv "$PWD:/mnt:ro" \
+ koalaman/shellcheck -S error "$@"
diff --git a/test/runLint b/test/runLint
index 2db8f358..8699d7a0 100755
--- a/test/runLint
+++ b/test/runLint
@@ -5,7 +5,7 @@ gitgrep()
local out=$(git grep -I -P -n "$1" | \
grep -E '^(bash_completion|completions/|test/)' | \
grep -Fv 'test/runLint')
- if [ -n "$out" ] ; then
+ if [ -n "$out" ]; then
printf '***** %s\n' "$2"
printf '%s\n\n' "$out"
fi
@@ -43,3 +43,5 @@ gitgrep $cmdstart'[ef]grep\b' \
gitgrep '(?<!command)'$cmdstart'(grep|ls|sed)(\s|$)' \
'invoke grep, ls, and sed through "command", e.g. "command grep"'
+
+gitgrep '<<<' 'herestrings use temp files, use some other way'
diff --git a/test/t/Makefile.am b/test/t/Makefile.am
new file mode 100644
index 00000000..fb7665f1
--- /dev/null
+++ b/test/t/Makefile.am
@@ -0,0 +1,680 @@
+SUBDIRS = unit
+
+EXTRA_DIST = \
+ conftest.py \
+ test_2to3.py \
+ test_7z.py \
+ test_a2ps.py \
+ test_a2x.py \
+ test_abook.py \
+ test_aclocal.py \
+ test_acpi.py \
+ test_acroread.py \
+ test_adb.py \
+ test_add_members.py \
+ test_alias.py \
+ test_alpine.py \
+ test_animate.py \
+ test_ant.py \
+ test_apache2ctl.py \
+ test_appdata_validate.py \
+ test_apt_build.py \
+ test_apt_cache.py \
+ test_apt_get.py \
+ test_aptitude.py \
+ test_arch.py \
+ test_arp.py \
+ test_arping.py \
+ test_arpspoof.py \
+ test_asciidoc.py \
+ test_aspell.py \
+ test_autoconf.py \
+ test_autoheader.py \
+ test_automake.py \
+ test_autoreconf.py \
+ test_autorpm.py \
+ test_autoscan.py \
+ test_autoupdate.py \
+ test_avctrl.py \
+ test_awk.py \
+ test_badblocks.py \
+ test_base64.py \
+ test_bash.py \
+ test_bc.py \
+ test_bind.py \
+ test_bison.py \
+ test_bk.py \
+ test_brctl.py \
+ test_btdownloadcurses_py.py \
+ test_btdownloadgui_py.py \
+ test_btdownloadheadless_py.py \
+ test_bts.py \
+ test_bzip2.py \
+ test_cal.py \
+ test_cancel.py \
+ test_cardctl.py \
+ test_cat.py \
+ test_cc.py \
+ test_ccache.py \
+ test_ccze.py \
+ test_cd.py \
+ test_cdrecord.py \
+ test_cfagent.py \
+ test_cfrun.py \
+ test_chage.py \
+ test_change_pw.py \
+ test_check_db.py \
+ test_check_perms.py \
+ test_checksec.py \
+ test_chfn.py \
+ test_chgrp.py \
+ test_chkconfig.py \
+ test_chmod.py \
+ test_chown.py \
+ test_chpasswd.py \
+ test_chromium_browser.py \
+ test_chronyc.py \
+ test_chroot.py \
+ test_chrpath.py \
+ test_chsh.py \
+ test_ci.py \
+ test_ciptool.py \
+ test_civclient.py \
+ test_civserver.py \
+ test_cksfv.py \
+ test_cleanarch.py \
+ test_clisp.py \
+ test_clone_member.py \
+ test_co.py \
+ test_compare.py \
+ test_complete.py \
+ test_composite.py \
+ test_config_list.py \
+ test_configure.py \
+ test_conjure.py \
+ test_convert.py \
+ test_cowsay.py \
+ test_cp.py \
+ test_cpan2dist.py \
+ test_cpio.py \
+ test_cplusplus.py \
+ test_cppcheck.py \
+ test_createdb.py \
+ test_createuser.py \
+ test_crontab.py \
+ test_cryptsetup.py \
+ test_csplit.py \
+ test_curl.py \
+ test_cut.py \
+ test_cvs.py \
+ test_cvsps.py \
+ test_date.py \
+ test_dcop.py \
+ test_dd.py \
+ test_declare.py \
+ test_deja_dup.py \
+ test_desktop_file_validate.py \
+ test_df.py \
+ test_dfutool.py \
+ test_dhclient.py \
+ test_dict.py \
+ test_diff.py \
+ test_dir.py \
+ test_display.py \
+ test_dmesg.py \
+ test_dnssec_keygen.py \
+ test_dnsspoof.py \
+ test_dot.py \
+ test_dpkg.py \
+ test_dpkg_deb.py \
+ test_dpkg_reconfigure.py \
+ test_dpkg_source.py \
+ test_dropdb.py \
+ test_dropuser.py \
+ test_dselect.py \
+ test_dsniff.py \
+ test_du.py \
+ test_dumpdb.py \
+ test_dumpe2fs.py \
+ test_e2freefrag.py \
+ test_e2label.py \
+ test_ebtables.py \
+ test_ecryptfs_migrate_home.py \
+ test_eject.py \
+ test_enscript.py \
+ test_env.py \
+ test_eog.py \
+ test_ether_wake.py \
+ test_etherwake.py \
+ test_evince.py \
+ test_expand.py \
+ test_explodepkg.py \
+ test_export.py \
+ test_faillog.py \
+ test_fbgs.py \
+ test_fbi.py \
+ test_feh.py \
+ test_file.py \
+ test_file_roller.py \
+ test_filefrag.py \
+ test_filesnarf.py \
+ test_find.py \
+ test_find_member.py \
+ test_finger.py \
+ test_fio.py \
+ test_firefox.py \
+ test_flake8.py \
+ test_fmt.py \
+ test_fold.py \
+ test_freebsd_update.py \
+ test_freeciv.py \
+ test_freeciv_server.py \
+ test_function.py \
+ test_fusermount.py \
+ test_g4.py \
+ test_g77.py \
+ test_gcc.py \
+ test_gcj.py \
+ test_gcl.py \
+ test_gdb.py \
+ test_genaliases.py \
+ test_gendiff.py \
+ test_genisoimage.py \
+ test_geoiplookup.py \
+ test_getconf.py \
+ test_getent.py \
+ test_gkrellm.py \
+ test_gm.py \
+ test_gmplayer.py \
+ test_gnatmake.py \
+ test_gnokii.py \
+ test_gnome_mplayer.py \
+ test_gnome_screenshot.py \
+ test_gpasswd.py \
+ test_gpc.py \
+ test_gperf.py \
+ test_gpg.py \
+ test_gpg2.py \
+ test_gpgv.py \
+ test_gphoto2.py \
+ test_gplusplus.py \
+ test_gprof.py \
+ test_grep.py \
+ test_groupadd.py \
+ test_groupdel.py \
+ test_groupmems.py \
+ test_groupmod.py \
+ test_growisofs.py \
+ test_grpck.py \
+ test_grub.py \
+ test_gzip.py \
+ test_hciattach.py \
+ test_hciconfig.py \
+ test_hcitool.py \
+ test_hddtemp.py \
+ test_head.py \
+ test_hexdump.py \
+ test_hid2hci.py \
+ test_host.py \
+ test_hostname.py \
+ test_hping2.py \
+ test_hping3.py \
+ test_htop.py \
+ test_htpasswd.py \
+ test_hunspell.py \
+ test_hwclock.py \
+ test_iconv.py \
+ test_id.py \
+ test_identify.py \
+ test_idn.py \
+ test_ifdown.py \
+ test_ifstat.py \
+ test_iftop.py \
+ test_ifup.py \
+ test_import.py \
+ test_info.py \
+ test_inject.py \
+ test_inotifywait.py \
+ test_inotifywatch.py \
+ test_insmod.py \
+ test_installpkg.py \
+ test_interdiff.py \
+ test_invoke_rc_d.py \
+ test_ionice.py \
+ test_ip.py \
+ test_iperf.py \
+ test_ipmitool.py \
+ test_ipsec.py \
+ test_iptables.py \
+ test_ipv6calc.py \
+ test_irb.py \
+ test_iscsiadm.py \
+ test_isort.py \
+ test_isql.py \
+ test_iwconfig.py \
+ test_iwlist.py \
+ test_iwpriv.py \
+ test_iwspy.py \
+ test_jar.py \
+ test_jarsigner.py \
+ test_java.py \
+ test_javac.py \
+ test_javadoc.py \
+ test_javaws.py \
+ test_jpegoptim.py \
+ test_jps.py \
+ test_jq.py \
+ test_jshint.py \
+ test_json_xs.py \
+ test_jsonschema.py \
+ test_k3b.py \
+ test_kcov.py \
+ test_kdvi.py \
+ test_kill.py \
+ test_killall.py \
+ test_kldload.py \
+ test_kldunload.py \
+ test_koji.py \
+ test_kpdf.py \
+ test_kplayer.py \
+ test_ktutil.py \
+ test_l2ping.py \
+ test_larch.py \
+ test_lastlog.py \
+ test_ld.py \
+ test_ldapadd.py \
+ test_ldapcompare.py \
+ test_ldapdelete.py \
+ test_ldapmodrdn.py \
+ test_ldappasswd.py \
+ test_ldapsearch.py \
+ test_ldapvi.py \
+ test_ldapwhoami.py \
+ test_ldd.py \
+ test_less.py \
+ test_lftp.py \
+ test_lftpget.py \
+ test_lilo.py \
+ test_links.py \
+ test_lintian.py \
+ test_lintian_info.py \
+ test_lisp.py \
+ test_list_admins.py \
+ test_list_lists.py \
+ test_list_members.py \
+ test_list_owners.py \
+ test_ln.py \
+ test_locale_gen.py \
+ test_look.py \
+ test_lpq.py \
+ test_lpr.py \
+ test_lrzip.py \
+ test_ls.py \
+ test_lsof.py \
+ test_lspci.py \
+ test_lsscsi.py \
+ test_lsusb.py \
+ test_lua.py \
+ test_luac.py \
+ test_luseradd.py \
+ test_luserdel.py \
+ test_lusermod.py \
+ test_lvchange.py \
+ test_lvcreate.py \
+ test_lvdisplay.py \
+ test_lvextend.py \
+ test_lvm.py \
+ test_lvmdiskscan.py \
+ test_lvreduce.py \
+ test_lvremove.py \
+ test_lvrename.py \
+ test_lvresize.py \
+ test_lvs.py \
+ test_lvscan.py \
+ test_lz4.py \
+ test_lzip.py \
+ test_lzma.py \
+ test_lzop.py \
+ test_m4.py \
+ test_macof.py \
+ test_mailmanctl.py \
+ test_mailsnarf.py \
+ test_make.py \
+ test_makepkg.py \
+ test_man.py \
+ test_mc.py \
+ test_mcrypt.py \
+ test_md5sum.py \
+ test_mdadm.py \
+ test_mdecrypt.py \
+ test_mdtool.py \
+ test_medusa.py \
+ test_mencoder.py \
+ test_mii_diag.py \
+ test_mii_tool.py \
+ test_minicom.py \
+ test_mkdir.py \
+ test_mkfifo.py \
+ test_mkinitrd.py \
+ test_mkisofs.py \
+ test_mknod.py \
+ test_mktemp.py \
+ test_mmsitepass.py \
+ test_mock.py \
+ test_modinfo.py \
+ test_modprobe.py \
+ test_module.py \
+ test_mogrify.py \
+ test_monodevelop.py \
+ test_montage.py \
+ test_mount.py \
+ test_mplayer.py \
+ test_mr.py \
+ test_msgsnarf.py \
+ test_msynctool.py \
+ test_mtx.py \
+ test_munin_node_configure.py \
+ test_munin_run.py \
+ test_munindoc.py \
+ test_mussh.py \
+ test_mutt.py \
+ test_muttng.py \
+ test_mv.py \
+ test_mypy.py \
+ test_mysql.py \
+ test_mysqladmin.py \
+ test_nc.py \
+ test_ncftp.py \
+ test_nethogs.py \
+ test_netstat.py \
+ test_newgrp.py \
+ test_newlist.py \
+ test_newusers.py \
+ test_ngrep.py \
+ test_nl.py \
+ test_nm.py \
+ test_nmap.py \
+ test_nmcli.py \
+ test_nproc.py \
+ test_nslookup.py \
+ test_nsupdate.py \
+ test_ntpdate.py \
+ test_objcopy.py \
+ test_objdump.py \
+ test_od.py \
+ test_oggdec.py \
+ test_op.py \
+ test_openssl.py \
+ test_opera.py \
+ test_optipng.py \
+ test_p4.py \
+ test_pack200.py \
+ test_passwd.py \
+ test_paste.py \
+ test_patch.py \
+ test_pdftotext.py \
+ test_perl.py \
+ test_perlcritic.py \
+ test_perldoc.py \
+ test_perltidy.py \
+ test_pgrep.py \
+ test_phing.py \
+ test_pidof.py \
+ test_pine.py \
+ test_pinfo.py \
+ test_ping.py \
+ test_pkg_config.py \
+ test_pkg_deinstall.py \
+ test_pkg_delete.py \
+ test_pkg_get.py \
+ test_pkg_info.py \
+ test_pkgadd.py \
+ test_pkgrm.py \
+ test_pkgtool.py \
+ test_pkgutil.py \
+ test_pkill.py \
+ test_plague_client.py \
+ test_pm_hibernate.py \
+ test_pm_is_supported.py \
+ test_pm_powersave.py \
+ test_pngfix.py \
+ test_portinstall.py \
+ test_portsnap.py \
+ test_portupgrade.py \
+ test_postcat.py \
+ test_postconf.py \
+ test_postfix.py \
+ test_postmap.py \
+ test_postsuper.py \
+ test_povray.py \
+ test_pr.py \
+ test_prelink.py \
+ test_protoc.py \
+ test_psql.py \
+ test_ptx.py \
+ test_puppet.py \
+ test_pushd.py \
+ test_pv.py \
+ test_pvchange.py \
+ test_pvcreate.py \
+ test_pvdisplay.py \
+ test_pvmove.py \
+ test_pvremove.py \
+ test_pvs.py \
+ test_pvscan.py \
+ test_pwck.py \
+ test_pwd.py \
+ test_pwdx.py \
+ test_pwgen.py \
+ test_pycodestyle.py \
+ test_pydoc.py \
+ test_pydocstyle.py \
+ test_pyflakes.py \
+ test_pylint.py \
+ test_pylint_3.py \
+ test_pytest.py \
+ test_python.py \
+ test_python3.py \
+ test_pyvenv.py \
+ test_qemu.py \
+ test_qrunner.py \
+ test_querybts.py \
+ test_quota.py \
+ test_quotacheck.py \
+ test_quotaon.py \
+ test_radvdump.py \
+ test_rcs.py \
+ test_rcsdiff.py \
+ test_rdesktop.py \
+ test_rdict.py \
+ test_readelf.py \
+ test_readonly.py \
+ test_remove_members.py \
+ test_removepkg.py \
+ test_renice.py \
+ test_repomanage.py \
+ test_reportbug.py \
+ test_reptyr.py \
+ test_resolvconf.py \
+ test_rfcomm.py \
+ test_rfkill.py \
+ test_ri.py \
+ test_rlog.py \
+ test_rm.py \
+ test_rmdir.py \
+ test_rmlist.py \
+ test_rmmod.py \
+ test_route.py \
+ test_rpcdebug.py \
+ test_rpm.py \
+ test_rpm2tgz.py \
+ test_rpmbuild.py \
+ test_rrdtool.py \
+ test_rsync.py \
+ test_rtcwake.py \
+ test_runuser.py \
+ test_sbcl.py \
+ test_sbcl_mt.py \
+ test_sbopkg.py \
+ test_screen.py \
+ test_scrub.py \
+ test_sdptool.py \
+ test_sed.py \
+ test_seq.py \
+ test_service.py \
+ test_set.py \
+ test_setquota.py \
+ test_sftp.py \
+ test_sh.py \
+ test_sha1sum.py \
+ test_shar.py \
+ test_shellcheck.py \
+ test_sitecopy.py \
+ test_slackpkg.py \
+ test_slapt_get.py \
+ test_slapt_src.py \
+ test_smartctl.py \
+ test_smbcacls.py \
+ test_smbclient.py \
+ test_smbcquotas.py \
+ test_smbget.py \
+ test_smbpasswd.py \
+ test_smbtar.py \
+ test_smbtree.py \
+ test_snownews.py \
+ test_sort.py \
+ test_split.py \
+ test_spovray.py \
+ test_sqlite3.py \
+ test_ss.py \
+ test_ssh.py \
+ test_ssh_add.py \
+ test_ssh_copy_id.py \
+ test_ssh_keygen.py \
+ test_sshfs.py \
+ test_sshmitm.py \
+ test_sshow.py \
+ test_strace.py \
+ test_stream.py \
+ test_strings.py \
+ test_strip.py \
+ test_su.py \
+ test_sudo.py \
+ test_svcadm.py \
+ test_svk.py \
+ test_svn.py \
+ test_svnadmin.py \
+ test_svnlook.py \
+ test_sync_members.py \
+ test_synclient.py \
+ test_sysbench.py \
+ test_sysctl.py \
+ test_tac.py \
+ test_tail.py \
+ test_tar.py \
+ test_tcpdump.py \
+ test_tcpkill.py \
+ test_tcpnice.py \
+ test_tee.py \
+ test_texindex.py \
+ test_tightvncviewer.py \
+ test_time.py \
+ test_timeout.py \
+ test_tipc.py \
+ test_touch.py \
+ test_tox.py \
+ test_tr.py \
+ test_tracepath.py \
+ test_tshark.py \
+ test_tune2fs.py \
+ test_udevadm.py \
+ test_ulimit.py \
+ test_umount.py \
+ test_unace.py \
+ test_uname.py \
+ test_unexpand.py \
+ test_uniq.py \
+ test_units.py \
+ test_unpack200.py \
+ test_unrar.py \
+ test_unset.py \
+ test_unshunt.py \
+ test_update_alternatives.py \
+ test_update_rc_d.py \
+ test_upgradepkg.py \
+ test_urlsnarf.py \
+ test_uscan.py \
+ test_useradd.py \
+ test_userdel.py \
+ test_usermod.py \
+ test_valgrind.py \
+ test_vdir.py \
+ test_vgcfgbackup.py \
+ test_vgcfgrestore.py \
+ test_vgchange.py \
+ test_vgck.py \
+ test_vgconvert.py \
+ test_vgcreate.py \
+ test_vgdisplay.py \
+ test_vgexport.py \
+ test_vgextend.py \
+ test_vgimport.py \
+ test_vgmerge.py \
+ test_vgmknodes.py \
+ test_vgreduce.py \
+ test_vgremove.py \
+ test_vgrename.py \
+ test_vgs.py \
+ test_vgscan.py \
+ test_vgsplit.py \
+ test_vi.py \
+ test_vipw.py \
+ test_vmstat.py \
+ test_vncviewer.py \
+ test_vpnc.py \
+ test_watch.py \
+ test_wc.py \
+ test_webmitm.py \
+ test_wget.py \
+ test_who.py \
+ test_wine.py \
+ test_withlist.py \
+ test_wodim.py \
+ test_wol.py \
+ test_write.py \
+ test_wsimport.py \
+ test_wtf.py \
+ test_wvdial.py \
+ test_xdg_mime.py \
+ test_xdg_settings.py \
+ test_xfreerdp.py \
+ test_xgamma.py \
+ test_xm.py \
+ test_xmllint.py \
+ test_xmlwf.py \
+ test_xmms.py \
+ test_xmodmap.py \
+ test_xpovray.py \
+ test_xrandr.py \
+ test_xrdb.py \
+ test_xsltproc.py \
+ test_xvnc4viewer.py \
+ test_xxd.py \
+ test_xz.py \
+ test_xzdec.py \
+ test_ypcat.py \
+ test_ypmatch.py \
+ test_yum.py \
+ test_yum_arch.py \
+ test_zopfli.py \
+ test_zopflipng.py
+
+all:
+
+PYTEST = pytest
+
+check-local:
+ $(PYTEST) $(PYTESTFLAGS) $(srcdir)
+
+clean-local:
+ $(RM) -R __pycache__
diff --git a/test/t/conftest.py b/test/t/conftest.py
new file mode 100644
index 00000000..0969a313
--- /dev/null
+++ b/test/t/conftest.py
@@ -0,0 +1,461 @@
+import difflib
+import os
+import re
+import shlex
+from typing import Iterable, List, Optional, Tuple, Union
+
+import pexpect
+import pytest
+
+
+PS1 = "/@"
+MAGIC_MARK = "__MaGiC-maRKz!__"
+
+
+def find_unique_completion_pair(
+ items: Iterable[str]
+) -> Optional[Tuple[str, str]]:
+ result = None
+ bestscore = 0
+ sitems = sorted(set(items))
+ for i in range(len(sitems)):
+ cur = sitems[i]
+ curlen = len(cur)
+ prv = sitems[i - 1] if i != 0 else ""
+ prvlen = len(prv)
+ nxt = sitems[i + 1] if i < len(sitems) - 1 else ""
+ nxtlen = len(nxt)
+ diffprv = prv == ""
+ diffnxt = nxt == ""
+ # Analyse each item of the list and look for the minimum length of the
+ # partial prefix which is distinct from both nxt and prv. The list
+ # is sorted so the prefix will be unique in the entire list.
+ for j in range(curlen):
+ curchar = cur[j]
+ if not diffprv and (j >= prvlen or prv[j] != curchar):
+ diffprv = True
+ if not diffnxt and (j >= nxtlen or nxt[j] != curchar):
+ diffnxt = True
+ if diffprv and diffnxt:
+ break
+ # At the end of the loop, j is the index of last character of
+ # the unique partial prefix. The length is one plus that.
+ parlen = j + 1
+ if parlen >= curlen:
+ continue
+ # Try to find the most "readable pair"; look for a long pair where
+ # part is about half of full.
+ if parlen < curlen / 2:
+ parlen = int(curlen / 2)
+ score = curlen - parlen
+ if score > bestscore:
+ bestscore = score
+ result = (cur[:parlen], cur)
+ return result
+
+
+@pytest.fixture(scope="class")
+def part_full_user(bash: pexpect.spawn) -> Optional[Tuple[str, str]]:
+ res = (
+ assert_bash_exec(bash, "compgen -u", want_output=True).strip().split()
+ )
+ pair = find_unique_completion_pair(res)
+ if not pair:
+ pytest.skip("No suitable test user found")
+ return pair
+
+
+@pytest.fixture(scope="class")
+def part_full_group(bash: pexpect.spawn) -> Optional[Tuple[str, str]]:
+ res = (
+ assert_bash_exec(bash, "compgen -g", want_output=True).strip().split()
+ )
+ pair = find_unique_completion_pair(res)
+ if not pair:
+ pytest.skip("No suitable test user found")
+ return pair
+
+
+@pytest.fixture(scope="class")
+def bash(request) -> pexpect.spawn:
+
+ logfile = None
+ if os.environ.get("BASHCOMP_TEST_LOGFILE"):
+ logfile = open(os.environ.get("BASHCOMP_TEST_LOGFILE"), "w")
+ testdir = os.path.abspath(
+ os.path.join(os.path.dirname(__file__), os.pardir)
+ )
+ env = os.environ.copy()
+ env.update(
+ dict(
+ SRCDIR=testdir, # TODO needed at least by bashrc
+ SRCDIRABS=testdir, # TODO needed?
+ PS1=PS1,
+ INPUTRC="%s/config/inputrc" % testdir,
+ TERM="dumb",
+ BASH_COMPLETION_COMPAT_DIR="%s/fixtures/shared/empty_dir"
+ % testdir,
+ LC_COLLATE="C", # to match Python's default locale unaware sort
+ )
+ )
+
+ fixturesdir = os.path.join(testdir, "fixtures")
+ os.chdir(fixturesdir)
+
+ # Start bash
+ bash = pexpect.spawn(
+ "%s --norc" % os.environ.get("BASHCOMP_TEST_BASH", "bash"),
+ maxread=os.environ.get("BASHCOMP_TEST_PEXPECT_MAXREAD", 20000),
+ logfile=logfile,
+ cwd=fixturesdir,
+ env=env,
+ encoding="utf-8", # TODO? or native or...?
+ # FIXME: Tests shouldn't depend on dimensions, but it's difficult to
+ # expect robustly enough for Bash to wrap lines anywhere (e.g. inside
+ # MAGIC_MARK). Increase window width to reduce wrapping.
+ dimensions=(24, 160),
+ # TODO? codec_errors="replace",
+ )
+ bash.expect_exact(PS1)
+
+ # Load bashrc and bash_completion
+ assert_bash_exec(bash, "source '%s/config/bashrc'" % testdir)
+ assert_bash_exec(bash, "source '%s/../bash_completion'" % testdir)
+
+ # Use command name from marker if set, or grab from test filename
+ cmd = None
+ cmd_found = False
+ marker = request.node.get_closest_marker("bashcomp")
+ if marker:
+ cmd = marker.kwargs.get("cmd")
+ cmd_found = "cmd" in marker.kwargs
+ # Run pre-test commands, early so they're usable in skipif
+ for pre_cmd in marker.kwargs.get("pre_cmds", []):
+ assert_bash_exec(bash, pre_cmd)
+ # Process skip conditions
+ skipif = marker.kwargs.get("skipif")
+ if skipif:
+ try:
+ assert_bash_exec(bash, skipif)
+ except AssertionError:
+ pass
+ else:
+ bash.close()
+ pytest.skip(skipif)
+ return
+ if not cmd_found:
+ match = re.search(
+ r"^test_(.+)\.py$", os.path.basename(str(request.fspath))
+ )
+ if match:
+ cmd = match.group(1)
+
+ if (cmd_found and cmd is None) or is_testable(bash, cmd):
+ before_env = get_env(bash)
+ yield bash
+ # Not exactly sure why, but some errors leave bash in state where
+ # getting the env here would fail and trash our test output. So
+ # reset to a good state first (Ctrl+C, expect prompt).
+ bash.sendintr()
+ bash.expect_exact(PS1)
+ diff_env(
+ before_env,
+ get_env(bash),
+ marker.kwargs.get("ignore_env") if marker else "",
+ )
+
+ if marker:
+ for post_cmd in marker.kwargs.get("post_cmds", []):
+ assert_bash_exec(bash, post_cmd)
+
+ # Clean up
+ bash.close()
+ if logfile:
+ logfile.close()
+
+
+def is_testable(bash: pexpect.spawn, cmd: str) -> bool:
+ if not cmd:
+ pytest.fail("Could not resolve name of command to test")
+ return False
+ if not is_bash_type(bash, cmd):
+ pytest.skip("Command %s not found" % cmd)
+ return False
+ if not load_completion_for(bash, cmd):
+ pytest.skip("No completion for command %s" % cmd)
+ return False
+ return True
+
+
+def is_bash_type(bash: pexpect.spawn, cmd: str) -> bool:
+ typecmd = "type %s &>/dev/null && echo -n 0 || echo -n 1" % cmd
+ bash.sendline(typecmd)
+ bash.expect_exact(typecmd + "\r\n")
+ result = bash.expect_exact(["0", "1"]) == 0
+ bash.expect_exact(PS1)
+ return result
+
+
+def load_completion_for(bash: pexpect.spawn, cmd: str) -> bool:
+ try:
+ # Allow __load_completion to fail so we can test completions
+ # that are directly loaded in bash_completion without a separate file.
+ assert_bash_exec(bash, "__load_completion %s || :" % cmd)
+ assert_bash_exec(bash, "complete -p %s &>/dev/null" % cmd)
+ except AssertionError:
+ return False
+ return True
+
+
+def assert_bash_exec(
+ bash: pexpect.spawn, cmd: str, want_output: bool = False
+) -> str:
+
+ # Send command
+ bash.sendline(cmd)
+ bash.expect_exact(cmd)
+
+ # Find prompt, output is before it
+ bash.expect_exact("\r\n" + PS1)
+ output = bash.before
+
+ # Retrieve exit status
+ echo = "echo $?"
+ bash.sendline(echo)
+ got = bash.expect(
+ [
+ r"^%s\r\n(\d+)\r\n%s" % (re.escape(echo), re.escape(PS1)),
+ PS1,
+ pexpect.EOF,
+ pexpect.TIMEOUT,
+ ]
+ )
+ status = bash.match.group(1) if got == 0 else "unknown"
+
+ assert status == "0", 'Error running "%s": exit status=%s, output="%s"' % (
+ cmd,
+ status,
+ output,
+ )
+ if output:
+ assert want_output, (
+ 'Unexpected output from "%s": exit status=%s, output="%s"'
+ % (cmd, status, output)
+ )
+ else:
+ assert not want_output, (
+ 'Expected output from "%s": exit status=%s, output="%s"'
+ % (cmd, status, output)
+ )
+
+ return output
+
+
+def get_env(bash: pexpect.spawn) -> List[str]:
+ return (
+ assert_bash_exec(
+ bash,
+ "{ (set -o posix ; set); declare -F; shopt -p; set -o; }",
+ want_output=True,
+ )
+ .strip()
+ .splitlines()
+ )
+
+
+def diff_env(before: List[str], after: List[str], ignore: str):
+ diff = [
+ x
+ for x in difflib.unified_diff(before, after, n=0, lineterm="")
+ # Remove unified diff markers:
+ if not re.search(r"^(---|\+\+\+|@@ )", x)
+ # Ignore variables expected to change:
+ and not re.search("^[-+](_|PPID|BASH_REMATCH|OLDPWD)=", x)
+ # Ignore likely completion functions added by us:
+ and not re.search(r"^\+declare -f _.+", x)
+ # ...and additional specified things:
+ and not re.search(ignore or "^$", x)
+ ]
+ # For some reason, COMP_WORDBREAKS gets added to the list after
+ # saving. Remove its changes, and note that it may take two lines.
+ for i in range(0, len(diff)):
+ if re.match("^[-+]COMP_WORDBREAKS=", diff[i]):
+ if i < len(diff) and not re.match(r"^\+[\w]+=", diff[i + 1]):
+ del diff[i + 1]
+ del diff[i]
+ break
+ assert not diff, "Environment should not be modified"
+
+
+class CompletionResult:
+ """
+ Class to hold completion results.
+ """
+
+ def __init__(self, output: str, items: Optional[Iterable[str]] = None):
+ """
+ When items are specified, they are used as the base for comparisons
+ provided by this class. When not, regular expressions are used instead.
+ This is because it is not always possible to unambiguously split a
+ completion output string into individual items, for example when the
+ items contain whitespace.
+
+ :param output: All completion output as-is.
+ :param items: Completions as individual items. Should be specified
+ only in cases where the completions are robustly known to be
+ exactly the specified ones.
+ """
+ self.output = output
+ self._items = None if items is None else sorted(items)
+
+ def endswith(self, suffix: str) -> bool:
+ return self.output.endswith(suffix)
+
+ def __eq__(self, expected: Union[str, Iterable[str]]) -> bool:
+ """
+ Returns True if completion contains expected items, and no others.
+
+ Defining __eq__ this way is quite ugly, but facilitates concise
+ testing code.
+ """
+ expiter = [expected] if isinstance(expected, str) else sorted(expected)
+ if self._items is not None:
+ return self._items == expiter
+ return bool(
+ re.match(
+ r"^\s*" + r"\s+".join(re.escape(x) for x in expiter) + r"\s*$",
+ self.output,
+ )
+ )
+
+ def __contains__(self, item: str) -> bool:
+ if self._items is not None:
+ return item in self._items
+ return bool(
+ re.search(r"(^|\s)%s(\s|$)" % re.escape(item), self.output)
+ )
+
+ def __iter__(self) -> Iterable[str]:
+ """
+ Note that iteration over items may not be accurate when items were not
+ specified to the constructor, if individual items in the output contain
+ whitespace. In those cases, it errs on the side of possibly returning
+ more items than there actually are, and intends to never return fewer.
+ """
+ return iter(
+ self._items
+ if self._items is not None
+ else re.split(r" {2,}|\r\n", self.output.strip())
+ )
+
+ def __len__(self) -> int:
+ """
+ Uses __iter__, see caveat in it. While possibly inaccurate, this is
+ good enough for truthiness checks.
+ """
+ return len(list(iter(self)))
+
+ def __repr__(self) -> str:
+ return "<CompletionResult %s>" % list(self)
+
+
+def assert_complete(
+ bash: pexpect.spawn, cmd: str, **kwargs
+) -> CompletionResult:
+ skipif = kwargs.get("skipif")
+ if skipif:
+ try:
+ assert_bash_exec(bash, skipif)
+ except AssertionError:
+ pass
+ else:
+ pytest.skip(skipif)
+ return CompletionResult("", [])
+ cwd = kwargs.get("cwd")
+ if cwd:
+ assert_bash_exec(bash, "cd '%s'" % cwd)
+ env_prefix = "_BASHCOMP_TEST_"
+ env = kwargs.get("env", {})
+ if env:
+ # Back up environment and apply new one
+ assert_bash_exec(
+ bash,
+ " ".join('%s%s="$%s"' % (env_prefix, k, k) for k in env.keys()),
+ )
+ assert_bash_exec(
+ bash,
+ "export %s" % " ".join("%s=%s" % (k, v) for k, v in env.items()),
+ )
+ bash.send(cmd + "\t")
+ bash.expect_exact(cmd)
+ bash.send(MAGIC_MARK)
+ got = bash.expect(
+ [
+ # 0: multiple lines, result in .before
+ r"\r\n" + re.escape(PS1 + cmd) + ".*" + MAGIC_MARK,
+ # 1: no completion
+ r"^" + MAGIC_MARK,
+ # 2: on same line, result in .match
+ r"^([^\r]+)%s$" % MAGIC_MARK,
+ pexpect.EOF,
+ pexpect.TIMEOUT,
+ ]
+ )
+ if got == 0:
+ output = bash.before
+ if output.endswith(MAGIC_MARK):
+ output = bash.before[: -len(MAGIC_MARK)]
+ result = CompletionResult(output)
+ elif got == 2:
+ output = bash.match.group(1)
+ result = CompletionResult(output, [shlex.split(cmd + output)[-1]])
+ else:
+ # TODO: warn about EOF/TIMEOUT?
+ result = CompletionResult("", [])
+ bash.sendintr()
+ bash.expect_exact(PS1)
+ if env:
+ # Restore environment, and clean up backup
+ # TODO: Test with declare -p if a var was set, backup only if yes, and
+ # similarly restore only backed up vars. Should remove some need
+ # for ignore_env.
+ assert_bash_exec(
+ bash,
+ "export %s"
+ % " ".join('%s="$%s%s"' % (k, env_prefix, k) for k in env.keys()),
+ )
+ assert_bash_exec(
+ bash,
+ "unset -v %s"
+ % " ".join("%s%s" % (env_prefix, k) for k in env.keys()),
+ )
+ if cwd:
+ assert_bash_exec(bash, "cd - >/dev/null")
+ return result
+
+
+@pytest.fixture
+def completion(request, bash: pexpect.spawn) -> CompletionResult:
+ marker = request.node.get_closest_marker("complete")
+ if not marker:
+ return CompletionResult("", [])
+ for pre_cmd in marker.kwargs.get("pre_cmds", []):
+ assert_bash_exec(bash, pre_cmd)
+ return assert_complete(bash, marker.args[0], **marker.kwargs)
+
+
+def in_docker() -> bool:
+ return os.path.exists("/.dockerenv")
+
+
+class TestUnitBase:
+ def _test_unit(
+ self, func, bash, comp_words, comp_cword, comp_line, comp_point, arg=""
+ ):
+ assert_bash_exec(
+ bash,
+ "COMP_WORDS=%s COMP_CWORD=%d COMP_LINE=%s COMP_POINT=%d"
+ % (comp_words, comp_cword, shlex.quote(comp_line), comp_point),
+ )
+ output = assert_bash_exec(bash, func % arg, want_output=True)
+ return output.strip()
diff --git a/test/t/test_2to3.py b/test/t/test_2to3.py
new file mode 100644
index 00000000..966ed1f5
--- /dev/null
+++ b/test/t/test_2to3.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class Test2to3:
+ @pytest.mark.complete("2to3 ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_7z.py b/test/t/test_7z.py
new file mode 100644
index 00000000..7d68c7b2
--- /dev/null
+++ b/test/t/test_7z.py
@@ -0,0 +1,34 @@
+import pytest
+
+
+class Test7z:
+ @pytest.mark.complete("7z ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("7z a ar -tzi")
+ def test_2(self, completion):
+ assert completion == "-tzip"
+
+ @pytest.mark.xfail # TODO: whitespace split issue
+ @pytest.mark.complete(r"7z x -wa\ ", cwd="_filedir")
+ def test_3(self, completion):
+ assert completion == r"-wa\ b/"
+ assert not completion.endswith(" ")
+
+ @pytest.mark.complete("7z x ", cwd="7z")
+ def test_4(self, completion):
+ assert completion == "a.7z"
+
+ @pytest.mark.complete("7z d a.7z ", cwd="7z")
+ def test_5(self, completion):
+ assert completion == "abc"
+
+ @pytest.mark.complete("7z a -air@", cwd="7z")
+ def test_6(self, completion):
+ assert completion == sorted("-air@a.7z -air@f.txt".split())
+
+ @pytest.mark.complete("7z a -o")
+ def test_7(self, completion):
+ assert "-o7z/" in completion
+ assert all(x.endswith("/") for x in completion)
diff --git a/test/t/test_a2ps.py b/test/t/test_a2ps.py
new file mode 100644
index 00000000..9d885461
--- /dev/null
+++ b/test/t/test_a2ps.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestA2ps:
+ @pytest.mark.complete("a2ps ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_a2x.py b/test/t/test_a2x.py
new file mode 100644
index 00000000..3741e28d
--- /dev/null
+++ b/test/t/test_a2x.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestA2x:
+ @pytest.mark.complete("a2x ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_abook.py b/test/t/test_abook.py
new file mode 100644
index 00000000..1df910cf
--- /dev/null
+++ b/test/t/test_abook.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestAbook:
+ @pytest.mark.complete("abook -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_aclocal.py b/test/t/test_aclocal.py
new file mode 100644
index 00000000..cb3aca1b
--- /dev/null
+++ b/test/t/test_aclocal.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestAclocal:
+ @pytest.mark.complete("aclocal ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_acpi.py b/test/t/test_acpi.py
new file mode 100644
index 00000000..8da4eaf4
--- /dev/null
+++ b/test/t/test_acpi.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestAcpi:
+ @pytest.mark.complete("acpi -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_acroread.py b/test/t/test_acroread.py
new file mode 100644
index 00000000..471b93c2
--- /dev/null
+++ b/test/t/test_acroread.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestAcroread:
+ @pytest.mark.complete("acroread ", cwd="fixtures/acroread")
+ def test_1(self, completion):
+ assert completion == "foo.d/ t.pdf".split()
diff --git a/test/t/test_adb.py b/test/t/test_adb.py
new file mode 100644
index 00000000..081a1047
--- /dev/null
+++ b/test/t/test_adb.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestAdb:
+ @pytest.mark.complete("adb ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_add_members.py b/test/t/test_add_members.py
new file mode 100644
index 00000000..095a5ded
--- /dev/null
+++ b/test/t/test_add_members.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestAddMembers:
+ @pytest.mark.complete("add_members -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_alias.py b/test/t/test_alias.py
new file mode 100644
index 00000000..da9ecc33
--- /dev/null
+++ b/test/t/test_alias.py
@@ -0,0 +1,17 @@
+import pytest
+
+
+@pytest.mark.bashcomp(
+ pre_cmds=("unalias -a", "alias foo=bar", "alias bar='foo foo'"),
+ post_cmds=("unalias -a",),
+)
+class TestAlias:
+ @pytest.mark.complete("alias ")
+ def test_1(self, completion):
+ assert completion == "bar foo".split()
+
+ @pytest.mark.xfail # TODO: Would like this completion to work
+ @pytest.mark.complete("alias foo=")
+ def test_2(self, completion):
+ assert completion == "foo='bar'"
+ assert not completion.endswith(" ")
diff --git a/test/t/test_alpine.py b/test/t/test_alpine.py
new file mode 100644
index 00000000..a8a83a0b
--- /dev/null
+++ b/test/t/test_alpine.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestAlpine:
+ @pytest.mark.complete("alpine -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_animate.py b/test/t/test_animate.py
new file mode 100644
index 00000000..2103606e
--- /dev/null
+++ b/test/t/test_animate.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestAnimate:
+ @pytest.mark.complete("animate ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_ant.py b/test/t/test_ant.py
new file mode 100644
index 00000000..e18b6eb4
--- /dev/null
+++ b/test/t/test_ant.py
@@ -0,0 +1,26 @@
+import pytest
+
+
+@pytest.mark.bashcomp(ignore_env=r"^\+ANT_ARGS=")
+class TestAnt:
+ @pytest.mark.complete("ant -")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("ant ", cwd="ant")
+ def test_2(self, completion):
+ assert completion == "bashcomp clean init realclean".split()
+
+ @pytest.mark.complete("ant -f build-with-import.xml ", cwd="ant")
+ def test_3(self, completion):
+ assert completion == "build-with-import imported-build".split()
+
+ @pytest.mark.complete(
+ "ant ", cwd="ant", env=dict(ANT_ARGS="'-f named-build.xml'")
+ )
+ def test_4(self, completion):
+ assert completion == "named-build"
+
+ @pytest.mark.complete("ant -l ")
+ def test_5(self, completion):
+ assert completion
diff --git a/test/t/test_apache2ctl.py b/test/t/test_apache2ctl.py
new file mode 100644
index 00000000..856a0e4d
--- /dev/null
+++ b/test/t/test_apache2ctl.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestApache2ctl:
+ @pytest.mark.complete("apache2ctl ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_appdata_validate.py b/test/t/test_appdata_validate.py
new file mode 100644
index 00000000..d57aa992
--- /dev/null
+++ b/test/t/test_appdata_validate.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="appdata-validate")
+class TestAppdataValidate:
+ @pytest.mark.complete("appdata-validate ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_apt_build.py b/test/t/test_apt_build.py
new file mode 100644
index 00000000..8346e110
--- /dev/null
+++ b/test/t/test_apt_build.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="apt-build")
+class TestAptBuild:
+ @pytest.mark.complete("apt-build ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_apt_cache.py b/test/t/test_apt_cache.py
new file mode 100644
index 00000000..0cb50ef6
--- /dev/null
+++ b/test/t/test_apt_cache.py
@@ -0,0 +1,13 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="apt-cache")
+class TestAptCache:
+ @pytest.mark.complete("apt-cache ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("apt-cache showsrc [")
+ def test_2(self, completion):
+ # Doesn't actually fail on grep errors, but takes a long time.
+ assert not completion
diff --git a/test/t/test_apt_get.py b/test/t/test_apt_get.py
new file mode 100644
index 00000000..ccdff6cd
--- /dev/null
+++ b/test/t/test_apt_get.py
@@ -0,0 +1,12 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="apt-get")
+class TestAptGet:
+ @pytest.mark.complete("apt-get ")
+ def test_1(self, completion):
+ assert all(x in completion for x in "install update".split())
+
+ @pytest.mark.complete("apt-get install ./", cwd="dpkg")
+ def test_2(self, completion):
+ assert completion == "./bash-completion-test-subject.deb"
diff --git a/test/t/test_aptitude.py b/test/t/test_aptitude.py
new file mode 100644
index 00000000..c59c3580
--- /dev/null
+++ b/test/t/test_aptitude.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestAptitude:
+ @pytest.mark.complete("aptitude ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_arch.py b/test/t/test_arch.py
new file mode 100644
index 00000000..69e0b1ae
--- /dev/null
+++ b/test/t/test_arch.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(pre_cmds=("PATH=/usr/lib/mailman/bin:$PATH",))
+class TestArch:
+ @pytest.mark.complete("arch -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_arp.py b/test/t/test_arp.py
new file mode 100644
index 00000000..35963d75
--- /dev/null
+++ b/test/t/test_arp.py
@@ -0,0 +1,14 @@
+import pytest
+
+from conftest import in_docker
+
+
+class TestArp:
+ @pytest.mark.xfail(in_docker(), reason="Probably fails in docker")
+ @pytest.mark.complete("arp ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("arp -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_arping.py b/test/t/test_arping.py
new file mode 100644
index 00000000..850344be
--- /dev/null
+++ b/test/t/test_arping.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestArping:
+ @pytest.mark.complete("arping ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("arping -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_arpspoof.py b/test/t/test_arpspoof.py
new file mode 100644
index 00000000..9fcf20b7
--- /dev/null
+++ b/test/t/test_arpspoof.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestArpspoof:
+ @pytest.mark.complete("arpspoof -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_asciidoc.py b/test/t/test_asciidoc.py
new file mode 100644
index 00000000..b295a27d
--- /dev/null
+++ b/test/t/test_asciidoc.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestAsciidoc:
+ @pytest.mark.complete("asciidoc ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_aspell.py b/test/t/test_aspell.py
new file mode 100644
index 00000000..b7a03c41
--- /dev/null
+++ b/test/t/test_aspell.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestAspell:
+ @pytest.mark.complete("aspell ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_autoconf.py b/test/t/test_autoconf.py
new file mode 100644
index 00000000..9b98b625
--- /dev/null
+++ b/test/t/test_autoconf.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestAutoconf:
+ @pytest.mark.complete("autoconf ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_autoheader.py b/test/t/test_autoheader.py
new file mode 100644
index 00000000..57ad8af1
--- /dev/null
+++ b/test/t/test_autoheader.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestAutoheader:
+ @pytest.mark.complete("autoheader ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_automake.py b/test/t/test_automake.py
new file mode 100644
index 00000000..5d25c6a7
--- /dev/null
+++ b/test/t/test_automake.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestAutomake:
+ @pytest.mark.complete("automake ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_autoreconf.py b/test/t/test_autoreconf.py
new file mode 100644
index 00000000..10e2a2e8
--- /dev/null
+++ b/test/t/test_autoreconf.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestAutoreconf:
+ @pytest.mark.complete("autoreconf ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_autorpm.py b/test/t/test_autorpm.py
new file mode 100644
index 00000000..185585e0
--- /dev/null
+++ b/test/t/test_autorpm.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestAutorpm:
+ @pytest.mark.complete("autorpm ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_autoscan.py b/test/t/test_autoscan.py
new file mode 100644
index 00000000..b2667543
--- /dev/null
+++ b/test/t/test_autoscan.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestAutoscan:
+ @pytest.mark.complete("autoscan ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_autoupdate.py b/test/t/test_autoupdate.py
new file mode 100644
index 00000000..13fd8d4d
--- /dev/null
+++ b/test/t/test_autoupdate.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestAutoupdate:
+ @pytest.mark.complete("autoupdate ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_avctrl.py b/test/t/test_avctrl.py
new file mode 100644
index 00000000..6ff1ec38
--- /dev/null
+++ b/test/t/test_avctrl.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestAvctrl:
+ @pytest.mark.complete("avctrl ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_awk.py b/test/t/test_awk.py
new file mode 100644
index 00000000..ad2034d1
--- /dev/null
+++ b/test/t/test_awk.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestAwk:
+ @pytest.mark.complete("awk ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_badblocks.py b/test/t/test_badblocks.py
new file mode 100644
index 00000000..57a559de
--- /dev/null
+++ b/test/t/test_badblocks.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestBadblocks:
+ @pytest.mark.complete("badblocks ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_base64.py b/test/t/test_base64.py
new file mode 100644
index 00000000..efc35ebb
--- /dev/null
+++ b/test/t/test_base64.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestBase64:
+ @pytest.mark.complete("base64 ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_bash.py b/test/t/test_bash.py
new file mode 100644
index 00000000..d6e6959a
--- /dev/null
+++ b/test/t/test_bash.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestBash:
+ @pytest.mark.complete("bash --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_bc.py b/test/t/test_bc.py
new file mode 100644
index 00000000..effcbaea
--- /dev/null
+++ b/test/t/test_bc.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestBc:
+ @pytest.mark.complete("bc --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_bind.py b/test/t/test_bind.py
new file mode 100644
index 00000000..f97a246e
--- /dev/null
+++ b/test/t/test_bind.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestBind:
+ @pytest.mark.complete("bind -")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("bind k")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_bison.py b/test/t/test_bison.py
new file mode 100644
index 00000000..47c4908c
--- /dev/null
+++ b/test/t/test_bison.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestBison:
+ @pytest.mark.complete("bison --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_bk.py b/test/t/test_bk.py
new file mode 100644
index 00000000..8ab44b68
--- /dev/null
+++ b/test/t/test_bk.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestBk:
+ @pytest.mark.complete("bk ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_brctl.py b/test/t/test_brctl.py
new file mode 100644
index 00000000..7c773e97
--- /dev/null
+++ b/test/t/test_brctl.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestBrctl:
+ @pytest.mark.complete("brctl ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_btdownloadcurses_py.py b/test/t/test_btdownloadcurses_py.py
new file mode 100644
index 00000000..0b65519a
--- /dev/null
+++ b/test/t/test_btdownloadcurses_py.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="btdownloadcurses.py")
+class TestBtdownloadcursesPy:
+ @pytest.mark.complete("btdownloadcurses.py ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_btdownloadgui_py.py b/test/t/test_btdownloadgui_py.py
new file mode 100644
index 00000000..c1b1b38a
--- /dev/null
+++ b/test/t/test_btdownloadgui_py.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="btdownloadgui.py")
+class TestBtdownloadguiPy:
+ @pytest.mark.complete("btdownloadgui.py ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_btdownloadheadless_py.py b/test/t/test_btdownloadheadless_py.py
new file mode 100644
index 00000000..f84592fa
--- /dev/null
+++ b/test/t/test_btdownloadheadless_py.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="btdownloadheadless.py")
+class TestBtdownloadheadlessPy:
+ @pytest.mark.complete("btdownloadheadless.py ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_bts.py b/test/t/test_bts.py
new file mode 100644
index 00000000..53dd62fc
--- /dev/null
+++ b/test/t/test_bts.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestBts:
+ @pytest.mark.complete("bts ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("bts -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_bzip2.py b/test/t/test_bzip2.py
new file mode 100644
index 00000000..d1cad249
--- /dev/null
+++ b/test/t/test_bzip2.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestBzip2:
+ @pytest.mark.complete("bzip2 ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("bzip2 ~")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_cal.py b/test/t/test_cal.py
new file mode 100644
index 00000000..27102c7a
--- /dev/null
+++ b/test/t/test_cal.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestCal:
+ @pytest.mark.complete("cal ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_cancel.py b/test/t/test_cancel.py
new file mode 100644
index 00000000..4aeafd2c
--- /dev/null
+++ b/test/t/test_cancel.py
@@ -0,0 +1,34 @@
+import pytest
+
+from conftest import assert_bash_exec
+
+
+class TestCancel:
+ @pytest.fixture(scope="class")
+ def added_job(self, request, bash):
+ try:
+ got = (
+ assert_bash_exec(
+ bash, "lp -H hold shared/default/foo", want_output=True
+ )
+ .strip()
+ .split()
+ )
+ except AssertionError:
+ pytest.skip("Could not add test print job")
+ return
+ if len(got) > 3:
+ request.addfinalizer(
+ lambda: assert_bash_exec(bash, "cancel %s" % got[3])
+ )
+
+ @pytest.mark.complete("cancel ")
+ def test_1(self, bash, completion, added_job):
+ got = (
+ assert_bash_exec(
+ bash, "lpstat | awk '{print $1}'", want_output=True
+ )
+ .strip()
+ .split()
+ )
+ assert completion == sorted(got)
diff --git a/test/t/test_cardctl.py b/test/t/test_cardctl.py
new file mode 100644
index 00000000..df28b6bd
--- /dev/null
+++ b/test/t/test_cardctl.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestCardctl:
+ @pytest.mark.complete("cardctl ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_cat.py b/test/t/test_cat.py
new file mode 100644
index 00000000..94245e8f
--- /dev/null
+++ b/test/t/test_cat.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestCat:
+ @pytest.mark.complete("cat ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_cc.py b/test/t/test_cc.py
new file mode 100644
index 00000000..12f6b2b5
--- /dev/null
+++ b/test/t/test_cc.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestCc:
+ @pytest.mark.complete("cc ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_ccache.py b/test/t/test_ccache.py
new file mode 100644
index 00000000..573e3e44
--- /dev/null
+++ b/test/t/test_ccache.py
@@ -0,0 +1,27 @@
+import pytest
+
+
+class TestCcache:
+ @pytest.mark.complete("ccache -")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("ccache --clea")
+ def test_2(self, completion):
+ assert all(x in completion for x in "--cleanup --clear".split())
+
+ @pytest.mark.complete("ccache stt")
+ def test_3(self, completion):
+ assert "stty" in completion
+
+ @pytest.mark.complete("ccache --zero-stats stt")
+ def test_4(self, completion):
+ assert "stty" in completion
+
+ @pytest.mark.complete("ccache --hel")
+ def test_5(self, completion):
+ assert "--help" in completion
+
+ @pytest.mark.complete("ccache --zero-stats ls --hel")
+ def test_6(self, completion):
+ assert "--help" in completion
diff --git a/test/t/test_ccze.py b/test/t/test_ccze.py
new file mode 100644
index 00000000..c54a1fa1
--- /dev/null
+++ b/test/t/test_ccze.py
@@ -0,0 +1,19 @@
+import pytest
+
+
+class TestCcze:
+ @pytest.mark.complete("ccze ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("ccze -? ")
+ def test_2(self, completion):
+ assert not completion
+
+ @pytest.mark.complete("ccze -o ")
+ def test_3(self, completion):
+ assert completion
+
+ @pytest.mark.complete("ccze --plugin=")
+ def test_4(self, completion):
+ assert completion
diff --git a/test/t/test_cd.py b/test/t/test_cd.py
new file mode 100644
index 00000000..fd532312
--- /dev/null
+++ b/test/t/test_cd.py
@@ -0,0 +1,22 @@
+import pytest
+
+
+@pytest.mark.bashcomp(ignore_env=r"^\+CDPATH=$")
+class TestCd:
+ @pytest.mark.complete("cd shared/default/")
+ def test_1(self, completion):
+ assert completion == ["bar bar.d/", "foo.d/"]
+
+ @pytest.mark.complete("cd fo", env=dict(CDPATH="shared/default"))
+ def test_2(self, completion):
+ assert completion == "foo.d/"
+
+ @pytest.mark.complete("cd fo")
+ def test_3(self, completion):
+ assert not completion
+
+ @pytest.mark.complete(
+ "cd ", cwd="shared/default/foo.d", env=dict(CDPATH="")
+ )
+ def test_4(self, completion):
+ assert not completion # No subdirs nor CDPATH
diff --git a/test/t/test_cdrecord.py b/test/t/test_cdrecord.py
new file mode 100644
index 00000000..d9d2da1f
--- /dev/null
+++ b/test/t/test_cdrecord.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestCdrecord:
+ @pytest.mark.complete("cdrecord -d")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_cfagent.py b/test/t/test_cfagent.py
new file mode 100644
index 00000000..f4b477bc
--- /dev/null
+++ b/test/t/test_cfagent.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestCfagent:
+ @pytest.mark.complete("cfagent -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_cfrun.py b/test/t/test_cfrun.py
new file mode 100644
index 00000000..a647d76b
--- /dev/null
+++ b/test/t/test_cfrun.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestCfrun:
+ @pytest.mark.complete("cfrun -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_chage.py b/test/t/test_chage.py
new file mode 100644
index 00000000..6ef34435
--- /dev/null
+++ b/test/t/test_chage.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestChage:
+ @pytest.mark.complete("chage ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_change_pw.py b/test/t/test_change_pw.py
new file mode 100644
index 00000000..69909af0
--- /dev/null
+++ b/test/t/test_change_pw.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(pre_cmds=("PATH=/usr/lib/mailman/bin:$PATH",))
+class TestChangePw:
+ @pytest.mark.complete("change_pw -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_check_db.py b/test/t/test_check_db.py
new file mode 100644
index 00000000..a9f4844b
--- /dev/null
+++ b/test/t/test_check_db.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestCheckDb:
+ @pytest.mark.complete("check_db -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_check_perms.py b/test/t/test_check_perms.py
new file mode 100644
index 00000000..813ae4ce
--- /dev/null
+++ b/test/t/test_check_perms.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestCheckPerms:
+ @pytest.mark.complete("check_perms -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_checksec.py b/test/t/test_checksec.py
new file mode 100644
index 00000000..4fce13ff
--- /dev/null
+++ b/test/t/test_checksec.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestChecksec:
+ @pytest.mark.complete("checksec -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_chfn.py b/test/t/test_chfn.py
new file mode 100644
index 00000000..ca719b8e
--- /dev/null
+++ b/test/t/test_chfn.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestChfn:
+ @pytest.mark.complete("chfn ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_chgrp.py b/test/t/test_chgrp.py
new file mode 100644
index 00000000..87a583e7
--- /dev/null
+++ b/test/t/test_chgrp.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestChgrp:
+ @pytest.mark.complete("chgrp ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_chkconfig.py b/test/t/test_chkconfig.py
new file mode 100644
index 00000000..c610a5d5
--- /dev/null
+++ b/test/t/test_chkconfig.py
@@ -0,0 +1,15 @@
+import pytest
+
+
+class TestChkconfig:
+ @pytest.mark.complete("chkconfig -")
+ def test_1(self, completion):
+ assert completion
+
+ # systemd may not be running e.g. in a docker container, and listing
+ # services will then fail.
+ @pytest.mark.complete(
+ "chkconfig ", skipif="! systemctl list-units &>/dev/null"
+ )
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_chmod.py b/test/t/test_chmod.py
new file mode 100644
index 00000000..ed59cf13
--- /dev/null
+++ b/test/t/test_chmod.py
@@ -0,0 +1,25 @@
+import pytest
+
+
+class TestChmod:
+
+ # No completion here until mode completion is implemented
+ @pytest.mark.complete("chmod ")
+ def test_1(self, completion):
+ assert not completion
+
+ @pytest.mark.complete("chmod 755 ")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("chmod -")
+ def test_3(self, completion):
+ assert completion
+
+ @pytest.mark.complete("chmod -x ")
+ def test_4(self, completion):
+ assert completion
+
+ @pytest.mark.complete("chmod -77 ")
+ def test_5(self, completion):
+ assert completion
diff --git a/test/t/test_chown.py b/test/t/test_chown.py
new file mode 100644
index 00000000..37221cfa
--- /dev/null
+++ b/test/t/test_chown.py
@@ -0,0 +1,82 @@
+import getpass
+
+import pytest
+
+from conftest import assert_bash_exec, assert_complete
+
+
+@pytest.mark.bashcomp(
+ pre_cmds=(
+ # Fake root command to get all users/groups completed at least for now
+ "root_command=sudo",
+ )
+)
+class TestChown:
+ @pytest.mark.xfail(
+ getpass.getuser() != "root", reason="Only root can chown to all users"
+ )
+ @pytest.mark.complete("chown ")
+ def test_1(self, bash, completion):
+ users = sorted(
+ assert_bash_exec(bash, "compgen -A user", want_output=True).split()
+ )
+ assert completion == users
+
+ @pytest.mark.complete("chown foo: shared/default/")
+ def test_2(self, completion):
+ assert completion == ["bar", "bar bar.d/", "foo", "foo.d/"]
+
+ @pytest.mark.complete("chown :foo shared/default/")
+ def test_3(self, completion):
+ assert completion == ["bar", "bar bar.d/", "foo", "foo.d/"]
+
+ def test_4(self, bash, part_full_user):
+ part, full = part_full_user
+ completion = assert_complete(bash, "chown %s" % part)
+ assert completion == full
+ assert completion.endswith(" ")
+
+ def test_5(self, bash, part_full_user, part_full_group):
+ _, user = part_full_user
+ partgroup, fullgroup = part_full_group
+ completion = assert_complete(bash, "chown %s:%s" % (user, partgroup))
+ assert completion == "%s:%s" % (user, fullgroup)
+ assert completion.output.endswith(" ")
+
+ def test_6(self, bash, part_full_group):
+ part, full = part_full_group
+ completion = assert_complete(bash, "chown dot.user:%s" % part)
+ assert completion == "dot.user:%s" % full
+ assert completion.output.endswith(" ")
+
+ @pytest.mark.xfail # TODO check escaping, whitespace
+ def test_7(self, bash, part_full_group):
+ """Test preserving special chars in $prefix$partgroup<TAB>."""
+ part, full = part_full_group
+ for prefix in (
+ r"funky\ user:",
+ "funky.user:",
+ r"funky\.user:",
+ r"fu\ nky.user:",
+ r"f\ o\ o\.\bar:",
+ r"foo\_b\ a\.r\ :",
+ ):
+ completion = assert_complete(bash, "chown %s%s" % (prefix, part))
+ assert completion == "%s%s" % (prefix, full)
+ assert completion.output.endswith(" ")
+
+ def test_8(self, bash, part_full_user, part_full_group):
+ """Test giving up on degenerate cases instead of spewing junk."""
+ _, user = part_full_user
+ partgroup, _ = part_full_group
+ for x in range(2, 5):
+ completion = assert_complete(
+ bash, "chown %s%s:%s" % (user, x * "\\", partgroup)
+ )
+ assert not completion
+
+ def test_9(self, bash, part_full_group):
+ """Test graceful fail on colon in user/group name."""
+ part, _ = part_full_group
+ completion = assert_complete(bash, "chown foo:bar:%s" % part)
+ assert not completion
diff --git a/test/t/test_chpasswd.py b/test/t/test_chpasswd.py
new file mode 100644
index 00000000..ce16a75d
--- /dev/null
+++ b/test/t/test_chpasswd.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestChpasswd:
+ @pytest.mark.complete("chpasswd -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_chromium_browser.py b/test/t/test_chromium_browser.py
new file mode 100644
index 00000000..75cabdaf
--- /dev/null
+++ b/test/t/test_chromium_browser.py
@@ -0,0 +1,13 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="chromium-browser")
+class TestChromiumBrowser:
+ @pytest.mark.complete("chromium-browser ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("chromium-browser -")
+ def test_2(self, completion):
+ assert completion
+ assert not completion.endswith(" ")
diff --git a/test/t/test_chronyc.py b/test/t/test_chronyc.py
new file mode 100644
index 00000000..fdc91ac5
--- /dev/null
+++ b/test/t/test_chronyc.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestChronyc:
+ @pytest.mark.complete("chronyc ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("chronyc -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_chroot.py b/test/t/test_chroot.py
new file mode 100644
index 00000000..99ca56b0
--- /dev/null
+++ b/test/t/test_chroot.py
@@ -0,0 +1,12 @@
+import pytest
+
+
+class TestChroot:
+ @pytest.mark.complete("chroot ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("/bin/chroot shared/default/")
+ def test_2(self, completion):
+ """Should complete dirs only, also when invoked using full path."""
+ assert completion == ["bar bar.d/", "foo.d/"]
diff --git a/test/t/test_chrpath.py b/test/t/test_chrpath.py
new file mode 100644
index 00000000..036a1a41
--- /dev/null
+++ b/test/t/test_chrpath.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestChrpath:
+ @pytest.mark.complete("chrpath ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("chrpath -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_chsh.py b/test/t/test_chsh.py
new file mode 100644
index 00000000..26e3a0a3
--- /dev/null
+++ b/test/t/test_chsh.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestChsh:
+ @pytest.mark.complete("chsh ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("chsh -s ")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_ci.py b/test/t/test_ci.py
new file mode 100644
index 00000000..f941b2cc
--- /dev/null
+++ b/test/t/test_ci.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestCi:
+ @pytest.mark.complete("ci ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_ciptool.py b/test/t/test_ciptool.py
new file mode 100644
index 00000000..0ff54442
--- /dev/null
+++ b/test/t/test_ciptool.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestCiptool:
+ @pytest.mark.complete("ciptool ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_civclient.py b/test/t/test_civclient.py
new file mode 100644
index 00000000..cff70f47
--- /dev/null
+++ b/test/t/test_civclient.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestCivclient:
+ @pytest.mark.complete("civclient -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_civserver.py b/test/t/test_civserver.py
new file mode 100644
index 00000000..b822ddef
--- /dev/null
+++ b/test/t/test_civserver.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestCivserver:
+ @pytest.mark.complete("civserver -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_cksfv.py b/test/t/test_cksfv.py
new file mode 100644
index 00000000..b4df8767
--- /dev/null
+++ b/test/t/test_cksfv.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestCksfv:
+ @pytest.mark.complete("cksfv -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_cleanarch.py b/test/t/test_cleanarch.py
new file mode 100644
index 00000000..95b268e2
--- /dev/null
+++ b/test/t/test_cleanarch.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(pre_cmds=("PATH=/usr/lib/mailman/bin:$PATH",))
+class TestCleanarch:
+ @pytest.mark.complete("cleanarch -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_clisp.py b/test/t/test_clisp.py
new file mode 100644
index 00000000..3fcb2593
--- /dev/null
+++ b/test/t/test_clisp.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestClisp:
+ @pytest.mark.complete("clisp ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_clone_member.py b/test/t/test_clone_member.py
new file mode 100644
index 00000000..8f54298a
--- /dev/null
+++ b/test/t/test_clone_member.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestCloneMember:
+ @pytest.mark.complete("clone_member -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_co.py b/test/t/test_co.py
new file mode 100644
index 00000000..0404b45f
--- /dev/null
+++ b/test/t/test_co.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestCo:
+ @pytest.mark.complete("co ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_compare.py b/test/t/test_compare.py
new file mode 100644
index 00000000..172c8dab
--- /dev/null
+++ b/test/t/test_compare.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestCompare:
+ @pytest.mark.complete("compare ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_complete.py b/test/t/test_complete.py
new file mode 100644
index 00000000..036f954e
--- /dev/null
+++ b/test/t/test_complete.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestComplete:
+ @pytest.mark.complete("complete -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_composite.py b/test/t/test_composite.py
new file mode 100644
index 00000000..58f4e398
--- /dev/null
+++ b/test/t/test_composite.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestComposite:
+ @pytest.mark.complete("composite ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_config_list.py b/test/t/test_config_list.py
new file mode 100644
index 00000000..d17fadc6
--- /dev/null
+++ b/test/t/test_config_list.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestConfigList:
+ @pytest.mark.complete("config_list -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_configure.py b/test/t/test_configure.py
new file mode 100644
index 00000000..17bc9d48
--- /dev/null
+++ b/test/t/test_configure.py
@@ -0,0 +1,17 @@
+import pytest
+
+
+@pytest.mark.bashcomp(
+ pre_cmds=(
+ # Make sure our own ./configure is in PATH
+ "PATH=$PWD/../..:$PATH",
+ )
+)
+class TestConfigure:
+ @pytest.mark.complete("configure --")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("configure --prefix ")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_conjure.py b/test/t/test_conjure.py
new file mode 100644
index 00000000..3dcc0dbc
--- /dev/null
+++ b/test/t/test_conjure.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestConjure:
+ @pytest.mark.complete("conjure ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_convert.py b/test/t/test_convert.py
new file mode 100644
index 00000000..90dfb477
--- /dev/null
+++ b/test/t/test_convert.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestConvert:
+ @pytest.mark.complete("convert ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("convert -format ")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_cowsay.py b/test/t/test_cowsay.py
new file mode 100644
index 00000000..2920d9ea
--- /dev/null
+++ b/test/t/test_cowsay.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestCowsay:
+ @pytest.mark.complete("cowsay ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_cp.py b/test/t/test_cp.py
new file mode 100644
index 00000000..a25998fc
--- /dev/null
+++ b/test/t/test_cp.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestCp:
+ @pytest.mark.complete("cp ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_cpan2dist.py b/test/t/test_cpan2dist.py
new file mode 100644
index 00000000..13feae9e
--- /dev/null
+++ b/test/t/test_cpan2dist.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestCpan2dist:
+ @pytest.mark.complete("cpan2dist -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_cpio.py b/test/t/test_cpio.py
new file mode 100644
index 00000000..69bb5702
--- /dev/null
+++ b/test/t/test_cpio.py
@@ -0,0 +1,16 @@
+import pytest
+
+from conftest import assert_bash_exec
+
+
+class TestCpio:
+ @pytest.mark.complete("cpio --")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("cpio -R ")
+ def test_2(self, bash, completion):
+ users = sorted(
+ assert_bash_exec(bash, "compgen -A user", want_output=True).split()
+ )
+ assert completion == users
diff --git a/test/t/test_cplusplus.py b/test/t/test_cplusplus.py
new file mode 100644
index 00000000..a2dd3ede
--- /dev/null
+++ b/test/t/test_cplusplus.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="c++")
+class TestCPlusPlus:
+ @pytest.mark.complete("c++ ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_cppcheck.py b/test/t/test_cppcheck.py
new file mode 100644
index 00000000..d5e3af9b
--- /dev/null
+++ b/test/t/test_cppcheck.py
@@ -0,0 +1,31 @@
+import pytest
+
+
+class TestCppcheck:
+ @pytest.mark.complete("cppcheck ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("cppcheck -")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("cppcheck -DFOO=BAR ")
+ def test_3(self, completion):
+ assert completion
+
+ @pytest.mark.complete("cppcheck -D ")
+ def test_4(self, completion):
+ assert not completion
+
+ @pytest.mark.complete("cppcheck --enable=al")
+ def test_5(self, completion):
+ assert completion == "--enable=all"
+
+ @pytest.mark.complete("cppcheck --enable=xx,styl")
+ def test_6(self, completion):
+ assert completion == "--enable=xx,style"
+
+ @pytest.mark.complete("cppcheck --enable=xx,yy,styl")
+ def test_7(self, completion):
+ assert completion == "--enable=xx,yy,style"
diff --git a/test/t/test_createdb.py b/test/t/test_createdb.py
new file mode 100644
index 00000000..7e226438
--- /dev/null
+++ b/test/t/test_createdb.py
@@ -0,0 +1,9 @@
+import pytest
+
+
+class TestCreatedb:
+
+ # --help can fail due to missing package dependencies, e.g. on Ubuntu 14
+ @pytest.mark.complete("createdb -", skipif="! createdb --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_createuser.py b/test/t/test_createuser.py
new file mode 100644
index 00000000..f25f10f7
--- /dev/null
+++ b/test/t/test_createuser.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestCreateuser:
+
+ # --help can fail due to missing package dependencies, e.g. on Ubuntu 14
+ @pytest.mark.complete(
+ "createuser -", skipif="! createuser --help &>/dev/null"
+ )
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_crontab.py b/test/t/test_crontab.py
new file mode 100644
index 00000000..098fd9e0
--- /dev/null
+++ b/test/t/test_crontab.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestCrontab:
+ @pytest.mark.complete("crontab ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_cryptsetup.py b/test/t/test_cryptsetup.py
new file mode 100644
index 00000000..235ac4fc
--- /dev/null
+++ b/test/t/test_cryptsetup.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestCryptsetup:
+ @pytest.mark.complete("cryptsetup ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_csplit.py b/test/t/test_csplit.py
new file mode 100644
index 00000000..54eab34c
--- /dev/null
+++ b/test/t/test_csplit.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestCsplit:
+ @pytest.mark.complete("csplit ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_curl.py b/test/t/test_curl.py
new file mode 100644
index 00000000..324fba2a
--- /dev/null
+++ b/test/t/test_curl.py
@@ -0,0 +1,19 @@
+import pytest
+
+
+class TestCurl:
+ @pytest.mark.complete("curl --h")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("curl -o f", cwd="shared/default/foo.d")
+ def test_2(self, completion):
+ assert completion == "foo"
+
+ @pytest.mark.complete("curl -LRo f", cwd="shared/default/foo.d")
+ def test_3(self, completion):
+ assert completion == "foo"
+
+ @pytest.mark.complete("curl --o f")
+ def test_4(self, completion):
+ assert not completion
diff --git a/test/t/test_cut.py b/test/t/test_cut.py
new file mode 100644
index 00000000..31fa636a
--- /dev/null
+++ b/test/t/test_cut.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestCut:
+ @pytest.mark.complete("cut ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_cvs.py b/test/t/test_cvs.py
new file mode 100644
index 00000000..825acbf5
--- /dev/null
+++ b/test/t/test_cvs.py
@@ -0,0 +1,16 @@
+import pytest
+
+
+@pytest.mark.bashcomp(pre_cmds=("HOME=$PWD/cvs",))
+class TestCvs:
+ @pytest.mark.complete("cvs ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("cvs -d ")
+ def test_2(self, completion):
+ assert [x for x in completion if ":pserver:" in x]
+
+ @pytest.mark.complete("cvs diff foo/", cwd="cvs")
+ def test_3(self, completion):
+ assert completion == "foo/bar"
diff --git a/test/t/test_cvsps.py b/test/t/test_cvsps.py
new file mode 100644
index 00000000..0a4da9ba
--- /dev/null
+++ b/test/t/test_cvsps.py
@@ -0,0 +1,12 @@
+import pytest
+
+
+@pytest.mark.bashcomp(pre_cmds=("HOME=$PWD/cvs",))
+class TestCvsps:
+ @pytest.mark.complete("cvsps -")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("cvsps ")
+ def test_2(self, completion):
+ assert [x for x in completion if ":pserver:" in x]
diff --git a/test/t/test_date.py b/test/t/test_date.py
new file mode 100644
index 00000000..8df574e9
--- /dev/null
+++ b/test/t/test_date.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestDate:
+ @pytest.mark.complete("date ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_dcop.py b/test/t/test_dcop.py
new file mode 100644
index 00000000..669725e2
--- /dev/null
+++ b/test/t/test_dcop.py
@@ -0,0 +1,14 @@
+import subprocess
+
+import pytest
+
+
+class TestDcop:
+ @pytest.mark.complete("dcop ")
+ def test_1(self, completion):
+ try:
+ subprocess.check_call("dcop &>/dev/null", shell=True)
+ except BaseException:
+ assert not completion
+ else:
+ assert completion
diff --git a/test/t/test_dd.py b/test/t/test_dd.py
new file mode 100644
index 00000000..616f4d4a
--- /dev/null
+++ b/test/t/test_dd.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestDd:
+ @pytest.mark.complete("dd --")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("dd bs")
+ def test_2(self, completion):
+ assert completion == "bs="
diff --git a/test/t/test_declare.py b/test/t/test_declare.py
new file mode 100644
index 00000000..b17affc2
--- /dev/null
+++ b/test/t/test_declare.py
@@ -0,0 +1,20 @@
+import pytest
+
+
+class TestDeclare:
+ @pytest.mark.complete("declare -")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("declare +")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("declare -p BASH_ARG")
+ def test_3(self, completion):
+ # bash 5.0 has BASH_ARGV0 too
+ assert all(x in completion for x in "BASH_ARGC BASH_ARGV".split())
+
+ @pytest.mark.complete("declare -f _parse_")
+ def test_4(self, completion):
+ assert "_parse_help" in completion
diff --git a/test/t/test_deja_dup.py b/test/t/test_deja_dup.py
new file mode 100644
index 00000000..1da29e99
--- /dev/null
+++ b/test/t/test_deja_dup.py
@@ -0,0 +1,12 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="deja-dup")
+class TestDejaDup:
+ @pytest.mark.complete("deja-dup -")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("deja-dup --help ")
+ def test_2(self, completion):
+ assert not completion
diff --git a/test/t/test_desktop_file_validate.py b/test/t/test_desktop_file_validate.py
new file mode 100644
index 00000000..e007a956
--- /dev/null
+++ b/test/t/test_desktop_file_validate.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="desktop-file-validate")
+class TestDesktopFileValidate:
+ @pytest.mark.complete("desktop-file-validate ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_df.py b/test/t/test_df.py
new file mode 100644
index 00000000..247311cc
--- /dev/null
+++ b/test/t/test_df.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestDf:
+ @pytest.mark.complete("df ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_dfutool.py b/test/t/test_dfutool.py
new file mode 100644
index 00000000..7b450bde
--- /dev/null
+++ b/test/t/test_dfutool.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestDfutool:
+ @pytest.mark.complete("dfutool ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_dhclient.py b/test/t/test_dhclient.py
new file mode 100644
index 00000000..fdfbd473
--- /dev/null
+++ b/test/t/test_dhclient.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestDhclient:
+ @pytest.mark.complete("dhclient -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_dict.py b/test/t/test_dict.py
new file mode 100644
index 00000000..65f6b129
--- /dev/null
+++ b/test/t/test_dict.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestDict:
+ @pytest.mark.complete("dict -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_diff.py b/test/t/test_diff.py
new file mode 100644
index 00000000..25157bd9
--- /dev/null
+++ b/test/t/test_diff.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestDiff:
+ @pytest.mark.complete("diff --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_dir.py b/test/t/test_dir.py
new file mode 100644
index 00000000..3026d502
--- /dev/null
+++ b/test/t/test_dir.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestDir:
+ @pytest.mark.complete("dir ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_display.py b/test/t/test_display.py
new file mode 100644
index 00000000..9f5c1004
--- /dev/null
+++ b/test/t/test_display.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestDisplay:
+ @pytest.mark.complete("display ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("display -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_dmesg.py b/test/t/test_dmesg.py
new file mode 100644
index 00000000..4416fe1c
--- /dev/null
+++ b/test/t/test_dmesg.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestDmesg:
+ @pytest.mark.complete("dmesg -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_dnssec_keygen.py b/test/t/test_dnssec_keygen.py
new file mode 100644
index 00000000..d52e3af0
--- /dev/null
+++ b/test/t/test_dnssec_keygen.py
@@ -0,0 +1,80 @@
+import pytest
+
+
+@pytest.mark.bashcomp(
+ cmd="dnssec-keygen", pre_cmds=("PATH=$PATH:$PWD/dnssec-keygen",)
+)
+class TestDnssecKeygen:
+ @pytest.mark.complete("dnssec-keygen -")
+ def test_1(self, completion):
+ assert completion
+ assert not any(x.endswith(":") for x in completion)
+
+ @pytest.mark.complete("dnssec-keygen -a ")
+ def test_2(self, completion):
+ assert completion
+ assert "HMAC-MD5" in completion
+ assert "|" not in completion
+ assert not any(x.startswith("-") for x in completion)
+
+ @pytest.mark.complete("dnssec-keygen -n ")
+ def test_3(self, completion):
+ assert completion
+ assert "HOST" in completion
+ assert "|" not in completion
+ assert not any(x.startswith("-") for x in completion)
+
+ @pytest.mark.complete("dnssec-keygen -f ")
+ def test_4(self, completion):
+ assert completion
+ assert "|" not in completion
+ assert not any(x.startswith("-") for x in completion)
+
+ @pytest.mark.complete("dnssec-keygen ")
+ def test_5(self, completion):
+ assert not completion
+
+ @pytest.mark.complete(
+ "dnssec-keygen -a ", env=dict(PATH="$PWD/dnssec-keygen:$PATH")
+ )
+ def test_6(self, completion):
+ assert completion == sorted(
+ "RSA RSAMD5 DSA RSASHA1 NSEC3RSASHA1 NSEC3DSA "
+ "RSASHA256 RSASHA512 ECCGOST "
+ "ECDSAP256SHA256 ECDSAP384SHA384 "
+ "ED25519 ED448 DH "
+ "HMAC-MD5 HMAC-SHA1 HMAC-SHA224 HMAC-SHA256 "
+ "HMAC-SHA384 HMAC-SHA512".split()
+ )
+
+ @pytest.mark.complete(
+ "dnssec-keygen -n ", env=dict(PATH="$PWD/dnssec-keygen:$PATH")
+ )
+ def test_7(self, completion):
+ assert completion == sorted("ZONE HOST ENTITY USER OTHER".split())
+
+ @pytest.mark.complete(
+ "dnssec-keygen -f ", env=dict(PATH="$PWD/dnssec-keygen:$PATH")
+ )
+ def test_8(self, completion):
+ assert completion == sorted("KSK REVOKE".split())
+
+ @pytest.mark.complete(
+ "dnssec-keygen -T ", env=dict(PATH="$PWD/dnssec-keygen:$PATH")
+ )
+ def test_9(self, completion):
+ assert completion == sorted("DNSKEY KEY".split())
+
+ @pytest.mark.complete(
+ "dnssec-keygen -t ", env=dict(PATH="$PWD/dnssec-keygen:$PATH")
+ )
+ def test_10(self, completion):
+ assert completion == sorted(
+ "AUTHCONF NOAUTHCONF NOAUTH NOCONF".split()
+ )
+
+ @pytest.mark.complete(
+ "dnssec-keygen -m ", env=dict(PATH="$PWD/dnssec-keygen:$PATH")
+ )
+ def test_11(self, completion):
+ assert completion == sorted("usage trace record size mctx".split())
diff --git a/test/t/test_dnsspoof.py b/test/t/test_dnsspoof.py
new file mode 100644
index 00000000..fae6c430
--- /dev/null
+++ b/test/t/test_dnsspoof.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestDnsspoof:
+ @pytest.mark.complete("dnsspoof -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_dot.py b/test/t/test_dot.py
new file mode 100644
index 00000000..a4aa6742
--- /dev/null
+++ b/test/t/test_dot.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestDot:
+ @pytest.mark.complete("dot ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_dpkg.py b/test/t/test_dpkg.py
new file mode 100644
index 00000000..e609ee86
--- /dev/null
+++ b/test/t/test_dpkg.py
@@ -0,0 +1,17 @@
+import pytest
+
+
+class TestDpkg:
+ @pytest.mark.complete("dpkg --c")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete(
+ "dpkg -L ", skipif='test -z "$(dpkg -l 2>/dev/null)"'
+ )
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("dpkg -i ~")
+ def test_3(self, completion):
+ assert completion
diff --git a/test/t/test_dpkg_deb.py b/test/t/test_dpkg_deb.py
new file mode 100644
index 00000000..4bd7368b
--- /dev/null
+++ b/test/t/test_dpkg_deb.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="dpkg-deb")
+class TestDpkgDeb:
+ @pytest.mark.complete("dpkg-deb --c")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_dpkg_reconfigure.py b/test/t/test_dpkg_reconfigure.py
new file mode 100644
index 00000000..46347b3f
--- /dev/null
+++ b/test/t/test_dpkg_reconfigure.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="dpkg-reconfigure")
+class TestDpkgReconfigure:
+ @pytest.mark.complete("dpkg-reconfigure --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_dpkg_source.py b/test/t/test_dpkg_source.py
new file mode 100644
index 00000000..f2d5f19b
--- /dev/null
+++ b/test/t/test_dpkg_source.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="dpkg-source")
+class TestDpkgSource:
+ @pytest.mark.complete("dpkg-source -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_dropdb.py b/test/t/test_dropdb.py
new file mode 100644
index 00000000..7e0b7929
--- /dev/null
+++ b/test/t/test_dropdb.py
@@ -0,0 +1,9 @@
+import pytest
+
+
+class TestDropdb:
+
+ # --help can fail due to missing package dependencies, e.g. on Ubuntu 14
+ @pytest.mark.complete("dropdb -", skipif="! dropdb --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_dropuser.py b/test/t/test_dropuser.py
new file mode 100644
index 00000000..83a99d94
--- /dev/null
+++ b/test/t/test_dropuser.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestDropuser:
+ @pytest.mark.complete("dropuser ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_dselect.py b/test/t/test_dselect.py
new file mode 100644
index 00000000..3145cc40
--- /dev/null
+++ b/test/t/test_dselect.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestDselect:
+ @pytest.mark.complete("dselect ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("dselect -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_dsniff.py b/test/t/test_dsniff.py
new file mode 100644
index 00000000..978c4365
--- /dev/null
+++ b/test/t/test_dsniff.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestDsniff:
+ @pytest.mark.complete("dsniff -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_du.py b/test/t/test_du.py
new file mode 100644
index 00000000..c014b069
--- /dev/null
+++ b/test/t/test_du.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestDu:
+ @pytest.mark.complete("du ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_dumpdb.py b/test/t/test_dumpdb.py
new file mode 100644
index 00000000..50776827
--- /dev/null
+++ b/test/t/test_dumpdb.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(pre_cmds=("PATH=/usr/lib/mailman/bin:$PATH",))
+class TestDumpdb:
+ @pytest.mark.complete("dumpdb ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_dumpe2fs.py b/test/t/test_dumpe2fs.py
new file mode 100644
index 00000000..fa7590e6
--- /dev/null
+++ b/test/t/test_dumpe2fs.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestDumpe2fs:
+ @pytest.mark.complete("dumpe2fs ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_e2freefrag.py b/test/t/test_e2freefrag.py
new file mode 100644
index 00000000..6685382d
--- /dev/null
+++ b/test/t/test_e2freefrag.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestE2freefrag:
+ @pytest.mark.complete("e2freefrag ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_e2label.py b/test/t/test_e2label.py
new file mode 100644
index 00000000..ca436a65
--- /dev/null
+++ b/test/t/test_e2label.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestE2label:
+ @pytest.mark.complete("e2label ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_ebtables.py b/test/t/test_ebtables.py
new file mode 100644
index 00000000..bcca3cbe
--- /dev/null
+++ b/test/t/test_ebtables.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestEbtables:
+ @pytest.mark.complete("ebtables -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_ecryptfs_migrate_home.py b/test/t/test_ecryptfs_migrate_home.py
new file mode 100644
index 00000000..fd49ca8b
--- /dev/null
+++ b/test/t/test_ecryptfs_migrate_home.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="ecryptfs-migrate-home")
+class TestEcryptfsMigrateHome:
+ @pytest.mark.complete("ecryptfs-migrate-home ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_eject.py b/test/t/test_eject.py
new file mode 100644
index 00000000..037ea98e
--- /dev/null
+++ b/test/t/test_eject.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestEject:
+ @pytest.mark.complete("eject -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_enscript.py b/test/t/test_enscript.py
new file mode 100644
index 00000000..2e4ff51a
--- /dev/null
+++ b/test/t/test_enscript.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestEnscript:
+ @pytest.mark.complete("enscript --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_env.py b/test/t/test_env.py
new file mode 100644
index 00000000..57ed9769
--- /dev/null
+++ b/test/t/test_env.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestEnv:
+ @pytest.mark.complete("env --", skipif="! env --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_eog.py b/test/t/test_eog.py
new file mode 100644
index 00000000..c095934f
--- /dev/null
+++ b/test/t/test_eog.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestEog:
+ @pytest.mark.complete("eog ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_ether_wake.py b/test/t/test_ether_wake.py
new file mode 100644
index 00000000..b9dac0b4
--- /dev/null
+++ b/test/t/test_ether_wake.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="ether-wake")
+class TestEtherWake:
+ @pytest.mark.complete("ether-wake ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_etherwake.py b/test/t/test_etherwake.py
new file mode 100644
index 00000000..b444b433
--- /dev/null
+++ b/test/t/test_etherwake.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestEtherwake:
+ @pytest.mark.complete("etherwake -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_evince.py b/test/t/test_evince.py
new file mode 100644
index 00000000..0dc44f38
--- /dev/null
+++ b/test/t/test_evince.py
@@ -0,0 +1,18 @@
+import pytest
+
+
+class TestEvince:
+ @pytest.mark.complete("evince ", cwd="evince")
+ def test_1(self, completion):
+ # .txt should not be here
+ assert completion == sorted(
+ "foo/ .bmp .BMP .cbr .CBR .cbz .CBZ .djv .DJV .djvu .DJVU .dvi "
+ ".DVI .dvi.bz2 .dvi.BZ2 .DVI.bz2 .DVI.BZ2 .dvi.gz .dvi.GZ "
+ ".DVI.gz .DVI.GZ .eps .EPS .eps.bz2 .eps.BZ2 .EPS.bz2 .EPS.BZ2 "
+ ".eps.gz .eps.GZ .EPS.gz .EPS.GZ .gif .GIF .ico .ICO .jpeg "
+ ".JPEG .jpg .JPG .miff .MIFF .pbm .PBM .pcx .PCX .pdf .PDF "
+ ".pdf.bz2 .pdf.BZ2 .PDF.bz2 .PDF.BZ2 .pdf.gz .pdf.GZ .PDF.gz "
+ ".PDF.GZ .pgm .PGM .png .PNG .pnm .PNM .ppm .PPM .ps .PS "
+ ".ps.bz2 .ps.BZ2 .PS.bz2 .PS.BZ2 .ps.gz .ps.GZ .PS.gz .PS.GZ "
+ ".tga .TGA .tif .TIF .tiff .TIFF .xpm .XPM .xwd .XWD".split()
+ )
diff --git a/test/t/test_expand.py b/test/t/test_expand.py
new file mode 100644
index 00000000..004c018b
--- /dev/null
+++ b/test/t/test_expand.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestExpand:
+ @pytest.mark.complete("expand --", skipif="! expand --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_explodepkg.py b/test/t/test_explodepkg.py
new file mode 100644
index 00000000..29463dfd
--- /dev/null
+++ b/test/t/test_explodepkg.py
@@ -0,0 +1,18 @@
+import fnmatch
+import os
+
+import pytest
+
+
+class TestExplodepkg:
+ @pytest.mark.complete("explodepkg ", cwd="slackware/home")
+ def test_1(self, completion):
+ expected = sorted(
+ x
+ for x in os.listdir("slackware/home")
+ if os.path.isdir("./%s" % x)
+ or (
+ os.path.isfile("./%s" % x) and fnmatch.fnmatch(x, "*.t[bglx]z")
+ )
+ )
+ assert completion == expected
diff --git a/test/t/test_export.py b/test/t/test_export.py
new file mode 100644
index 00000000..59dfdb2e
--- /dev/null
+++ b/test/t/test_export.py
@@ -0,0 +1,36 @@
+import pytest
+
+
+class TestExport:
+ @pytest.mark.complete("export BASH")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("export -n BASH")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("export -p ")
+ def test_3(self, completion):
+ assert not completion
+
+ @pytest.mark.complete("export FOO=", cwd="shared/default")
+ def test_4(self, completion):
+ assert completion == ["bar", "bar bar.d/", "foo", "foo.d/"]
+
+ @pytest.mark.complete("export FOO=f", cwd="shared/default")
+ def test_5(self, completion):
+ assert completion == ["foo", "foo.d/"]
+
+ @pytest.mark.complete("export -fn _ex")
+ def test_6(self, completion):
+ assert "_expand" in completion
+ assert "_export" in completion
+
+ @pytest.mark.complete(r"export FOO=$BASH")
+ def test_7(self, completion):
+ assert completion
+
+ @pytest.mark.complete("export -")
+ def test_8(self, completion):
+ assert completion
diff --git a/test/t/test_faillog.py b/test/t/test_faillog.py
new file mode 100644
index 00000000..d9799d57
--- /dev/null
+++ b/test/t/test_faillog.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestFaillog:
+ @pytest.mark.complete("faillog -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_fbgs.py b/test/t/test_fbgs.py
new file mode 100644
index 00000000..53ff7412
--- /dev/null
+++ b/test/t/test_fbgs.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestFbgs:
+ @pytest.mark.complete("fbgs ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_fbi.py b/test/t/test_fbi.py
new file mode 100644
index 00000000..e27fef51
--- /dev/null
+++ b/test/t/test_fbi.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestFbi:
+ @pytest.mark.complete("fbi ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_feh.py b/test/t/test_feh.py
new file mode 100644
index 00000000..1802e25f
--- /dev/null
+++ b/test/t/test_feh.py
@@ -0,0 +1,29 @@
+import pytest
+
+
+class TestFeh:
+ @pytest.mark.complete("feh ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete(
+ "feh --lis", skipif="feh --help 2>&1 | grep -qF 'man feh'"
+ )
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("feh -S pix")
+ def test_3(self, completion):
+ assert completion == "pixels"
+
+ @pytest.mark.complete("feh --zoom ma")
+ def test_4(self, completion):
+ assert completion == "max"
+
+ @pytest.mark.complete("feh -g 640")
+ def test_5(self, completion):
+ assert completion == "0 1 2 3 4 5 6 7 8 9 x".split()
+
+ @pytest.mark.complete("feh -g 640x48")
+ def test_6(self, completion):
+ assert completion == "0 1 2 3 4 5 6 7 8 9".split()
diff --git a/test/t/test_file.py b/test/t/test_file.py
new file mode 100644
index 00000000..cfd2c100
--- /dev/null
+++ b/test/t/test_file.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestFile:
+ @pytest.mark.complete("file ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("file -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_file_roller.py b/test/t/test_file_roller.py
new file mode 100644
index 00000000..80a1bbc7
--- /dev/null
+++ b/test/t/test_file_roller.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="file-roller")
+class TestFileRoller:
+ @pytest.mark.complete("file-roller ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_filefrag.py b/test/t/test_filefrag.py
new file mode 100644
index 00000000..860b2512
--- /dev/null
+++ b/test/t/test_filefrag.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestFilefrag:
+ @pytest.mark.complete("filefrag ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_filesnarf.py b/test/t/test_filesnarf.py
new file mode 100644
index 00000000..cd399d4a
--- /dev/null
+++ b/test/t/test_filesnarf.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestFilesnarf:
+ @pytest.mark.complete("filesnarf -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_find.py b/test/t/test_find.py
new file mode 100644
index 00000000..a94e0e0d
--- /dev/null
+++ b/test/t/test_find.py
@@ -0,0 +1,28 @@
+import pytest
+
+
+class TestFind:
+ @pytest.mark.complete("find ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("find -fstype ")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("find -")
+ def test_3(self, completion):
+ assert completion
+
+ @pytest.mark.xfail # TODO: whitespace split issue
+ @pytest.mark.complete("find -wholename ", cwd="shared/default")
+ def test_4(self, completion):
+ assert completion == ["bar", "bar bar.d/", "foo", "foo foo.d/"]
+
+ @pytest.mark.complete("find -uid ")
+ def test_5(self, completion):
+ assert not [x for x in completion if not x.isdigit()]
+
+ @pytest.mark.complete("find -gid ")
+ def test_6(self, completion):
+ assert not [x for x in completion if not x.isdigit()]
diff --git a/test/t/test_find_member.py b/test/t/test_find_member.py
new file mode 100644
index 00000000..bfcf5887
--- /dev/null
+++ b/test/t/test_find_member.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestFindMember:
+ @pytest.mark.complete("find_member -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_finger.py b/test/t/test_finger.py
new file mode 100644
index 00000000..e3cdfacd
--- /dev/null
+++ b/test/t/test_finger.py
@@ -0,0 +1,14 @@
+import pytest
+
+from conftest import assert_bash_exec
+
+
+class TestFinger:
+ @pytest.mark.complete("finger ")
+ def test_1(self, bash, completion):
+ users_at = sorted(
+ assert_bash_exec(
+ bash, "compgen -A user -S @", want_output=True
+ ).split()
+ )
+ assert completion == users_at
diff --git a/test/t/test_fio.py b/test/t/test_fio.py
new file mode 100644
index 00000000..8dd6f789
--- /dev/null
+++ b/test/t/test_fio.py
@@ -0,0 +1,15 @@
+import pytest
+
+
+class TestFio:
+ @pytest.mark.complete("fio ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("fio --")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("fio --debug=foo,")
+ def test_3(self, completion):
+ assert completion
diff --git a/test/t/test_firefox.py b/test/t/test_firefox.py
new file mode 100644
index 00000000..cbba2c6c
--- /dev/null
+++ b/test/t/test_firefox.py
@@ -0,0 +1,12 @@
+import pytest
+
+
+class TestFirefox:
+ @pytest.mark.complete("firefox ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("firefox -")
+ def test_2(self, completion):
+ assert completion
+ assert not completion.endswith(" ")
diff --git a/test/t/test_flake8.py b/test/t/test_flake8.py
new file mode 100644
index 00000000..9922fb85
--- /dev/null
+++ b/test/t/test_flake8.py
@@ -0,0 +1,16 @@
+import pytest
+
+
+@pytest.mark.bashcomp(skipif="! flake8 --help &>/dev/null")
+class TestFlake8:
+ @pytest.mark.complete("flake8 ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("flake8 -")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("flake8 --doesnt-exist=")
+ def test_3(self, completion):
+ assert not completion
diff --git a/test/t/test_fmt.py b/test/t/test_fmt.py
new file mode 100644
index 00000000..dc3473ba
--- /dev/null
+++ b/test/t/test_fmt.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestFmt:
+ @pytest.mark.complete("fmt -", skipif="! fmt --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_fold.py b/test/t/test_fold.py
new file mode 100644
index 00000000..9a8fd2aa
--- /dev/null
+++ b/test/t/test_fold.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestFold:
+ @pytest.mark.complete("fold --", skipif="! fold --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_freebsd_update.py b/test/t/test_freebsd_update.py
new file mode 100644
index 00000000..911a49a5
--- /dev/null
+++ b/test/t/test_freebsd_update.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="freebsd-update")
+class TestFreebsdUpdate:
+ @pytest.mark.complete("freebsd-update ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_freeciv.py b/test/t/test_freeciv.py
new file mode 100644
index 00000000..1027e43c
--- /dev/null
+++ b/test/t/test_freeciv.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestFreeciv:
+ @pytest.mark.complete("freeciv -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_freeciv_server.py b/test/t/test_freeciv_server.py
new file mode 100644
index 00000000..5546a5e9
--- /dev/null
+++ b/test/t/test_freeciv_server.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="freeciv-server")
+class TestFreecivServer:
+ @pytest.mark.complete("freeciv-server -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_function.py b/test/t/test_function.py
new file mode 100644
index 00000000..4401f022
--- /dev/null
+++ b/test/t/test_function.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestFunction:
+ @pytest.mark.complete("function _parse_")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_fusermount.py b/test/t/test_fusermount.py
new file mode 100644
index 00000000..3781586d
--- /dev/null
+++ b/test/t/test_fusermount.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestFusermount:
+ @pytest.mark.complete("fusermount ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_g4.py b/test/t/test_g4.py
new file mode 100644
index 00000000..739c77db
--- /dev/null
+++ b/test/t/test_g4.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestG4:
+ @pytest.mark.complete("g4 ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_g77.py b/test/t/test_g77.py
new file mode 100644
index 00000000..45da6244
--- /dev/null
+++ b/test/t/test_g77.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestG77:
+ @pytest.mark.complete("g77 ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_gcc.py b/test/t/test_gcc.py
new file mode 100644
index 00000000..67f4ee57
--- /dev/null
+++ b/test/t/test_gcc.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestGcc:
+ @pytest.mark.complete("gcc ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_gcj.py b/test/t/test_gcj.py
new file mode 100644
index 00000000..17e2f445
--- /dev/null
+++ b/test/t/test_gcj.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestGcj:
+ @pytest.mark.complete("gcj ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_gcl.py b/test/t/test_gcl.py
new file mode 100644
index 00000000..f1e7a5ff
--- /dev/null
+++ b/test/t/test_gcl.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestGcl:
+ @pytest.mark.complete("gcl ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_gdb.py b/test/t/test_gdb.py
new file mode 100644
index 00000000..2ad12c48
--- /dev/null
+++ b/test/t/test_gdb.py
@@ -0,0 +1,14 @@
+import pytest
+
+
+class TestGdb:
+ @pytest.mark.complete("gdb - ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("gdb foo ", cwd="gdb")
+ def test_2(self, completion):
+ assert completion == sorted(
+ "core core.12345 "
+ "core.weston.1000.deadbeef.5308.1555362132000000".split()
+ )
diff --git a/test/t/test_genaliases.py b/test/t/test_genaliases.py
new file mode 100644
index 00000000..e2f24d65
--- /dev/null
+++ b/test/t/test_genaliases.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(pre_cmds=("PATH=/usr/lib/mailman/bin:$PATH",))
+class TestGenaliases:
+ @pytest.mark.complete("genaliases -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_gendiff.py b/test/t/test_gendiff.py
new file mode 100644
index 00000000..0e2ab4c3
--- /dev/null
+++ b/test/t/test_gendiff.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestGendiff:
+ @pytest.mark.complete("gendiff ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_genisoimage.py b/test/t/test_genisoimage.py
new file mode 100644
index 00000000..ba16cea2
--- /dev/null
+++ b/test/t/test_genisoimage.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestGenisoimage:
+ @pytest.mark.complete("genisoimage ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_geoiplookup.py b/test/t/test_geoiplookup.py
new file mode 100644
index 00000000..d114d55f
--- /dev/null
+++ b/test/t/test_geoiplookup.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestGeoiplookup:
+ @pytest.mark.complete("geoiplookup -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_getconf.py b/test/t/test_getconf.py
new file mode 100644
index 00000000..6f9192d2
--- /dev/null
+++ b/test/t/test_getconf.py
@@ -0,0 +1,23 @@
+import pytest
+
+
+class TestGetconf:
+ @pytest.mark.complete("getconf P")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("getconf -")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("getconf -a ")
+ def test_3(self, completion):
+ assert completion
+
+ @pytest.mark.complete("getconf -v ")
+ def test_4(self, completion):
+ assert completion
+
+ @pytest.mark.complete("getconf PATH_MAX ")
+ def test_5(self, completion):
+ assert completion
diff --git a/test/t/test_getent.py b/test/t/test_getent.py
new file mode 100644
index 00000000..fa84880c
--- /dev/null
+++ b/test/t/test_getent.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestGetent:
+ @pytest.mark.complete("getent ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_gkrellm.py b/test/t/test_gkrellm.py
new file mode 100644
index 00000000..8ab4b5a7
--- /dev/null
+++ b/test/t/test_gkrellm.py
@@ -0,0 +1,10 @@
+import os
+
+import pytest
+
+
+@pytest.mark.xfail(not os.environ.get("DISPLAY"), reason="X display required")
+class TestGkrellm:
+ @pytest.mark.complete("gkrellm -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_gm.py b/test/t/test_gm.py
new file mode 100644
index 00000000..82d16702
--- /dev/null
+++ b/test/t/test_gm.py
@@ -0,0 +1,19 @@
+import pytest
+
+
+class TestGm:
+ @pytest.mark.complete("gm ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("gm help ")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("gm time ")
+ def test_3(self, completion):
+ assert completion
+
+ @pytest.mark.complete("gm version ")
+ def test_4(self, completion):
+ assert not completion
diff --git a/test/t/test_gmplayer.py b/test/t/test_gmplayer.py
new file mode 100644
index 00000000..211ef515
--- /dev/null
+++ b/test/t/test_gmplayer.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestGmplayer:
+ @pytest.mark.complete("gmplayer ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_gnatmake.py b/test/t/test_gnatmake.py
new file mode 100644
index 00000000..c9f5609f
--- /dev/null
+++ b/test/t/test_gnatmake.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestGnatmake:
+ @pytest.mark.complete("gnatmake ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_gnokii.py b/test/t/test_gnokii.py
new file mode 100644
index 00000000..106005f9
--- /dev/null
+++ b/test/t/test_gnokii.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestGnokii:
+ @pytest.mark.complete("gnokii ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_gnome_mplayer.py b/test/t/test_gnome_mplayer.py
new file mode 100644
index 00000000..5ee952c1
--- /dev/null
+++ b/test/t/test_gnome_mplayer.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="gnome-mplayer")
+class TestGnomeMplayer:
+ @pytest.mark.complete("gnome-mplayer ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_gnome_screenshot.py b/test/t/test_gnome_screenshot.py
new file mode 100644
index 00000000..476f57f1
--- /dev/null
+++ b/test/t/test_gnome_screenshot.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="gnome-screenshot")
+class TestGnomeScreenshot:
+ @pytest.mark.complete("gnome-screenshot --help")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_gpasswd.py b/test/t/test_gpasswd.py
new file mode 100644
index 00000000..43826a58
--- /dev/null
+++ b/test/t/test_gpasswd.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestGpasswd:
+ @pytest.mark.complete("gpasswd ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_gpc.py b/test/t/test_gpc.py
new file mode 100644
index 00000000..9903ef45
--- /dev/null
+++ b/test/t/test_gpc.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestGpc:
+ @pytest.mark.complete("gpc ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_gperf.py b/test/t/test_gperf.py
new file mode 100644
index 00000000..f8267bf7
--- /dev/null
+++ b/test/t/test_gperf.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestGperf:
+ @pytest.mark.complete("gperf --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_gpg.py b/test/t/test_gpg.py
new file mode 100644
index 00000000..8ead5e9a
--- /dev/null
+++ b/test/t/test_gpg.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestGpg:
+ @pytest.mark.complete("gpg ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_gpg2.py b/test/t/test_gpg2.py
new file mode 100644
index 00000000..6a7ff333
--- /dev/null
+++ b/test/t/test_gpg2.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestGpg2:
+ @pytest.mark.complete("gpg2 --h")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_gpgv.py b/test/t/test_gpgv.py
new file mode 100644
index 00000000..05feb71f
--- /dev/null
+++ b/test/t/test_gpgv.py
@@ -0,0 +1,15 @@
+import pytest
+
+
+class TestGpgv:
+ @pytest.mark.complete("gpgv ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("gpgv -")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("gpgv foo.sig foo ")
+ def test_3(self, completion):
+ assert not completion
diff --git a/test/t/test_gphoto2.py b/test/t/test_gphoto2.py
new file mode 100644
index 00000000..830e6f6f
--- /dev/null
+++ b/test/t/test_gphoto2.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestGphoto2:
+ @pytest.mark.complete("gphoto2 --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_gplusplus.py b/test/t/test_gplusplus.py
new file mode 100644
index 00000000..eeeb1bff
--- /dev/null
+++ b/test/t/test_gplusplus.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="g++")
+class TestGPlusPlus:
+ @pytest.mark.complete("g++ ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_gprof.py b/test/t/test_gprof.py
new file mode 100644
index 00000000..417e0914
--- /dev/null
+++ b/test/t/test_gprof.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestGprof:
+ @pytest.mark.complete("gprof --", skipif="! gprof --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_grep.py b/test/t/test_grep.py
new file mode 100644
index 00000000..d7d742ec
--- /dev/null
+++ b/test/t/test_grep.py
@@ -0,0 +1,16 @@
+import pytest
+
+
+class TestGrep:
+ @pytest.mark.complete("grep --")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("grep --no-complete-dir f", cwd="shared/default")
+ def test_2(self, completion):
+ """
+ Test --no-*dir isn't restricted to dirs only.
+
+ Not really a grep option, but tests _longopt.
+ """
+ assert completion == "foo foo.d/".split()
diff --git a/test/t/test_groupadd.py b/test/t/test_groupadd.py
new file mode 100644
index 00000000..efea4677
--- /dev/null
+++ b/test/t/test_groupadd.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestGroupadd:
+ @pytest.mark.complete("groupadd ")
+ def test_1(self, completion):
+ assert not completion
+
+ @pytest.mark.complete("groupadd -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_groupdel.py b/test/t/test_groupdel.py
new file mode 100644
index 00000000..1409e6cc
--- /dev/null
+++ b/test/t/test_groupdel.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestGroupdel:
+ @pytest.mark.complete("groupdel ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_groupmems.py b/test/t/test_groupmems.py
new file mode 100644
index 00000000..2faff633
--- /dev/null
+++ b/test/t/test_groupmems.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestGroupmems:
+ @pytest.mark.complete("groupmems -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_groupmod.py b/test/t/test_groupmod.py
new file mode 100644
index 00000000..08b1d2e2
--- /dev/null
+++ b/test/t/test_groupmod.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestGroupmod:
+ @pytest.mark.complete("groupmod ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("groupmod -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_growisofs.py b/test/t/test_growisofs.py
new file mode 100644
index 00000000..7ce19f6b
--- /dev/null
+++ b/test/t/test_growisofs.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestGrowisofs:
+ @pytest.mark.complete("growisofs ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_grpck.py b/test/t/test_grpck.py
new file mode 100644
index 00000000..0d6a5cef
--- /dev/null
+++ b/test/t/test_grpck.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestGrpck:
+ @pytest.mark.complete("grpck ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("grpck -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_grub.py b/test/t/test_grub.py
new file mode 100644
index 00000000..8ecd0209
--- /dev/null
+++ b/test/t/test_grub.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestGrub:
+ @pytest.mark.complete("grub --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_gzip.py b/test/t/test_gzip.py
new file mode 100644
index 00000000..3c2ecb6f
--- /dev/null
+++ b/test/t/test_gzip.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestGzip:
+ @pytest.mark.complete("gzip ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("gzip ~")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_hciattach.py b/test/t/test_hciattach.py
new file mode 100644
index 00000000..2dc10956
--- /dev/null
+++ b/test/t/test_hciattach.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestHciattach:
+ @pytest.mark.complete("hciattach ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_hciconfig.py b/test/t/test_hciconfig.py
new file mode 100644
index 00000000..2a3f1fdf
--- /dev/null
+++ b/test/t/test_hciconfig.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestHciconfig:
+ @pytest.mark.complete("hciconfig ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_hcitool.py b/test/t/test_hcitool.py
new file mode 100644
index 00000000..8725533f
--- /dev/null
+++ b/test/t/test_hcitool.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestHcitool:
+ @pytest.mark.complete("hcitool ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_hddtemp.py b/test/t/test_hddtemp.py
new file mode 100644
index 00000000..e80a46cc
--- /dev/null
+++ b/test/t/test_hddtemp.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestHddtemp:
+ @pytest.mark.complete("hddtemp -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_head.py b/test/t/test_head.py
new file mode 100644
index 00000000..a287034a
--- /dev/null
+++ b/test/t/test_head.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestHead:
+ @pytest.mark.complete("head --", skipif="! head --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_hexdump.py b/test/t/test_hexdump.py
new file mode 100644
index 00000000..82b6d2ba
--- /dev/null
+++ b/test/t/test_hexdump.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestHexdump:
+ @pytest.mark.complete("hexdump -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_hid2hci.py b/test/t/test_hid2hci.py
new file mode 100644
index 00000000..66766fbd
--- /dev/null
+++ b/test/t/test_hid2hci.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(pre_cmds=("PATH=/lib/udev:$PATH",))
+class TestHid2hci:
+ @pytest.mark.complete("hid2hci -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_host.py b/test/t/test_host.py
new file mode 100644
index 00000000..555a36f5
--- /dev/null
+++ b/test/t/test_host.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestHost:
+ @pytest.mark.complete("host -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_hostname.py b/test/t/test_hostname.py
new file mode 100644
index 00000000..5ccdf458
--- /dev/null
+++ b/test/t/test_hostname.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestHostname:
+ @pytest.mark.complete("hostname -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_hping2.py b/test/t/test_hping2.py
new file mode 100644
index 00000000..77e2ee26
--- /dev/null
+++ b/test/t/test_hping2.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestHping2:
+ @pytest.mark.complete("hping2 ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_hping3.py b/test/t/test_hping3.py
new file mode 100644
index 00000000..a979cfa7
--- /dev/null
+++ b/test/t/test_hping3.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestHping3:
+ @pytest.mark.complete("hping3 ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_htop.py b/test/t/test_htop.py
new file mode 100644
index 00000000..62022bbd
--- /dev/null
+++ b/test/t/test_htop.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestHtop:
+ @pytest.mark.complete("htop -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_htpasswd.py b/test/t/test_htpasswd.py
new file mode 100644
index 00000000..c17c0585
--- /dev/null
+++ b/test/t/test_htpasswd.py
@@ -0,0 +1,19 @@
+import pytest
+
+
+class TestHtpasswd:
+ @pytest.mark.complete("htpasswd ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("htpasswd -n htpasswd/ht")
+ def test_2(self, completion):
+ assert not completion
+
+ @pytest.mark.complete("htpasswd ", cwd="htpasswd")
+ def test_3(self, completion):
+ assert completion == "htpasswd"
+
+ @pytest.mark.complete("htpasswd -D htpasswd ", cwd="htpasswd")
+ def test_4(self, completion):
+ assert completion == "foo quux".split()
diff --git a/test/t/test_hunspell.py b/test/t/test_hunspell.py
new file mode 100644
index 00000000..94ea1020
--- /dev/null
+++ b/test/t/test_hunspell.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestHunspell:
+ @pytest.mark.complete("hunspell ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("hunspell -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_hwclock.py b/test/t/test_hwclock.py
new file mode 100644
index 00000000..a9cb30fa
--- /dev/null
+++ b/test/t/test_hwclock.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestHwclock:
+ @pytest.mark.complete("hwclock -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_iconv.py b/test/t/test_iconv.py
new file mode 100644
index 00000000..dc5f8961
--- /dev/null
+++ b/test/t/test_iconv.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestIconv:
+ @pytest.mark.complete("iconv -")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("iconv -f UTF")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_id.py b/test/t/test_id.py
new file mode 100644
index 00000000..41f2868a
--- /dev/null
+++ b/test/t/test_id.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestId:
+ @pytest.mark.complete("id -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_identify.py b/test/t/test_identify.py
new file mode 100644
index 00000000..12fba008
--- /dev/null
+++ b/test/t/test_identify.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestIdentify:
+ @pytest.mark.complete("identify -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_idn.py b/test/t/test_idn.py
new file mode 100644
index 00000000..1fd1ce02
--- /dev/null
+++ b/test/t/test_idn.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestIdn:
+ @pytest.mark.complete("idn -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_ifdown.py b/test/t/test_ifdown.py
new file mode 100644
index 00000000..16447be5
--- /dev/null
+++ b/test/t/test_ifdown.py
@@ -0,0 +1,14 @@
+import pytest
+
+from conftest import in_docker
+
+
+class TestIfdown:
+ @pytest.mark.xfail(in_docker(), reason="Probably fails in docker")
+ @pytest.mark.complete("ifdown ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("ifdown bash-completion ")
+ def test_2(self, completion):
+ assert not completion
diff --git a/test/t/test_ifstat.py b/test/t/test_ifstat.py
new file mode 100644
index 00000000..e4d828ee
--- /dev/null
+++ b/test/t/test_ifstat.py
@@ -0,0 +1,19 @@
+import pytest
+
+
+class TestIfstat:
+ @pytest.mark.complete("ifstat -")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete(
+ "ifstat -i ", skipif="ifstat -v | command grep -qF iproute2"
+ )
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete(
+ "ifstat -d ", skipif="ifstat -v | command grep -qF iproute2"
+ )
+ def test_3(self, completion):
+ assert completion
diff --git a/test/t/test_iftop.py b/test/t/test_iftop.py
new file mode 100644
index 00000000..9a25c28a
--- /dev/null
+++ b/test/t/test_iftop.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestIftop:
+ @pytest.mark.complete("iftop ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_ifup.py b/test/t/test_ifup.py
new file mode 100644
index 00000000..62d8eb4a
--- /dev/null
+++ b/test/t/test_ifup.py
@@ -0,0 +1,18 @@
+import pytest
+
+from conftest import in_docker
+
+
+class TestIfup:
+ @pytest.mark.xfail(in_docker(), reason="Probably fails in docker")
+ @pytest.mark.complete("ifup ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("ifup --", skipif="! ifup --help &>/dev/null")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("ifup bash-completion ")
+ def test_3(self, completion):
+ assert not completion
diff --git a/test/t/test_import.py b/test/t/test_import.py
new file mode 100644
index 00000000..2e860650
--- /dev/null
+++ b/test/t/test_import.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestImport:
+ @pytest.mark.complete("import ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_info.py b/test/t/test_info.py
new file mode 100644
index 00000000..b52b682e
--- /dev/null
+++ b/test/t/test_info.py
@@ -0,0 +1,12 @@
+import pytest
+
+
+@pytest.mark.bashcomp(pre_cmds=("INFOPATH+=:$PWD/info:",))
+class TestInfo:
+ @pytest.mark.complete("info bash")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("info -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_inject.py b/test/t/test_inject.py
new file mode 100644
index 00000000..37680dca
--- /dev/null
+++ b/test/t/test_inject.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(pre_cmds=("PATH=/usr/lib/mailman/bin:$PATH",))
+class TestInject:
+ @pytest.mark.complete("inject ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_inotifywait.py b/test/t/test_inotifywait.py
new file mode 100644
index 00000000..fe647ad6
--- /dev/null
+++ b/test/t/test_inotifywait.py
@@ -0,0 +1,15 @@
+import pytest
+
+
+class TestInotifywait:
+ @pytest.mark.complete("inotifywait ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("inotifywait --")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("inotifywait -e ")
+ def test_3(self, completion):
+ assert completion
diff --git a/test/t/test_inotifywatch.py b/test/t/test_inotifywatch.py
new file mode 100644
index 00000000..e0e686e8
--- /dev/null
+++ b/test/t/test_inotifywatch.py
@@ -0,0 +1,15 @@
+import pytest
+
+
+class TestInotifywatch:
+ @pytest.mark.complete("inotifywatch ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("inotifywatch --")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("inotifywatch -e ")
+ def test_3(self, completion):
+ assert len(completion) > 1
diff --git a/test/t/test_insmod.py b/test/t/test_insmod.py
new file mode 100644
index 00000000..9636185d
--- /dev/null
+++ b/test/t/test_insmod.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestInsmod:
+ @pytest.mark.complete("insmod ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_installpkg.py b/test/t/test_installpkg.py
new file mode 100644
index 00000000..4e5ab27c
--- /dev/null
+++ b/test/t/test_installpkg.py
@@ -0,0 +1,39 @@
+import fnmatch
+import os
+
+import pytest
+
+
+class TestInstallpkg:
+ @pytest.mark.complete("installpkg -")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("installpkg --")
+ def test_2(self, completion):
+ assert (
+ completion == "--ask --infobox --md5sum --menu "
+ "--priority --root --tagfile --terse --warn".split()
+ )
+
+ @pytest.mark.complete("installpkg --root ")
+ def test_3(self, completion):
+ dirs = sorted(x for x in os.listdir(".") if os.path.isdir("./%s" % x))
+ assert completion == ["%s/" % x for x in dirs]
+
+ @pytest.mark.complete("installpkg --root ")
+ def test_4(self, completion):
+ expected = sorted(
+ [
+ "%s/" % x
+ for x in os.listdir("slackware/home")
+ if os.path.isdir("./%s" % x)
+ ]
+ + [
+ x
+ for x in os.listdir("slackware/home")
+ if os.path.isfile("./%s" % x)
+ and fnmatch.fnmatch(x, "*.t[bglx]z")
+ ]
+ )
+ assert completion == expected
diff --git a/test/t/test_interdiff.py b/test/t/test_interdiff.py
new file mode 100644
index 00000000..e681fd6c
--- /dev/null
+++ b/test/t/test_interdiff.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestInterdiff:
+ @pytest.mark.complete("interdiff ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_invoke_rc_d.py b/test/t/test_invoke_rc_d.py
new file mode 100644
index 00000000..61e2987b
--- /dev/null
+++ b/test/t/test_invoke_rc_d.py
@@ -0,0 +1,14 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="invoke-rc.d")
+class TestInvokeRcD:
+ @pytest.mark.complete("invoke-rc.d ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("invoke-rc.d --no-fallback --")
+ def test_2(self, completion):
+ """Test already specified option is not offered."""
+ assert completion
+ assert "--no-fallback" not in completion
diff --git a/test/t/test_ionice.py b/test/t/test_ionice.py
new file mode 100644
index 00000000..ae047043
--- /dev/null
+++ b/test/t/test_ionice.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestIonice:
+ @pytest.mark.complete("ionice -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_ip.py b/test/t/test_ip.py
new file mode 100644
index 00000000..20752505
--- /dev/null
+++ b/test/t/test_ip.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestIp:
+ @pytest.mark.complete("ip ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("ip a ")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_iperf.py b/test/t/test_iperf.py
new file mode 100644
index 00000000..23f4df55
--- /dev/null
+++ b/test/t/test_iperf.py
@@ -0,0 +1,20 @@
+import pytest
+
+
+class TestIperf:
+ @pytest.mark.complete("iperf ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("iperf --bind ")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("iperf --client foo --")
+ def test_3(self, completion):
+ assert completion
+ assert "--daemon" not in completion
+
+ @pytest.mark.complete("iperf --server --")
+ def test_4(self, completion):
+ assert "--daemon" in completion
diff --git a/test/t/test_iperf3.py b/test/t/test_iperf3.py
new file mode 100644
index 00000000..cd93a996
--- /dev/null
+++ b/test/t/test_iperf3.py
@@ -0,0 +1,20 @@
+import pytest
+
+
+class TestIperf3:
+ @pytest.mark.complete("iperf3 ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("iperf3 --bind ")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("iperf3 --client foo --")
+ def test_3(self, completion):
+ assert completion
+ assert "--daemon" not in completion
+
+ @pytest.mark.complete("iperf3 --server --")
+ def test_4(self, completion):
+ assert "--daemon" in completion
diff --git a/test/t/test_ipmitool.py b/test/t/test_ipmitool.py
new file mode 100644
index 00000000..5f50ec79
--- /dev/null
+++ b/test/t/test_ipmitool.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestIpmitool:
+ @pytest.mark.complete("ipmitool ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_ipsec.py b/test/t/test_ipsec.py
new file mode 100644
index 00000000..5ff29c74
--- /dev/null
+++ b/test/t/test_ipsec.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestIpsec:
+ @pytest.mark.complete("ipsec ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_iptables.py b/test/t/test_iptables.py
new file mode 100644
index 00000000..7a30bb82
--- /dev/null
+++ b/test/t/test_iptables.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestIptables:
+ @pytest.mark.complete("iptables -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_ipv6calc.py b/test/t/test_ipv6calc.py
new file mode 100644
index 00000000..435af149
--- /dev/null
+++ b/test/t/test_ipv6calc.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestIpv6calc:
+ @pytest.mark.complete("ipv6calc -")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("ipv6calc --in ")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_irb.py b/test/t/test_irb.py
new file mode 100644
index 00000000..31c46e20
--- /dev/null
+++ b/test/t/test_irb.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestIrb:
+ @pytest.mark.complete("irb ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_iscsiadm.py b/test/t/test_iscsiadm.py
new file mode 100644
index 00000000..932ffeb5
--- /dev/null
+++ b/test/t/test_iscsiadm.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestIscsiadm:
+ @pytest.mark.complete("iscsiadm --mode")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_isort.py b/test/t/test_isort.py
new file mode 100644
index 00000000..4fae3244
--- /dev/null
+++ b/test/t/test_isort.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestIsort:
+ @pytest.mark.complete("isort ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("isort -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_isql.py b/test/t/test_isql.py
new file mode 100644
index 00000000..7ff0bdb4
--- /dev/null
+++ b/test/t/test_isql.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(pre_cmds=("ODBCINI=isql/odbc.ini",))
+class TestIsql:
+ @pytest.mark.complete("isql ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_iwconfig.py b/test/t/test_iwconfig.py
new file mode 100644
index 00000000..3ac4b31a
--- /dev/null
+++ b/test/t/test_iwconfig.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestIwconfig:
+ @pytest.mark.complete("iwconfig --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_iwlist.py b/test/t/test_iwlist.py
new file mode 100644
index 00000000..77ffb99c
--- /dev/null
+++ b/test/t/test_iwlist.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestIwlist:
+ @pytest.mark.complete("iwlist --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_iwpriv.py b/test/t/test_iwpriv.py
new file mode 100644
index 00000000..dac214ae
--- /dev/null
+++ b/test/t/test_iwpriv.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestIwpriv:
+ @pytest.mark.complete("iwpriv --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_iwspy.py b/test/t/test_iwspy.py
new file mode 100644
index 00000000..398df371
--- /dev/null
+++ b/test/t/test_iwspy.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestIwspy:
+ @pytest.mark.complete("iwspy --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_jar.py b/test/t/test_jar.py
new file mode 100644
index 00000000..5d4ed8a9
--- /dev/null
+++ b/test/t/test_jar.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestJar:
+ @pytest.mark.complete("jar ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_jarsigner.py b/test/t/test_jarsigner.py
new file mode 100644
index 00000000..a6efa6a3
--- /dev/null
+++ b/test/t/test_jarsigner.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestJarsigner:
+ @pytest.mark.complete("jarsigner ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_java.py b/test/t/test_java.py
new file mode 100644
index 00000000..81f07c68
--- /dev/null
+++ b/test/t/test_java.py
@@ -0,0 +1,30 @@
+import pytest
+
+
+@pytest.mark.bashcomp(
+ pre_cmds=("CLASSPATH=$PWD/java/a:$PWD/java/bashcomp.jar",)
+)
+class TestJava:
+ @pytest.mark.complete("java -")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("java ")
+ def test_2(self, completion):
+ assert completion == "b bashcomp.jarred c. toplevel".split()
+
+ @pytest.mark.complete("java -classpath java/bashcomp.jar ")
+ def test_3(self, completion):
+ assert completion == "bashcomp.jarred toplevel".split()
+
+ @pytest.mark.complete("java -cp java/bashcomp.jar:java/a/c ")
+ def test_4(self, completion):
+ assert completion == "bashcomp.jarred d toplevel".split()
+
+ @pytest.mark.complete("java -cp '' ")
+ def test_5(self, completion):
+ assert not completion
+
+ @pytest.mark.complete("java -jar java/")
+ def test_6(self, completion):
+ assert completion == "a/ bashcomp.jar bashcomp.war".split()
diff --git a/test/t/test_javac.py b/test/t/test_javac.py
new file mode 100644
index 00000000..197004e7
--- /dev/null
+++ b/test/t/test_javac.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestJavac:
+ @pytest.mark.complete("javac ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("javac -cp java/")
+ def test_2(self, completion):
+ assert completion == "a/ bashcomp.jar".split()
diff --git a/test/t/test_javadoc.py b/test/t/test_javadoc.py
new file mode 100644
index 00000000..395d196d
--- /dev/null
+++ b/test/t/test_javadoc.py
@@ -0,0 +1,17 @@
+import pytest
+
+
+class TestJavadoc:
+ @pytest.mark.complete("javadoc ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("javadoc -linkoffline shared/default/")
+ def test_2(self, completion):
+ assert completion == ["bar bar.d/", "foo.d/"]
+
+ @pytest.mark.complete(
+ "javadoc -nodeprecated -linkoffline foo shared/default/"
+ )
+ def test_3(self, completion):
+ assert completion == ["bar bar.d/", "foo.d/"]
diff --git a/test/t/test_javaws.py b/test/t/test_javaws.py
new file mode 100644
index 00000000..9f51c58b
--- /dev/null
+++ b/test/t/test_javaws.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestJavaws:
+ @pytest.mark.complete("javaws ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_jpegoptim.py b/test/t/test_jpegoptim.py
new file mode 100644
index 00000000..01eb739c
--- /dev/null
+++ b/test/t/test_jpegoptim.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestJpegoptim:
+ @pytest.mark.complete("jpegoptim ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_jps.py b/test/t/test_jps.py
new file mode 100644
index 00000000..add9ef97
--- /dev/null
+++ b/test/t/test_jps.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestJps:
+ @pytest.mark.complete("jps -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_jq.py b/test/t/test_jq.py
new file mode 100644
index 00000000..c858411f
--- /dev/null
+++ b/test/t/test_jq.py
@@ -0,0 +1,31 @@
+import pytest
+
+
+class TestJq:
+ @pytest.mark.complete("jq ")
+ def test_1(self, completion):
+ assert not completion
+
+ @pytest.mark.complete("jq . ")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete(
+ "jq -",
+ skipif="! (jq --help 2>&1 || :) | "
+ "command grep -qF 'options include'",
+ )
+ def test_3(self, completion):
+ assert completion
+
+ @pytest.mark.complete("jq --arg ")
+ def test_4(self, completion):
+ assert not completion
+
+ @pytest.mark.complete("jq --slurpfile ")
+ def test_5(self, completion):
+ assert not completion
+
+ @pytest.mark.complete("jq --slurpfile foo ")
+ def test_6(self, completion):
+ assert completion
diff --git a/test/t/test_jshint.py b/test/t/test_jshint.py
new file mode 100644
index 00000000..511e7c9d
--- /dev/null
+++ b/test/t/test_jshint.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestJshint:
+ @pytest.mark.complete("jshint ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_json_xs.py b/test/t/test_json_xs.py
new file mode 100644
index 00000000..f6174b10
--- /dev/null
+++ b/test/t/test_json_xs.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestJsonXs:
+ @pytest.mark.complete("json_xs ")
+ def test_1(self, completion):
+ assert not completion
+
+ @pytest.mark.complete("json_xs -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_jsonschema.py b/test/t/test_jsonschema.py
new file mode 100644
index 00000000..0905fd7f
--- /dev/null
+++ b/test/t/test_jsonschema.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestJsonschema:
+ @pytest.mark.complete("jsonschema ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("jsonschema -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_k3b.py b/test/t/test_k3b.py
new file mode 100644
index 00000000..d9940ba5
--- /dev/null
+++ b/test/t/test_k3b.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestK3b:
+ @pytest.mark.complete("k3b ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_kcov.py b/test/t/test_kcov.py
new file mode 100644
index 00000000..ce985a78
--- /dev/null
+++ b/test/t/test_kcov.py
@@ -0,0 +1,16 @@
+import pytest
+
+
+class TestKcov:
+ @pytest.mark.complete("kcov ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("kcov --exclude-patter")
+ def test_2(self, completion):
+ assert completion == "--exclude-pattern="
+ assert completion.endswith("=")
+
+ @pytest.mark.complete("kcov -l 42,")
+ def test_3(self, completion):
+ assert completion
diff --git a/test/t/test_kdvi.py b/test/t/test_kdvi.py
new file mode 100644
index 00000000..7fb11cb0
--- /dev/null
+++ b/test/t/test_kdvi.py
@@ -0,0 +1,10 @@
+import pytest
+
+
+class TestKdvi:
+ @pytest.mark.complete("kdvi ", cwd="kdvi")
+ def test_1(self, completion):
+ assert (
+ completion == "foo/ .dvi .DVI .dvi.bz2 .DVI.bz2 .dvi.gz "
+ ".DVI.gz .dvi.Z .DVI.Z".split()
+ )
diff --git a/test/t/test_kill.py b/test/t/test_kill.py
new file mode 100644
index 00000000..59d5fa2b
--- /dev/null
+++ b/test/t/test_kill.py
@@ -0,0 +1,15 @@
+import pytest
+
+
+class TestKill:
+ @pytest.mark.complete("kill 1", skipif="! type ps &>/dev/null")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("kill -s ")
+ def test_2(self, completion):
+ assert all(x in completion for x in "HUP QUIT".split())
+
+ @pytest.mark.complete("kill -")
+ def test_3(self, completion):
+ assert all("-%s" % x in completion for x in "l s ABRT USR1".split())
diff --git a/test/t/test_killall.py b/test/t/test_killall.py
new file mode 100644
index 00000000..725a16e4
--- /dev/null
+++ b/test/t/test_killall.py
@@ -0,0 +1,13 @@
+import pytest
+
+
+class TestKillall:
+
+ # "p": Assume our process name completion runs ps and at least it is shown
+ @pytest.mark.complete("killall p")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("killall --signal ")
+ def test_2(self, completion):
+ assert all(x in completion for x in "INT KILL TERM".split())
diff --git a/test/t/test_kldload.py b/test/t/test_kldload.py
new file mode 100644
index 00000000..2965e446
--- /dev/null
+++ b/test/t/test_kldload.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestKldload:
+ @pytest.mark.complete("kldload ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_kldunload.py b/test/t/test_kldunload.py
new file mode 100644
index 00000000..a52c99eb
--- /dev/null
+++ b/test/t/test_kldunload.py
@@ -0,0 +1,16 @@
+import subprocess
+
+import pytest
+
+
+class TestKldunload:
+ @pytest.mark.complete("kldunload ")
+ def test_1(self, completion):
+ try:
+ subprocess.check_call(
+ r"kldstat 2>/dev/null | command grep -q '\.ko$'", shell=True
+ )
+ except BaseException:
+ assert not completion
+ else:
+ assert completion
diff --git a/test/t/test_koji.py b/test/t/test_koji.py
new file mode 100644
index 00000000..68a8477b
--- /dev/null
+++ b/test/t/test_koji.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestKoji:
+ @pytest.mark.complete("koji ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("koji -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_kpdf.py b/test/t/test_kpdf.py
new file mode 100644
index 00000000..ceee34d3
--- /dev/null
+++ b/test/t/test_kpdf.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestKpdf:
+ @pytest.mark.complete("kpdf ", cwd="kpdf")
+ def test_1(self, completion):
+ assert completion == "foo/ .eps .ps .EPS .PS .pdf .PDF".split()
diff --git a/test/t/test_kplayer.py b/test/t/test_kplayer.py
new file mode 100644
index 00000000..ef8a08e6
--- /dev/null
+++ b/test/t/test_kplayer.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestKplayer:
+ @pytest.mark.complete("kplayer ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_ktutil.py b/test/t/test_ktutil.py
new file mode 100644
index 00000000..7c90b802
--- /dev/null
+++ b/test/t/test_ktutil.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestKtutil:
+ @pytest.mark.complete("ktutil ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("ktutil -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_l2ping.py b/test/t/test_l2ping.py
new file mode 100644
index 00000000..7979d734
--- /dev/null
+++ b/test/t/test_l2ping.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestL2ping:
+ @pytest.mark.complete("l2ping -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_larch.py b/test/t/test_larch.py
new file mode 100644
index 00000000..e68183c1
--- /dev/null
+++ b/test/t/test_larch.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestLarch:
+ @pytest.mark.complete("larch library-")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_lastlog.py b/test/t/test_lastlog.py
new file mode 100644
index 00000000..043af962
--- /dev/null
+++ b/test/t/test_lastlog.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestLastlog:
+ @pytest.mark.complete("lastlog -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_ld.py b/test/t/test_ld.py
new file mode 100644
index 00000000..a82f091b
--- /dev/null
+++ b/test/t/test_ld.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestLd:
+ @pytest.mark.complete("ld ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_ldapadd.py b/test/t/test_ldapadd.py
new file mode 100644
index 00000000..24aa5e39
--- /dev/null
+++ b/test/t/test_ldapadd.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestLdapadd:
+ @pytest.mark.complete("ldapadd -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_ldapcompare.py b/test/t/test_ldapcompare.py
new file mode 100644
index 00000000..6a3afe9a
--- /dev/null
+++ b/test/t/test_ldapcompare.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestLdapcompare:
+ @pytest.mark.complete("ldapcompare -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_ldapdelete.py b/test/t/test_ldapdelete.py
new file mode 100644
index 00000000..2065d9bc
--- /dev/null
+++ b/test/t/test_ldapdelete.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestLdapdelete:
+ @pytest.mark.complete("ldapdelete -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_ldapmodrdn.py b/test/t/test_ldapmodrdn.py
new file mode 100644
index 00000000..da8bdbdc
--- /dev/null
+++ b/test/t/test_ldapmodrdn.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestLdapmodrdn:
+ @pytest.mark.complete("ldapmodrdn -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_ldappasswd.py b/test/t/test_ldappasswd.py
new file mode 100644
index 00000000..e559f23b
--- /dev/null
+++ b/test/t/test_ldappasswd.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestLdappasswd:
+ @pytest.mark.complete("ldappasswd -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_ldapsearch.py b/test/t/test_ldapsearch.py
new file mode 100644
index 00000000..43797f41
--- /dev/null
+++ b/test/t/test_ldapsearch.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestLdapsearch:
+ @pytest.mark.complete("ldapsearch -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_ldapvi.py b/test/t/test_ldapvi.py
new file mode 100644
index 00000000..a81ae180
--- /dev/null
+++ b/test/t/test_ldapvi.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestLdapvi:
+ @pytest.mark.complete("ldapvi -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_ldapwhoami.py b/test/t/test_ldapwhoami.py
new file mode 100644
index 00000000..9dcfb5f8
--- /dev/null
+++ b/test/t/test_ldapwhoami.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestLdapwhoami:
+ @pytest.mark.complete("ldapwhoami -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_ldd.py b/test/t/test_ldd.py
new file mode 100644
index 00000000..8c463b60
--- /dev/null
+++ b/test/t/test_ldd.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestLdd:
+ @pytest.mark.complete("ldd ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_less.py b/test/t/test_less.py
new file mode 100644
index 00000000..79cdf183
--- /dev/null
+++ b/test/t/test_less.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestLess:
+ @pytest.mark.complete("less --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_lftp.py b/test/t/test_lftp.py
new file mode 100644
index 00000000..18506f61
--- /dev/null
+++ b/test/t/test_lftp.py
@@ -0,0 +1,14 @@
+import pytest
+
+from conftest import assert_bash_exec
+
+
+@pytest.mark.bashcomp(pre_cmds=("HOME=$PWD/lftp",))
+class TestLftp:
+ @pytest.mark.complete("lftp ")
+ def test_1(self, bash, completion):
+ hosts = assert_bash_exec(
+ bash, "compgen -A hostname", want_output=True
+ ).split()
+ assert all(x in completion for x in hosts)
+ assert "lftptest" in completion # defined in lftp/.lftp/bookmarks
diff --git a/test/t/test_lftpget.py b/test/t/test_lftpget.py
new file mode 100644
index 00000000..c1f453e9
--- /dev/null
+++ b/test/t/test_lftpget.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestLftpget:
+ @pytest.mark.complete("lftpget -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_lilo.py b/test/t/test_lilo.py
new file mode 100644
index 00000000..9783f506
--- /dev/null
+++ b/test/t/test_lilo.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestLilo:
+ @pytest.mark.complete("lilo -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_links.py b/test/t/test_links.py
new file mode 100644
index 00000000..f21b8728
--- /dev/null
+++ b/test/t/test_links.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestLinks:
+ @pytest.mark.complete("links ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("links -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_lintian.py b/test/t/test_lintian.py
new file mode 100644
index 00000000..c6526426
--- /dev/null
+++ b/test/t/test_lintian.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestLintian:
+ @pytest.mark.complete("lintian --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_lintian_info.py b/test/t/test_lintian_info.py
new file mode 100644
index 00000000..6bcc9e52
--- /dev/null
+++ b/test/t/test_lintian_info.py
@@ -0,0 +1,12 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="lintian-info")
+class TestLintianInfo:
+ @pytest.mark.complete("lintian-info ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("lintian-info --")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_lisp.py b/test/t/test_lisp.py
new file mode 100644
index 00000000..84770610
--- /dev/null
+++ b/test/t/test_lisp.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestLisp:
+ @pytest.mark.complete("lisp ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_list_admins.py b/test/t/test_list_admins.py
new file mode 100644
index 00000000..b65387e5
--- /dev/null
+++ b/test/t/test_list_admins.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestListAdmins:
+ @pytest.mark.complete("list_admins -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_list_lists.py b/test/t/test_list_lists.py
new file mode 100644
index 00000000..966ca251
--- /dev/null
+++ b/test/t/test_list_lists.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestListLists:
+ @pytest.mark.complete("list_lists -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_list_members.py b/test/t/test_list_members.py
new file mode 100644
index 00000000..96ea2ef3
--- /dev/null
+++ b/test/t/test_list_members.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestListMembers:
+ @pytest.mark.complete("list_members -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_list_owners.py b/test/t/test_list_owners.py
new file mode 100644
index 00000000..2a6bcab8
--- /dev/null
+++ b/test/t/test_list_owners.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(pre_cmds=("PATH=/usr/lib/mailman/bin:$PATH",))
+class TestListOwners:
+ @pytest.mark.complete("list_owners -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_ln.py b/test/t/test_ln.py
new file mode 100644
index 00000000..de053345
--- /dev/null
+++ b/test/t/test_ln.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestLn:
+ @pytest.mark.complete("ln ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_locale_gen.py b/test/t/test_locale_gen.py
new file mode 100644
index 00000000..41ac376f
--- /dev/null
+++ b/test/t/test_locale_gen.py
@@ -0,0 +1,12 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="locale-gen")
+class TestLocaleGen:
+ @pytest.mark.complete("locale-gen ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("locale-gen --")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_look.py b/test/t/test_look.py
new file mode 100644
index 00000000..fd6800e5
--- /dev/null
+++ b/test/t/test_look.py
@@ -0,0 +1,16 @@
+import subprocess
+
+import pytest
+
+
+class TestLook:
+ @pytest.mark.complete("look foo")
+ def test_1(self, completion):
+ try:
+ subprocess.check_call(
+ "look foo 2>/dev/null | command grep -q ^foo", shell=True
+ )
+ except BaseException:
+ assert not completion
+ else:
+ assert completion
diff --git a/test/t/test_lpq.py b/test/t/test_lpq.py
new file mode 100644
index 00000000..0d69270d
--- /dev/null
+++ b/test/t/test_lpq.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestLpq:
+ @pytest.mark.complete("lpq ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_lpr.py b/test/t/test_lpr.py
new file mode 100644
index 00000000..30c710bb
--- /dev/null
+++ b/test/t/test_lpr.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestLpr:
+ @pytest.mark.complete("lpr ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_lrzip.py b/test/t/test_lrzip.py
new file mode 100644
index 00000000..266d8a30
--- /dev/null
+++ b/test/t/test_lrzip.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestLrzip:
+ @pytest.mark.complete("lrzip ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("lrzip ~")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_ls.py b/test/t/test_ls.py
new file mode 100644
index 00000000..ed5ad9c4
--- /dev/null
+++ b/test/t/test_ls.py
@@ -0,0 +1,38 @@
+import pytest
+
+from conftest import (
+ assert_bash_exec,
+ assert_complete,
+ find_unique_completion_pair,
+)
+
+
+class TestLs:
+ @pytest.mark.complete("ls --", skipif="! ls --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("ls ~")
+ def test_2(self, completion):
+ assert completion
+
+ def test_3(self, bash):
+ """~part should complete to ~full<SPACE> if home dir does not exist."""
+ res = (
+ assert_bash_exec(
+ bash,
+ "for u in $(compgen -u); do "
+ "eval test -d ~$u || echo $u; unset u; done",
+ want_output=True,
+ )
+ .strip()
+ .split()
+ )
+ part_full = find_unique_completion_pair(res)
+ if not part_full:
+ pytest.skip("No suitable test user found")
+ return
+ part, full = part_full
+ completion = assert_complete(bash, "ls ~%s" % part)
+ assert completion == "~%s" % full
+ assert completion.endswith(" ")
diff --git a/test/t/test_lsof.py b/test/t/test_lsof.py
new file mode 100644
index 00000000..170d2690
--- /dev/null
+++ b/test/t/test_lsof.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestLsof:
+ @pytest.mark.complete("lsof ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("lsof -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_lspci.py b/test/t/test_lspci.py
new file mode 100644
index 00000000..44663426
--- /dev/null
+++ b/test/t/test_lspci.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestLspci:
+ @pytest.mark.complete("lspci -")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("lspci -A ")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_lsscsi.py b/test/t/test_lsscsi.py
new file mode 100644
index 00000000..a297b375
--- /dev/null
+++ b/test/t/test_lsscsi.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestLsscsi:
+ @pytest.mark.complete("lsscsi ")
+ def test_1(self, completion):
+ assert not completion
+
+ @pytest.mark.complete("lsscsi -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_lsusb.py b/test/t/test_lsusb.py
new file mode 100644
index 00000000..9c546d32
--- /dev/null
+++ b/test/t/test_lsusb.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestLsusb:
+ @pytest.mark.complete("lsusb -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_lua.py b/test/t/test_lua.py
new file mode 100644
index 00000000..edcae883
--- /dev/null
+++ b/test/t/test_lua.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestLua:
+ @pytest.mark.complete("lua ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_luac.py b/test/t/test_luac.py
new file mode 100644
index 00000000..f14d400a
--- /dev/null
+++ b/test/t/test_luac.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestLuac:
+ @pytest.mark.complete("luac ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_luseradd.py b/test/t/test_luseradd.py
new file mode 100644
index 00000000..35c89e54
--- /dev/null
+++ b/test/t/test_luseradd.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestLuseradd:
+ @pytest.mark.complete("luseradd -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_luserdel.py b/test/t/test_luserdel.py
new file mode 100644
index 00000000..cdca2a57
--- /dev/null
+++ b/test/t/test_luserdel.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestLuserdel:
+ @pytest.mark.complete("luserdel ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_lusermod.py b/test/t/test_lusermod.py
new file mode 100644
index 00000000..69ef07c2
--- /dev/null
+++ b/test/t/test_lusermod.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestLusermod:
+ @pytest.mark.complete("lusermod ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_lvchange.py b/test/t/test_lvchange.py
new file mode 100644
index 00000000..5722a581
--- /dev/null
+++ b/test/t/test_lvchange.py
@@ -0,0 +1,9 @@
+import pytest
+
+
+class TestLvchange:
+ @pytest.mark.complete(
+ "lvchange --", skipif="! lvchange --help &>/dev/null"
+ )
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_lvcreate.py b/test/t/test_lvcreate.py
new file mode 100644
index 00000000..e60432f6
--- /dev/null
+++ b/test/t/test_lvcreate.py
@@ -0,0 +1,9 @@
+import pytest
+
+
+class TestLvcreate:
+ @pytest.mark.complete(
+ "lvcreate --", skipif="! lvcreate --help &>/dev/null"
+ )
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_lvdisplay.py b/test/t/test_lvdisplay.py
new file mode 100644
index 00000000..e9a955ed
--- /dev/null
+++ b/test/t/test_lvdisplay.py
@@ -0,0 +1,9 @@
+import pytest
+
+
+class TestLvdisplay:
+ @pytest.mark.complete(
+ "lvdisplay --", skipif="! lvdisplay --help &>/dev/null"
+ )
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_lvextend.py b/test/t/test_lvextend.py
new file mode 100644
index 00000000..68e17848
--- /dev/null
+++ b/test/t/test_lvextend.py
@@ -0,0 +1,9 @@
+import pytest
+
+
+class TestLvextend:
+ @pytest.mark.complete(
+ "lvextend --", skipif="! lvextend --help &>/dev/null"
+ )
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_lvm.py b/test/t/test_lvm.py
new file mode 100644
index 00000000..ea25b977
--- /dev/null
+++ b/test/t/test_lvm.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestLvm:
+ @pytest.mark.complete("lvm pv")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_lvmdiskscan.py b/test/t/test_lvmdiskscan.py
new file mode 100644
index 00000000..0716d5c4
--- /dev/null
+++ b/test/t/test_lvmdiskscan.py
@@ -0,0 +1,9 @@
+import pytest
+
+
+class TestLvmdiskscan:
+ @pytest.mark.complete(
+ "lvmdiskscan --", skipif="! lvmdiskscan --help &>/dev/null"
+ )
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_lvreduce.py b/test/t/test_lvreduce.py
new file mode 100644
index 00000000..50b038fd
--- /dev/null
+++ b/test/t/test_lvreduce.py
@@ -0,0 +1,9 @@
+import pytest
+
+
+class TestLvreduce:
+ @pytest.mark.complete(
+ "lvreduce --", skipif="! lvreduce --help &>/dev/null"
+ )
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_lvremove.py b/test/t/test_lvremove.py
new file mode 100644
index 00000000..53950aec
--- /dev/null
+++ b/test/t/test_lvremove.py
@@ -0,0 +1,9 @@
+import pytest
+
+
+class TestLvremove:
+ @pytest.mark.complete(
+ "lvremove --", skipif="! lvremove --help &>/dev/null"
+ )
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_lvrename.py b/test/t/test_lvrename.py
new file mode 100644
index 00000000..c60469f5
--- /dev/null
+++ b/test/t/test_lvrename.py
@@ -0,0 +1,9 @@
+import pytest
+
+
+class TestLvrename:
+ @pytest.mark.complete(
+ "lvrename --", skipif="! lvrename --help &>/dev/null"
+ )
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_lvresize.py b/test/t/test_lvresize.py
new file mode 100644
index 00000000..aecc8bf4
--- /dev/null
+++ b/test/t/test_lvresize.py
@@ -0,0 +1,9 @@
+import pytest
+
+
+class TestLvresize:
+ @pytest.mark.complete(
+ "lvresize --", skipif="! lvresize --help &>/dev/null"
+ )
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_lvs.py b/test/t/test_lvs.py
new file mode 100644
index 00000000..456368b9
--- /dev/null
+++ b/test/t/test_lvs.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestLvs:
+ @pytest.mark.complete("lvs --", skipif="! lvs --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_lvscan.py b/test/t/test_lvscan.py
new file mode 100644
index 00000000..4848fe4c
--- /dev/null
+++ b/test/t/test_lvscan.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestLvscan:
+ @pytest.mark.complete("lvscan --", skipif="! lvscan --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_lz4.py b/test/t/test_lz4.py
new file mode 100644
index 00000000..0d873b66
--- /dev/null
+++ b/test/t/test_lz4.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestLz4:
+ @pytest.mark.complete("lz4 ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("lz4 ~")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_lzip.py b/test/t/test_lzip.py
new file mode 100644
index 00000000..6f1dc023
--- /dev/null
+++ b/test/t/test_lzip.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestLzip:
+ @pytest.mark.complete("lzip ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_lzma.py b/test/t/test_lzma.py
new file mode 100644
index 00000000..f9d89926
--- /dev/null
+++ b/test/t/test_lzma.py
@@ -0,0 +1,19 @@
+import pytest
+
+
+class TestLzma:
+ @pytest.mark.complete("lzma ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("lzma -")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("lzma -d xz/")
+ def test_3(self, completion):
+ assert completion == "a/ bashcomp.lzma bashcomp.tlz".split()
+
+ @pytest.mark.complete("lzma ~")
+ def test_4(self, completion):
+ assert completion
diff --git a/test/t/test_lzop.py b/test/t/test_lzop.py
new file mode 100644
index 00000000..bd010fde
--- /dev/null
+++ b/test/t/test_lzop.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestLzop:
+ @pytest.mark.complete("lzop ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("lzop ~")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_m4.py b/test/t/test_m4.py
new file mode 100644
index 00000000..d80a7538
--- /dev/null
+++ b/test/t/test_m4.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestM4:
+ @pytest.mark.complete("m4 --", skipif="! m4 --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_macof.py b/test/t/test_macof.py
new file mode 100644
index 00000000..8030c379
--- /dev/null
+++ b/test/t/test_macof.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestMacof:
+ @pytest.mark.complete("macof -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_mailmanctl.py b/test/t/test_mailmanctl.py
new file mode 100644
index 00000000..2baa0500
--- /dev/null
+++ b/test/t/test_mailmanctl.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(pre_cmds=("PATH=/usr/lib/mailman/bin:$PATH",))
+class TestMailmanctl:
+ @pytest.mark.complete("mailmanctl ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_mailsnarf.py b/test/t/test_mailsnarf.py
new file mode 100644
index 00000000..4e264a6e
--- /dev/null
+++ b/test/t/test_mailsnarf.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestMailsnarf:
+ @pytest.mark.complete("mailsnarf -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_make.py b/test/t/test_make.py
new file mode 100644
index 00000000..9c76f83c
--- /dev/null
+++ b/test/t/test_make.py
@@ -0,0 +1,50 @@
+import os
+
+import pytest
+
+from conftest import in_docker
+
+
+class TestMake:
+ @pytest.mark.complete("make -f Ma", cwd="make")
+ def test_1(self, completion):
+ assert completion == "Makefile"
+
+ @pytest.mark.complete("make .", cwd="make")
+ def test_2(self, bash, completion):
+ """Hidden targets."""
+ assert completion == ".cache/ .test_passes".split()
+ os.remove("%s/make/%s" % (bash.cwd, "extra_makefile"))
+
+ @pytest.mark.complete("make .cache/", cwd="make")
+ def test_3(self, bash, completion):
+ assert completion == "1 2".split()
+ os.remove("%s/make/%s" % (bash.cwd, "extra_makefile"))
+
+ @pytest.mark.complete("make ", cwd="shared/empty_dir")
+ def test_4(self, completion):
+ assert not completion
+
+ @pytest.mark.complete("make -j ")
+ def test_5(self, completion):
+ assert completion
+
+ @pytest.mark.complete("make ", cwd="make")
+ def test_6(self, bash, completion):
+ assert completion == "all clean extra_makefile install sample".split()
+ os.remove("%s/make/%s" % (bash.cwd, "extra_makefile"))
+
+ @pytest.mark.xfail(
+ in_docker() and os.environ.get("DIST") == "centos6",
+ reason="Fails for some unknown reason on CentOS 6, "
+ "even though the behavior appears to be correct",
+ )
+ @pytest.mark.complete("make .cache/.", cwd="make")
+ def test_7(self, bash, completion):
+ assert completion == ".1 .2".split()
+ os.remove("%s/make/%s" % (bash.cwd, "extra_makefile"))
+
+ @pytest.mark.complete("make -C make ")
+ def test_8(self, bash, completion):
+ assert completion == "all clean extra_makefile install sample".split()
+ os.remove("%s/make/%s" % (bash.cwd, "extra_makefile"))
diff --git a/test/t/test_makepkg.py b/test/t/test_makepkg.py
new file mode 100644
index 00000000..65f49ea8
--- /dev/null
+++ b/test/t/test_makepkg.py
@@ -0,0 +1,14 @@
+import pytest
+
+
+@pytest.mark.bashcomp(skipif="! makepkg --help 2>&1 | grep -qiF slackware")
+class TestMakepkg:
+ @pytest.mark.complete("makepkg ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("makepkg --")
+ def test_2(self, completion):
+ assert all(
+ x in completion for x in "--chown --linkadd --prepend".split()
+ )
diff --git a/test/t/test_man.py b/test/t/test_man.py
new file mode 100644
index 00000000..60021d99
--- /dev/null
+++ b/test/t/test_man.py
@@ -0,0 +1,108 @@
+import os
+
+import pytest
+
+from conftest import assert_bash_exec, in_docker
+
+
+@pytest.mark.bashcomp(ignore_env=r"^[+-]MANPATH=")
+class TestMan:
+
+ manpath = "$PWD/man"
+ assumed_present = "man"
+
+ @pytest.fixture
+ def colonpath(self, request, bash):
+ try:
+ assert_bash_exec(bash, "uname -s 2>&1 | grep -qiF cygwin")
+ except AssertionError:
+ pass
+ else:
+ pytest.skip("Cygwin doesn't like paths with colons")
+ return
+ assert_bash_exec(bash, "mkdir -p $TESTDIR/../tmp/man/man3")
+ assert_bash_exec(
+ bash, "touch $TESTDIR/../tmp/man/man3/Bash::Completion.3pm.gz"
+ )
+ request.addfinalizer(
+ lambda: assert_bash_exec(bash, "rm -r $TESTDIR/../tmp/man")
+ )
+
+ @pytest.mark.complete(
+ "man bash-completion-testcas", env=dict(MANPATH=manpath)
+ )
+ def test_1(self, completion):
+ assert completion == "bash-completion-testcase"
+
+ @pytest.mark.complete("man man1/f", cwd="man", env=dict(MANPATH=manpath))
+ def test_2(self, completion):
+ assert completion == "man1/foo.1"
+
+ @pytest.mark.complete("man man/", cwd="man", env=dict(MANPATH=manpath))
+ def test_3(self, completion):
+ assert completion == "man/quux.8"
+
+ @pytest.mark.xfail(
+ in_docker() and os.environ.get("DIST") == "centos6",
+ reason="TODO: Fails in CentOS for some reason, unknown "
+ "how to trigger same behavior as tests show (is "
+ "different and correct when tried manually, but here "
+ "at least in CI completes things it should not with "
+ "this MANPATH setting)",
+ )
+ @pytest.mark.complete(
+ "man %s" % assumed_present,
+ cwd="shared/empty_dir",
+ env=dict(MANPATH=manpath),
+ )
+ def test_4(self, completion):
+ """
+ Assumed present should not be completed complete when there's no
+ leading/trailing colon in $MANPATH.
+ """
+ assert not completion
+
+ @pytest.mark.complete(
+ "man %s" % assumed_present,
+ cwd="shared/empty_dir",
+ env=dict(MANPATH="%s:" % manpath),
+ )
+ def test_5(self, completion):
+ """Trailing colon appends system man path."""
+ assert completion
+
+ @pytest.mark.complete(
+ "man bash-completion-testcas", env=dict(MANPATH="%s:" % manpath)
+ )
+ def test_6(self, completion):
+ assert completion == "bash-completion-testcase"
+
+ @pytest.mark.complete(
+ "man %s" % assumed_present,
+ cwd="shared/empty_dir",
+ env=dict(MANPATH=":%s" % manpath),
+ )
+ def test_7(self, completion):
+ """Leading colon prepends system man path."""
+ assert completion
+
+ @pytest.mark.complete(
+ "man bash-completion-testcas", env=dict(MANPATH=":%s" % manpath)
+ )
+ def test_8(self, completion):
+ assert completion == "bash-completion-testcase"
+
+ @pytest.mark.complete(
+ "man %s" % assumed_present,
+ cwd="shared/empty_dir",
+ pre_cmds=("shopt -s failglob",),
+ )
+ def test_9(self, bash, completion):
+ assert self.assumed_present in completion
+ assert_bash_exec(bash, "shopt -u failglob")
+
+ @pytest.mark.complete(
+ "man Bash::C", env=dict(MANPATH="%s:../tmp/man" % manpath)
+ )
+ def test_10(self, bash, colonpath, completion):
+ assert completion == "Bash::Completion"
diff --git a/test/t/test_mc.py b/test/t/test_mc.py
new file mode 100644
index 00000000..9632d6a9
--- /dev/null
+++ b/test/t/test_mc.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestMc:
+ @pytest.mark.complete("mc -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_mcrypt.py b/test/t/test_mcrypt.py
new file mode 100644
index 00000000..da80ef5d
--- /dev/null
+++ b/test/t/test_mcrypt.py
@@ -0,0 +1,15 @@
+import pytest
+
+
+class TestMcrypt:
+ @pytest.mark.complete("mcrypt ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("mcrypt -a ")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("mcrypt -m ")
+ def test_3(self, completion):
+ assert completion
diff --git a/test/t/test_md5sum.py b/test/t/test_md5sum.py
new file mode 100644
index 00000000..fa364ea1
--- /dev/null
+++ b/test/t/test_md5sum.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestMd5sum:
+ @pytest.mark.complete("md5sum ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_mdadm.py b/test/t/test_mdadm.py
new file mode 100644
index 00000000..143007b3
--- /dev/null
+++ b/test/t/test_mdadm.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestMdadm:
+ @pytest.mark.complete("mdadm ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_mdecrypt.py b/test/t/test_mdecrypt.py
new file mode 100644
index 00000000..f6f4c8ed
--- /dev/null
+++ b/test/t/test_mdecrypt.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestMdecrypt:
+ @pytest.mark.complete("mdecrypt ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_mdtool.py b/test/t/test_mdtool.py
new file mode 100644
index 00000000..356e907d
--- /dev/null
+++ b/test/t/test_mdtool.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestMdtool:
+ @pytest.mark.complete("mdtool ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_medusa.py b/test/t/test_medusa.py
new file mode 100644
index 00000000..bffa1c46
--- /dev/null
+++ b/test/t/test_medusa.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestMedusa:
+ @pytest.mark.complete("medusa -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_mencoder.py b/test/t/test_mencoder.py
new file mode 100644
index 00000000..ba946c7e
--- /dev/null
+++ b/test/t/test_mencoder.py
@@ -0,0 +1,12 @@
+import pytest
+
+
+@pytest.mark.bashcomp(pre_cmds=("HOME=$PWD/mplayer",))
+class TestMencoder:
+ @pytest.mark.complete("mencoder ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("mencoder -v")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_mii_diag.py b/test/t/test_mii_diag.py
new file mode 100644
index 00000000..fa527e94
--- /dev/null
+++ b/test/t/test_mii_diag.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="mii-diag")
+class TestMiiDiag:
+ @pytest.mark.complete("mii-diag ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_mii_tool.py b/test/t/test_mii_tool.py
new file mode 100644
index 00000000..32568f82
--- /dev/null
+++ b/test/t/test_mii_tool.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="mii-tool")
+class TestMiiTool:
+ @pytest.mark.complete("mii-tool ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_minicom.py b/test/t/test_minicom.py
new file mode 100644
index 00000000..c004fadd
--- /dev/null
+++ b/test/t/test_minicom.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestMinicom:
+ @pytest.mark.complete("minicom -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_mkdir.py b/test/t/test_mkdir.py
new file mode 100644
index 00000000..a5eb1a54
--- /dev/null
+++ b/test/t/test_mkdir.py
@@ -0,0 +1,18 @@
+import pytest
+
+
+class TestMkdir:
+ @pytest.mark.complete("mkdir ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.xfail # TODO: whitespace split issue
+ @pytest.mark.complete("mkdir ", cwd="shared/default")
+ def test_2(self, completion):
+ assert completion == ["bar bar.d/", "foo", "foo.d/"]
+
+ @pytest.mark.xfail # TODO: why path in completion, basename in .output?
+ @pytest.mark.complete("mkdir shared/default/foo.d/")
+ def test_3(self, completion):
+ assert completion.output == "foo"
+ assert completion == [completion.output]
diff --git a/test/t/test_mkfifo.py b/test/t/test_mkfifo.py
new file mode 100644
index 00000000..b9e0013c
--- /dev/null
+++ b/test/t/test_mkfifo.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestMkfifo:
+ @pytest.mark.complete("mkfifo ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_mkinitrd.py b/test/t/test_mkinitrd.py
new file mode 100644
index 00000000..7305925d
--- /dev/null
+++ b/test/t/test_mkinitrd.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestMkinitrd:
+ @pytest.mark.complete("mkinitrd ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_mkisofs.py b/test/t/test_mkisofs.py
new file mode 100644
index 00000000..541c6e7e
--- /dev/null
+++ b/test/t/test_mkisofs.py
@@ -0,0 +1,15 @@
+import pytest
+
+
+class TestMkisofs:
+ @pytest.mark.complete("mkisofs ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("mkisofs -uid ")
+ def test_2(self, completion):
+ assert not [x for x in completion if not x.isdigit()]
+
+ @pytest.mark.complete("mkisofs -gid ")
+ def test_3(self, completion):
+ assert not [x for x in completion if not x.isdigit()]
diff --git a/test/t/test_mknod.py b/test/t/test_mknod.py
new file mode 100644
index 00000000..46cb2284
--- /dev/null
+++ b/test/t/test_mknod.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestMknod:
+ @pytest.mark.complete("mknod ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_mktemp.py b/test/t/test_mktemp.py
new file mode 100644
index 00000000..9f61be1c
--- /dev/null
+++ b/test/t/test_mktemp.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestMktemp:
+ @pytest.mark.complete("mktemp -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_mmsitepass.py b/test/t/test_mmsitepass.py
new file mode 100644
index 00000000..4dcd9fb0
--- /dev/null
+++ b/test/t/test_mmsitepass.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestMmsitepass:
+ @pytest.mark.complete("mmsitepass -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_mock.py b/test/t/test_mock.py
new file mode 100644
index 00000000..7dc5de2a
--- /dev/null
+++ b/test/t/test_mock.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestMock:
+ @pytest.mark.complete("mock ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_modinfo.py b/test/t/test_modinfo.py
new file mode 100644
index 00000000..4c96eef0
--- /dev/null
+++ b/test/t/test_modinfo.py
@@ -0,0 +1,32 @@
+import subprocess
+
+import pytest
+
+
+class TestModinfo:
+ @pytest.mark.complete("modinfo -")
+ def test_1(self, completion):
+ assert completion
+
+ # "in": intel*, ...
+ @pytest.mark.complete(
+ "modinfo in",
+ skipif="! ls /lib/modules/%s &>/dev/null"
+ % subprocess.check_output(
+ "uname -r 2>/dev/null || " "echo non-existent-kernel", shell=True
+ )
+ .decode()
+ .strip(),
+ )
+ def test_2(self, completion):
+ assert completion
+
+ # "in": intel*, ...
+ @pytest.mark.complete("modinfo -k non-existent-kernel in")
+ def test_3(self, completion):
+ assert not completion
+
+ @pytest.mark.complete("modinfo /tm")
+ def test_4(self, completion):
+ assert completion
+ assert not completion.endswith(" ")
diff --git a/test/t/test_modprobe.py b/test/t/test_modprobe.py
new file mode 100644
index 00000000..339240f6
--- /dev/null
+++ b/test/t/test_modprobe.py
@@ -0,0 +1,36 @@
+import subprocess
+
+import pytest
+
+
+class TestModprobe:
+ @pytest.mark.complete("modprobe --al")
+ def test_1(self, completion):
+ assert completion == "--all"
+
+ # "in": intel*, ...
+ @pytest.mark.complete(
+ "modprobe in",
+ skipif="! ls /lib/modules/%s &>/dev/null"
+ % subprocess.check_output(
+ "uname -r 2>/dev/null || " "echo non-existent-kernel", shell=True
+ )
+ .decode()
+ .strip(),
+ )
+ def test_2(self, completion):
+ assert completion
+
+ # "in": intel*, ...
+ @pytest.mark.complete("modprobe -S non-existent-kernel in")
+ def test_3(self, completion):
+ assert not completion
+
+ @pytest.mark.complete("modprobe non-existent-module ")
+ def test_4(self, completion):
+ assert not completion
+
+ @pytest.mark.complete("modprobe /tm")
+ def test_5(self, completion):
+ assert completion
+ assert not completion.endswith(" ")
diff --git a/test/t/test_module.py b/test/t/test_module.py
new file mode 100644
index 00000000..a66dea74
--- /dev/null
+++ b/test/t/test_module.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestModule:
+ @pytest.mark.complete("module ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_mogrify.py b/test/t/test_mogrify.py
new file mode 100644
index 00000000..22d84a89
--- /dev/null
+++ b/test/t/test_mogrify.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestMogrify:
+ @pytest.mark.complete("mogrify ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_monodevelop.py b/test/t/test_monodevelop.py
new file mode 100644
index 00000000..472b1aba
--- /dev/null
+++ b/test/t/test_monodevelop.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestMonodevelop:
+ @pytest.mark.complete("monodevelop ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_montage.py b/test/t/test_montage.py
new file mode 100644
index 00000000..1237c7df
--- /dev/null
+++ b/test/t/test_montage.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestMontage:
+ @pytest.mark.complete("montage ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_mount.py b/test/t/test_mount.py
new file mode 100644
index 00000000..fbd6dcae
--- /dev/null
+++ b/test/t/test_mount.py
@@ -0,0 +1,22 @@
+import pytest
+
+
+class TestMount:
+ @pytest.mark.complete("mount ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("mount -t ")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("mount /dev/sda1 def", cwd="shared")
+ def test_3(self, completion):
+ assert completion == "default/"
+ assert not completion.endswith(" ")
+
+ @pytest.mark.complete(
+ "mount mocksrv:/", env=dict(PATH="$PWD/mount/bin:$PATH")
+ )
+ def test_4(self, completion):
+ assert completion == "/second/path /test/path /test/path2".split()
diff --git a/test/t/test_mplayer.py b/test/t/test_mplayer.py
new file mode 100644
index 00000000..88d7b9f1
--- /dev/null
+++ b/test/t/test_mplayer.py
@@ -0,0 +1,12 @@
+import pytest
+
+
+@pytest.mark.bashcomp(pre_cmds=("HOME=$PWD/mplayer",))
+class TestMplayer:
+ @pytest.mark.complete("mplayer ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("mplayer -h")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_mr.py b/test/t/test_mr.py
new file mode 100644
index 00000000..ab45350b
--- /dev/null
+++ b/test/t/test_mr.py
@@ -0,0 +1,43 @@
+import pytest
+
+
+class TestMr:
+ @pytest.mark.complete("mr ")
+ def test_1(self, completion):
+ assert completion
+
+ # man -h tests below: Some mr versions require man to be around in order
+ # to provide useful output.
+
+ @pytest.mark.complete("mr --", skipif="! man -h &>/dev/null")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete(
+ "mr -c shared/default/foo.d/", skipif="! man -h &>/dev/null"
+ )
+ def test_3(self, completion):
+ assert completion == "shared/default/foo.d/foo"
+
+ @pytest.mark.complete(
+ "mr bootstrap shared/default/", skipif="! man -h &>/dev/null"
+ )
+ def test_4(self, completion):
+ assert completion == ["bar", "bar bar.d/", "foo", "foo.d/"]
+
+ @pytest.mark.xfail # "clean" doesn't exist before mr 1.20141023
+ @pytest.mark.complete("mr clean -", skipif="! man -h &>/dev/null")
+ def test_5(self, completion):
+ assert completion == "-f"
+
+ @pytest.mark.complete("mr commit -", skipif="! man -h &>/dev/null")
+ def test_6(self, completion):
+ assert completion == "-m"
+
+ @pytest.mark.complete("mr status ", skipif="! man -h &>/dev/null")
+ def test_7(self, completion):
+ assert not completion
+
+ @pytest.mark.complete("mr run ", skipif="! man -h &>/dev/null")
+ def test_8(self, completion):
+ assert completion
diff --git a/test/t/test_msgsnarf.py b/test/t/test_msgsnarf.py
new file mode 100644
index 00000000..5ef0fcb7
--- /dev/null
+++ b/test/t/test_msgsnarf.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestMsgsnarf:
+ @pytest.mark.complete("msgsnarf -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_msynctool.py b/test/t/test_msynctool.py
new file mode 100644
index 00000000..530d751b
--- /dev/null
+++ b/test/t/test_msynctool.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestMsynctool:
+ @pytest.mark.complete("msynctool ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_mtx.py b/test/t/test_mtx.py
new file mode 100644
index 00000000..6b6f59b5
--- /dev/null
+++ b/test/t/test_mtx.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestMtx:
+ @pytest.mark.complete("mtx ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_munin_node_configure.py b/test/t/test_munin_node_configure.py
new file mode 100644
index 00000000..f3f23e7d
--- /dev/null
+++ b/test/t/test_munin_node_configure.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="munin-node-configure")
+class TestMuninNodeConfigure:
+ @pytest.mark.complete("munin-node-configure --libdir ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_munin_run.py b/test/t/test_munin_run.py
new file mode 100644
index 00000000..1bcb4d85
--- /dev/null
+++ b/test/t/test_munin_run.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="munin-run")
+class TestMuninRun:
+ @pytest.mark.complete("munin-run -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_munindoc.py b/test/t/test_munindoc.py
new file mode 100644
index 00000000..6b226e43
--- /dev/null
+++ b/test/t/test_munindoc.py
@@ -0,0 +1,9 @@
+import pytest
+
+
+class TestMunindoc:
+
+ # Assume at least munin* available
+ @pytest.mark.complete("munindoc m")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_mussh.py b/test/t/test_mussh.py
new file mode 100644
index 00000000..87dd52a1
--- /dev/null
+++ b/test/t/test_mussh.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestMussh:
+ @pytest.mark.complete("mussh -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_mutt.py b/test/t/test_mutt.py
new file mode 100644
index 00000000..b490c88b
--- /dev/null
+++ b/test/t/test_mutt.py
@@ -0,0 +1,33 @@
+import pytest
+
+from conftest import assert_bash_exec
+
+
+@pytest.mark.bashcomp(pre_cmds=("HOME=$PWD/mutt",))
+class TestMutt:
+ @pytest.mark.complete("mutt -")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("mutt -F muttrc -f =", cwd="mutt")
+ def test_2(self, completion):
+ assert completion == "bar/ foo/ muttrc".split()
+
+ @pytest.mark.complete("mutt -F muttrc -A ", cwd="mutt")
+ def test_3(self, completion):
+ assert completion == "a1 a2".split()
+
+ def test_4(self, bash):
+ got = (
+ assert_bash_exec(
+ bash,
+ '_muttconffiles "$HOME/muttrc" "$HOME/muttrc"',
+ want_output=True,
+ )
+ .strip()
+ .split()
+ )
+ assert got == [
+ "%s/mutt/%s" % (bash.cwd, x)
+ for x in ("muttrc", "bar/muttrc_b", "foo/muttrc_f")
+ ]
diff --git a/test/t/test_muttng.py b/test/t/test_muttng.py
new file mode 100644
index 00000000..3ce19ac9
--- /dev/null
+++ b/test/t/test_muttng.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestMuttng:
+ @pytest.mark.complete("muttng -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_mv.py b/test/t/test_mv.py
new file mode 100644
index 00000000..a9fc969d
--- /dev/null
+++ b/test/t/test_mv.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestMv:
+ @pytest.mark.complete("mv ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_mypy.py b/test/t/test_mypy.py
new file mode 100644
index 00000000..cecea92d
--- /dev/null
+++ b/test/t/test_mypy.py
@@ -0,0 +1,15 @@
+import pytest
+
+
+class TestMypy:
+ @pytest.mark.complete("mypy ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("mypy --")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("mypy --non-existent-option=--")
+ def test_3(self, completion):
+ assert not completion
diff --git a/test/t/test_mysql.py b/test/t/test_mysql.py
new file mode 100644
index 00000000..6a44b7e5
--- /dev/null
+++ b/test/t/test_mysql.py
@@ -0,0 +1,15 @@
+import pytest
+
+
+class TestMysql:
+ @pytest.mark.complete("mysql --")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("mysql --default-character-set=")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("mysql --non-existent-option=--")
+ def test_3(self, completion):
+ assert not completion
diff --git a/test/t/test_mysqladmin.py b/test/t/test_mysqladmin.py
new file mode 100644
index 00000000..74db63b0
--- /dev/null
+++ b/test/t/test_mysqladmin.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestMysqladmin:
+ @pytest.mark.complete("mysqladmin -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_nc.py b/test/t/test_nc.py
new file mode 100644
index 00000000..6a50106e
--- /dev/null
+++ b/test/t/test_nc.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestNc:
+ @pytest.mark.complete("nc -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_ncftp.py b/test/t/test_ncftp.py
new file mode 100644
index 00000000..470f6a76
--- /dev/null
+++ b/test/t/test_ncftp.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestNcftp:
+ @pytest.mark.complete("ncftp ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("ncftp -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_nethogs.py b/test/t/test_nethogs.py
new file mode 100644
index 00000000..a36c587f
--- /dev/null
+++ b/test/t/test_nethogs.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestNethogs:
+ @pytest.mark.complete("nethogs ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_netstat.py b/test/t/test_netstat.py
new file mode 100644
index 00000000..6bcbd4d2
--- /dev/null
+++ b/test/t/test_netstat.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestNetstat:
+ @pytest.mark.complete("netstat ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_newgrp.py b/test/t/test_newgrp.py
new file mode 100644
index 00000000..7d65a167
--- /dev/null
+++ b/test/t/test_newgrp.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestNewgrp:
+ @pytest.mark.complete("newgrp ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_newlist.py b/test/t/test_newlist.py
new file mode 100644
index 00000000..d51dab26
--- /dev/null
+++ b/test/t/test_newlist.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestNewlist:
+ @pytest.mark.complete("newlist -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_newusers.py b/test/t/test_newusers.py
new file mode 100644
index 00000000..acd93ad2
--- /dev/null
+++ b/test/t/test_newusers.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestNewusers:
+ @pytest.mark.complete("newusers ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_ngrep.py b/test/t/test_ngrep.py
new file mode 100644
index 00000000..0d29abd7
--- /dev/null
+++ b/test/t/test_ngrep.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestNgrep:
+ @pytest.mark.complete("ngrep -")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("ngrep -d ")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_nl.py b/test/t/test_nl.py
new file mode 100644
index 00000000..c3e35b42
--- /dev/null
+++ b/test/t/test_nl.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestNl:
+ @pytest.mark.complete("nl ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_nm.py b/test/t/test_nm.py
new file mode 100644
index 00000000..49ff167e
--- /dev/null
+++ b/test/t/test_nm.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestNm:
+ @pytest.mark.complete("nm ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_nmap.py b/test/t/test_nmap.py
new file mode 100644
index 00000000..a4d8a899
--- /dev/null
+++ b/test/t/test_nmap.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestNmap:
+ @pytest.mark.complete("nmap --v")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_nmcli.py b/test/t/test_nmcli.py
new file mode 100644
index 00000000..f2b79504
--- /dev/null
+++ b/test/t/test_nmcli.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestNmcli:
+ @pytest.mark.complete("nmcli ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_nproc.py b/test/t/test_nproc.py
new file mode 100644
index 00000000..6ab8017c
--- /dev/null
+++ b/test/t/test_nproc.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestNproc:
+ @pytest.mark.complete("nproc ")
+ def test_1(self, completion):
+ assert not completion
+
+ @pytest.mark.complete("nproc -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_nslookup.py b/test/t/test_nslookup.py
new file mode 100644
index 00000000..0286509e
--- /dev/null
+++ b/test/t/test_nslookup.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestNslookup:
+ @pytest.mark.complete("nslookup -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_nsupdate.py b/test/t/test_nsupdate.py
new file mode 100644
index 00000000..5bae9707
--- /dev/null
+++ b/test/t/test_nsupdate.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestNsupdate:
+ @pytest.mark.complete("nsupdate ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("nsupdate -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_ntpdate.py b/test/t/test_ntpdate.py
new file mode 100644
index 00000000..dc1d5b48
--- /dev/null
+++ b/test/t/test_ntpdate.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestNtpdate:
+ @pytest.mark.complete("ntpdate -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_objcopy.py b/test/t/test_objcopy.py
new file mode 100644
index 00000000..13a93df5
--- /dev/null
+++ b/test/t/test_objcopy.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestObjcopy:
+ @pytest.mark.complete("objcopy ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_objdump.py b/test/t/test_objdump.py
new file mode 100644
index 00000000..6b8bc744
--- /dev/null
+++ b/test/t/test_objdump.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestObjdump:
+ @pytest.mark.complete("objdump ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_od.py b/test/t/test_od.py
new file mode 100644
index 00000000..a1e648a8
--- /dev/null
+++ b/test/t/test_od.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestOd:
+ @pytest.mark.complete("od ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_oggdec.py b/test/t/test_oggdec.py
new file mode 100644
index 00000000..8cabe5cd
--- /dev/null
+++ b/test/t/test_oggdec.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestOggdec:
+ @pytest.mark.complete("oggdec ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("oggdec --")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_op.py b/test/t/test_op.py
new file mode 100644
index 00000000..e09c98c8
--- /dev/null
+++ b/test/t/test_op.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestOp:
+ @pytest.mark.complete("op ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("op --")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_openssl.py b/test/t/test_openssl.py
new file mode 100644
index 00000000..e3af3530
--- /dev/null
+++ b/test/t/test_openssl.py
@@ -0,0 +1,15 @@
+import pytest
+
+
+class TestOpenssl:
+ @pytest.mark.complete("openssl ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("openssl pkey -cipher ")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("openssl dgst -s")
+ def test_3(self, completion):
+ assert completion
diff --git a/test/t/test_opera.py b/test/t/test_opera.py
new file mode 100644
index 00000000..5ab056f4
--- /dev/null
+++ b/test/t/test_opera.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestOpera:
+ @pytest.mark.complete("opera ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_optipng.py b/test/t/test_optipng.py
new file mode 100644
index 00000000..393b0645
--- /dev/null
+++ b/test/t/test_optipng.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestOptipng:
+ @pytest.mark.complete("optipng ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_p4.py b/test/t/test_p4.py
new file mode 100644
index 00000000..876d261e
--- /dev/null
+++ b/test/t/test_p4.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestP4:
+ @pytest.mark.complete("p4 ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_pack200.py b/test/t/test_pack200.py
new file mode 100644
index 00000000..0960133a
--- /dev/null
+++ b/test/t/test_pack200.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestPack200:
+ @pytest.mark.complete("pack200 ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_passwd.py b/test/t/test_passwd.py
new file mode 100644
index 00000000..60441de9
--- /dev/null
+++ b/test/t/test_passwd.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestPasswd:
+ @pytest.mark.complete("passwd ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("passwd -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_paste.py b/test/t/test_paste.py
new file mode 100644
index 00000000..2d551322
--- /dev/null
+++ b/test/t/test_paste.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestPaste:
+ @pytest.mark.complete("paste ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_patch.py b/test/t/test_patch.py
new file mode 100644
index 00000000..455ebd9a
--- /dev/null
+++ b/test/t/test_patch.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestPatch:
+ @pytest.mark.complete("patch ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_pdftotext.py b/test/t/test_pdftotext.py
new file mode 100644
index 00000000..9e332f06
--- /dev/null
+++ b/test/t/test_pdftotext.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestPdftotext:
+ @pytest.mark.complete("pdftotext ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_perl.py b/test/t/test_perl.py
new file mode 100644
index 00000000..7c0c6094
--- /dev/null
+++ b/test/t/test_perl.py
@@ -0,0 +1,79 @@
+import pytest
+
+
+@pytest.mark.bashcomp(ignore_env=r"^\+PERL5LIB=")
+class TestPerl:
+ @pytest.mark.complete("perl ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("perl -e ")
+ def test_2(self, completion):
+ assert not completion
+
+ @pytest.mark.complete("perl -V:install")
+ def test_3(self, completion):
+ assert completion
+
+ @pytest.mark.complete("perl -V::install")
+ def test_4(self, completion):
+ assert completion
+
+ # Assume File::Spec and friends are always installed
+
+ @pytest.mark.complete("perl -MFile")
+ def test_5(self, completion):
+ assert completion
+
+ @pytest.mark.complete("perl -MFile::Sp")
+ def test_6(self, completion):
+ assert completion
+
+ @pytest.mark.complete("perl -MFile::Spec::Func")
+ def test_7(self, completion):
+ assert completion
+
+ @pytest.mark.complete("perl -M-File")
+ def test_8(self, completion):
+ assert completion
+
+ @pytest.mark.complete("perl -m-File::")
+ def test_9(self, completion):
+ assert completion
+
+ @pytest.mark.complete("perl -")
+ def test_10(self, completion):
+ assert completion
+
+ @pytest.mark.complete("perl foo shared/default/f")
+ def test_11(self, completion):
+ """Second arg should complete files+dirs."""
+ assert completion == "foo foo.d/".split()
+
+ @pytest.mark.complete("perl -Ishared/default/")
+ def test_12(self, completion):
+ """-I without space should complete dirs."""
+ assert completion == ["bar bar.d/", "foo.d/"]
+
+ @pytest.mark.complete("perl -I shared/default/")
+ def test_13(self, completion):
+ """-I with space should complete dirs."""
+ assert completion == ["bar bar.d/", "foo.d/"]
+
+ @pytest.mark.complete("perl -xshared/default/b")
+ def test_14(self, completion):
+ """-x without space should complete dirs."""
+ assert completion == ["-xshared/default/bar bar.d/"]
+
+ @pytest.mark.complete("perl -x shared/default/b")
+ def test_15(self, completion):
+ """-x with space should complete dirs."""
+ assert completion == ["shared/default/bar bar.d/"]
+
+ @pytest.mark.complete("perl -d:", env=dict(PERL5LIB="$PWD/perl"))
+ def test_16(self, completion):
+ assert "BashCompletion" in completion
+
+ @pytest.mark.complete("perl -dt:", env=dict(PERL5LIB="$PWD/perl"))
+ def test_17(self, completion):
+ assert "BashCompletion" in completion
diff --git a/test/t/test_perlcritic.py b/test/t/test_perlcritic.py
new file mode 100644
index 00000000..cc4ef25f
--- /dev/null
+++ b/test/t/test_perlcritic.py
@@ -0,0 +1,15 @@
+import pytest
+
+
+class TestPerlcritic:
+ @pytest.mark.complete("perlcritic ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("perlcritic --")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("perlcritic --theme ")
+ def test_3(self, completion):
+ assert completion
diff --git a/test/t/test_perldoc.py b/test/t/test_perldoc.py
new file mode 100644
index 00000000..9f772944
--- /dev/null
+++ b/test/t/test_perldoc.py
@@ -0,0 +1,18 @@
+import pytest
+
+
+@pytest.mark.bashcomp(pre_cmds=("export PERL5LIB=$PWD/perldoc",))
+class TestPerldoc:
+ @pytest.mark.complete("perldoc File::")
+ def test_1(self, completion):
+ assert "Path" in completion # Assume File::Path always installed
+ assert "fixtures/" not in completion # Our fixtures/ dir
+ assert not [x for x in completion if "File::File::" in x]
+
+ @pytest.mark.complete("perldoc -")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("perldoc BashCompletion")
+ def test_3(self, completion):
+ assert completion == "BashCompletionDoc BashCompletionModule".split()
diff --git a/test/t/test_perltidy.py b/test/t/test_perltidy.py
new file mode 100644
index 00000000..3bafd6e4
--- /dev/null
+++ b/test/t/test_perltidy.py
@@ -0,0 +1,19 @@
+import pytest
+
+
+class TestPerltidy:
+ @pytest.mark.complete("perltidy ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("perltidy -h")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("perltidy -ole=")
+ def test_3(self, completion):
+ assert completion
+
+ @pytest.mark.complete("perltidy -doesntexist=")
+ def test_4(self, completion):
+ assert not completion
diff --git a/test/t/test_pgrep.py b/test/t/test_pgrep.py
new file mode 100644
index 00000000..1155e582
--- /dev/null
+++ b/test/t/test_pgrep.py
@@ -0,0 +1,9 @@
+import pytest
+
+
+class TestPgrep:
+
+ # "p": Assume that our process name completion runs ps
+ @pytest.mark.complete("pgrep p")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_phing.py b/test/t/test_phing.py
new file mode 100644
index 00000000..2e8c1069
--- /dev/null
+++ b/test/t/test_phing.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestPhing:
+ @pytest.mark.complete("phing -")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("phing -l ")
+ def test_2(self, completion):
+ assert not completion
diff --git a/test/t/test_pidof.py b/test/t/test_pidof.py
new file mode 100644
index 00000000..fb553e55
--- /dev/null
+++ b/test/t/test_pidof.py
@@ -0,0 +1,9 @@
+import pytest
+
+
+class TestPidof:
+
+ # "p": Assume that our process name completion runs ps
+ @pytest.mark.complete("pidof p")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_pine.py b/test/t/test_pine.py
new file mode 100644
index 00000000..2c5549e0
--- /dev/null
+++ b/test/t/test_pine.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestPine:
+ @pytest.mark.complete("pine -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_pinfo.py b/test/t/test_pinfo.py
new file mode 100644
index 00000000..b502273f
--- /dev/null
+++ b/test/t/test_pinfo.py
@@ -0,0 +1,12 @@
+import pytest
+
+
+@pytest.mark.bashcomp(pre_cmds=("INFOPATH+=:$PWD/info:",))
+class TestPinfo:
+ @pytest.mark.complete("pinfo -")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("pinfo bash")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_ping.py b/test/t/test_ping.py
new file mode 100644
index 00000000..e7c77365
--- /dev/null
+++ b/test/t/test_ping.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestPing:
+ @pytest.mark.complete("ping ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("ping -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_pkg_config.py b/test/t/test_pkg_config.py
new file mode 100644
index 00000000..a0703e09
--- /dev/null
+++ b/test/t/test_pkg_config.py
@@ -0,0 +1,12 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="pkg-config")
+class TestPkgConfig:
+ @pytest.mark.complete("pkg-config ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("pkg-config -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_pkg_deinstall.py b/test/t/test_pkg_deinstall.py
new file mode 100644
index 00000000..5ce6d13e
--- /dev/null
+++ b/test/t/test_pkg_deinstall.py
@@ -0,0 +1,15 @@
+import os
+
+import pytest
+
+
+@pytest.mark.bashcomp(pre_cmds=("PKG_DBDIR=$PWD/pkgtools/db",))
+class TestPkgDeinstall:
+ @pytest.mark.complete("pkg_deinstall ")
+ def test_1(self, completion):
+ dirs = sorted(
+ x
+ for x in os.listdir("pkgtools/db")
+ if os.path.isdir("pkgtools/db/%s" % x)
+ )
+ assert completion == dirs
diff --git a/test/t/test_pkg_delete.py b/test/t/test_pkg_delete.py
new file mode 100644
index 00000000..a4b0d855
--- /dev/null
+++ b/test/t/test_pkg_delete.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestPkgDelete:
+ @pytest.mark.complete("pkg_delete ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_pkg_get.py b/test/t/test_pkg_get.py
new file mode 100644
index 00000000..cb2d2834
--- /dev/null
+++ b/test/t/test_pkg_get.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="pkg-get")
+class TestPkgGet:
+ @pytest.mark.complete("pkg-get ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_pkg_info.py b/test/t/test_pkg_info.py
new file mode 100644
index 00000000..6011f814
--- /dev/null
+++ b/test/t/test_pkg_info.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestPkgInfo:
+ @pytest.mark.complete("pkg_info ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_pkgadd.py b/test/t/test_pkgadd.py
new file mode 100644
index 00000000..ca6baf27
--- /dev/null
+++ b/test/t/test_pkgadd.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestPkgadd:
+ @pytest.mark.complete("pkgadd ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_pkgrm.py b/test/t/test_pkgrm.py
new file mode 100644
index 00000000..9cb73571
--- /dev/null
+++ b/test/t/test_pkgrm.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestPkgrm:
+ @pytest.mark.complete("pkgrm ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_pkgtool.py b/test/t/test_pkgtool.py
new file mode 100644
index 00000000..7d356377
--- /dev/null
+++ b/test/t/test_pkgtool.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestPkgtool:
+ @pytest.mark.complete("pkgtool -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_pkgutil.py b/test/t/test_pkgutil.py
new file mode 100644
index 00000000..96647285
--- /dev/null
+++ b/test/t/test_pkgutil.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestPkgutil:
+ @pytest.mark.complete("pkgutil ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_pkill.py b/test/t/test_pkill.py
new file mode 100644
index 00000000..b0af6c3d
--- /dev/null
+++ b/test/t/test_pkill.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestPkill:
+ @pytest.mark.complete("pkill ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_plague_client.py b/test/t/test_plague_client.py
new file mode 100644
index 00000000..39eac93d
--- /dev/null
+++ b/test/t/test_plague_client.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="plague-client")
+class TestPlagueClient:
+ @pytest.mark.complete("plague-client ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_pm_hibernate.py b/test/t/test_pm_hibernate.py
new file mode 100644
index 00000000..31b4625e
--- /dev/null
+++ b/test/t/test_pm_hibernate.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="pm-hibernate")
+class TestPmHibernate:
+ @pytest.mark.complete("pm-hibernate -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_pm_is_supported.py b/test/t/test_pm_is_supported.py
new file mode 100644
index 00000000..47f064a4
--- /dev/null
+++ b/test/t/test_pm_is_supported.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="pm-is-supported")
+class TestPmIsSupported:
+ @pytest.mark.complete("pm-is-supported -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_pm_powersave.py b/test/t/test_pm_powersave.py
new file mode 100644
index 00000000..7630a412
--- /dev/null
+++ b/test/t/test_pm_powersave.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="pm-powersave")
+class TestPmPowersave:
+ @pytest.mark.complete("pm-powersave ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_pngfix.py b/test/t/test_pngfix.py
new file mode 100644
index 00000000..e27f3293
--- /dev/null
+++ b/test/t/test_pngfix.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestPngfix:
+ @pytest.mark.complete("pngfix ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("pngfix -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_portinstall.py b/test/t/test_portinstall.py
new file mode 100644
index 00000000..62fddbfb
--- /dev/null
+++ b/test/t/test_portinstall.py
@@ -0,0 +1,26 @@
+import pytest
+
+from conftest import assert_bash_exec
+
+
+class TestPortinstall:
+ @pytest.fixture(scope="class")
+ def portsdir(self, request, bash):
+ assert_bash_exec(bash, "PORTSDIR=$TESTDIR/tmp")
+ assert_bash_exec(
+ bash,
+ "command sed -e s,PORTSDIR,$PORTSDIR,g "
+ "pkgtools/ports/INDEX.dist >$PORTSDIR/INDEX",
+ )
+ assert_bash_exec(bash, "cp $PORTSDIR/INDEX $PORTSDIR/INDEX-5")
+ request.addfinalizer(
+ lambda: assert_bash_exec(bash, "rm $PORTSDIR/INDEX{,-5}")
+ )
+
+ @pytest.mark.complete("portinstall ", env=dict(PORTSDIR="$TESTDIR/tmp"))
+ def test_1(self, completion, portsdir):
+ assert (
+ completion
+ == "bash-2.05b.007_6 bash-3.1.17 bash-completion-20060301_2 "
+ "shells/bash shells/bash-completion shells/bash2".split()
+ )
diff --git a/test/t/test_portsnap.py b/test/t/test_portsnap.py
new file mode 100644
index 00000000..4f5878e9
--- /dev/null
+++ b/test/t/test_portsnap.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestPortsnap:
+ @pytest.mark.complete("portsnap ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_portupgrade.py b/test/t/test_portupgrade.py
new file mode 100644
index 00000000..aaff5c10
--- /dev/null
+++ b/test/t/test_portupgrade.py
@@ -0,0 +1,9 @@
+import pytest
+
+
+@pytest.mark.bashcomp(pre_cmds=("PKG_DBDIR=$PWD/dbtools/db",))
+class TestPortupgrade:
+ @pytest.mark.complete("portupgrade ")
+ def test_1(self, completion):
+ assert completion == "a b-c-d".split()
+ assert completion.endswith(" ")
diff --git a/test/t/test_postcat.py b/test/t/test_postcat.py
new file mode 100644
index 00000000..653cca25
--- /dev/null
+++ b/test/t/test_postcat.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestPostcat:
+ @pytest.mark.complete("postcat ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_postconf.py b/test/t/test_postconf.py
new file mode 100644
index 00000000..641b2734
--- /dev/null
+++ b/test/t/test_postconf.py
@@ -0,0 +1,18 @@
+import pytest
+
+
+class TestPostconf:
+ @pytest.mark.complete("postconf -")
+ def test_1(self, completion):
+ assert len(completion) > 1
+
+ # Broken configs may abort output of postconf halfway through, so use
+ # something from early output to not trigger false positives because of
+ # this. For example, inet_protocols=all but no IPv6 configured:
+ # postconf: fatal: parameter inet_interfaces: no local interface found
+ # for ::1
+ # ...and output can be cut off somewhere near lmtp_tls_secur*.
+ # ...or be completely missing, so all we can do is to skip.
+ @pytest.mark.complete("postconf al", skipif="! postconf &>/dev/null")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_postfix.py b/test/t/test_postfix.py
new file mode 100644
index 00000000..f7af7b4c
--- /dev/null
+++ b/test/t/test_postfix.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestPostfix:
+ @pytest.mark.complete("postfix ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_postmap.py b/test/t/test_postmap.py
new file mode 100644
index 00000000..f3430fbd
--- /dev/null
+++ b/test/t/test_postmap.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestPostmap:
+ @pytest.mark.complete("postmap ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_postsuper.py b/test/t/test_postsuper.py
new file mode 100644
index 00000000..b74de8ec
--- /dev/null
+++ b/test/t/test_postsuper.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestPostsuper:
+ @pytest.mark.complete("postsuper ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_povray.py b/test/t/test_povray.py
new file mode 100644
index 00000000..99d08ea0
--- /dev/null
+++ b/test/t/test_povray.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestPovray:
+ @pytest.mark.complete("povray ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_pr.py b/test/t/test_pr.py
new file mode 100644
index 00000000..cb023ea0
--- /dev/null
+++ b/test/t/test_pr.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestPr:
+ @pytest.mark.complete("pr ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_prelink.py b/test/t/test_prelink.py
new file mode 100644
index 00000000..ef8baece
--- /dev/null
+++ b/test/t/test_prelink.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestPrelink:
+ @pytest.mark.complete("prelink ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("prelink -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_protoc.py b/test/t/test_protoc.py
new file mode 100644
index 00000000..65549d35
--- /dev/null
+++ b/test/t/test_protoc.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestProtoc:
+ @pytest.mark.complete("protoc ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_psql.py b/test/t/test_psql.py
new file mode 100644
index 00000000..60ed097c
--- /dev/null
+++ b/test/t/test_psql.py
@@ -0,0 +1,9 @@
+import pytest
+
+
+class TestPsql:
+
+ # --help can fail due to missing package dependencies, e.g. on Ubuntu 14
+ @pytest.mark.complete("psql -", skipif="! psql --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_ptx.py b/test/t/test_ptx.py
new file mode 100644
index 00000000..2eea63bc
--- /dev/null
+++ b/test/t/test_ptx.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestPtx:
+ @pytest.mark.complete("ptx ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_puppet.py b/test/t/test_puppet.py
new file mode 100644
index 00000000..470f33a2
--- /dev/null
+++ b/test/t/test_puppet.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestPuppet:
+ @pytest.mark.complete("puppet ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("puppet agent --")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_pushd.py b/test/t/test_pushd.py
new file mode 100644
index 00000000..290e1d1d
--- /dev/null
+++ b/test/t/test_pushd.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestPushd:
+ @pytest.mark.complete("pushd ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_pv.py b/test/t/test_pv.py
new file mode 100644
index 00000000..ffca68df
--- /dev/null
+++ b/test/t/test_pv.py
@@ -0,0 +1,15 @@
+import pytest
+
+
+class TestPv:
+ @pytest.mark.complete("pv ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("pv -")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("pv --pidfile ")
+ def test_3(self, completion):
+ assert completion
diff --git a/test/t/test_pvchange.py b/test/t/test_pvchange.py
new file mode 100644
index 00000000..78e534ac
--- /dev/null
+++ b/test/t/test_pvchange.py
@@ -0,0 +1,9 @@
+import pytest
+
+
+class TestPvchange:
+ @pytest.mark.complete(
+ "pvchange --", skipif="! pvchange --help &>/dev/null"
+ )
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_pvcreate.py b/test/t/test_pvcreate.py
new file mode 100644
index 00000000..372b9e39
--- /dev/null
+++ b/test/t/test_pvcreate.py
@@ -0,0 +1,9 @@
+import pytest
+
+
+class TestPvcreate:
+ @pytest.mark.complete(
+ "pvcreate --", skipif="! pvcreate --help &>/dev/null"
+ )
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_pvdisplay.py b/test/t/test_pvdisplay.py
new file mode 100644
index 00000000..e5fa07f6
--- /dev/null
+++ b/test/t/test_pvdisplay.py
@@ -0,0 +1,9 @@
+import pytest
+
+
+class TestPvdisplay:
+ @pytest.mark.complete(
+ "pvdisplay --", skipif="! pvdisplay --help &>/dev/null"
+ )
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_pvmove.py b/test/t/test_pvmove.py
new file mode 100644
index 00000000..e1b06dd6
--- /dev/null
+++ b/test/t/test_pvmove.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestPvmove:
+ @pytest.mark.complete("pvmove --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_pvremove.py b/test/t/test_pvremove.py
new file mode 100644
index 00000000..08bf63b0
--- /dev/null
+++ b/test/t/test_pvremove.py
@@ -0,0 +1,9 @@
+import pytest
+
+
+class TestPvremove:
+ @pytest.mark.complete(
+ "pvremove --", skipif="! pvremove --help &>/dev/null"
+ )
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_pvs.py b/test/t/test_pvs.py
new file mode 100644
index 00000000..6063888e
--- /dev/null
+++ b/test/t/test_pvs.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestPvs:
+ @pytest.mark.complete("pvs --", skipif="! pvs --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_pvscan.py b/test/t/test_pvscan.py
new file mode 100644
index 00000000..1ae237fc
--- /dev/null
+++ b/test/t/test_pvscan.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestPvscan:
+ @pytest.mark.complete("pvscan --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_pwck.py b/test/t/test_pwck.py
new file mode 100644
index 00000000..143c76f1
--- /dev/null
+++ b/test/t/test_pwck.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestPwck:
+ @pytest.mark.complete("pwck ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_pwd.py b/test/t/test_pwd.py
new file mode 100644
index 00000000..b1ec3378
--- /dev/null
+++ b/test/t/test_pwd.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestPwd:
+ @pytest.mark.complete("pwd -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_pwdx.py b/test/t/test_pwdx.py
new file mode 100644
index 00000000..411d7a59
--- /dev/null
+++ b/test/t/test_pwdx.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestPwdx:
+ @pytest.mark.complete("pwdx ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_pwgen.py b/test/t/test_pwgen.py
new file mode 100644
index 00000000..54c194cf
--- /dev/null
+++ b/test/t/test_pwgen.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestPwgen:
+ @pytest.mark.complete("pwgen -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_pycodestyle.py b/test/t/test_pycodestyle.py
new file mode 100644
index 00000000..03c58eec
--- /dev/null
+++ b/test/t/test_pycodestyle.py
@@ -0,0 +1,15 @@
+import pytest
+
+
+class TestPycodestyle:
+ @pytest.mark.complete("pycodestyle ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("pycodestyle -")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("pycodestyle --doesnt-exist=")
+ def test_3(self, completion):
+ assert not completion
diff --git a/test/t/test_pydoc.py b/test/t/test_pydoc.py
new file mode 100644
index 00000000..e6173676
--- /dev/null
+++ b/test/t/test_pydoc.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestPydoc:
+ @pytest.mark.complete("pydoc r")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_pydocstyle.py b/test/t/test_pydocstyle.py
new file mode 100644
index 00000000..4deb45fe
--- /dev/null
+++ b/test/t/test_pydocstyle.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestPydocstyle:
+ @pytest.mark.complete("pydocstyle ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("pydocstyle -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_pyflakes.py b/test/t/test_pyflakes.py
new file mode 100644
index 00000000..ae3853a7
--- /dev/null
+++ b/test/t/test_pyflakes.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestPyflakes:
+ @pytest.mark.complete("pyflakes ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_pylint.py b/test/t/test_pylint.py
new file mode 100644
index 00000000..e08507aa
--- /dev/null
+++ b/test/t/test_pylint.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestPylint:
+ @pytest.mark.complete("pylint --v")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("pylint --confidence=HIGH,")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_pylint_3.py b/test/t/test_pylint_3.py
new file mode 100644
index 00000000..305db7d3
--- /dev/null
+++ b/test/t/test_pylint_3.py
@@ -0,0 +1,12 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="pylint-3")
+class TestPylint3:
+ @pytest.mark.complete("pylint-3 --v")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("pylint-3 http.clien")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_pytest.py b/test/t/test_pytest.py
new file mode 100644
index 00000000..69d01820
--- /dev/null
+++ b/test/t/test_pytest.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestPytest:
+ @pytest.mark.complete("pytest ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("pytest -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_python.py b/test/t/test_python.py
new file mode 100644
index 00000000..4990f957
--- /dev/null
+++ b/test/t/test_python.py
@@ -0,0 +1,35 @@
+import pytest
+
+
+class TestPython:
+ @pytest.mark.complete("python ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("python -")
+ def test_2(self, completion):
+ assert len(completion) > 1
+
+ @pytest.mark.complete("python -c ")
+ def test_3(self, completion):
+ assert not completion
+
+ @pytest.mark.complete("python shared/default/")
+ def test_4(self, completion):
+ assert completion == ["bar bar.d/", "foo.d/"]
+
+ @pytest.mark.complete("python -c foo shared/default/")
+ def test_5(self, completion):
+ assert completion == ["bar", "bar bar.d/", "foo", "foo.d/"]
+
+ @pytest.mark.complete("python -c foo -")
+ def test_6(self, completion):
+ assert not completion
+
+ @pytest.mark.complete("python -m foo -")
+ def test_7(self, completion):
+ assert not completion
+
+ @pytest.mark.complete("python -m sy")
+ def test_8(self, completion):
+ assert completion
diff --git a/test/t/test_python3.py b/test/t/test_python3.py
new file mode 100644
index 00000000..3f2b5f9e
--- /dev/null
+++ b/test/t/test_python3.py
@@ -0,0 +1,35 @@
+import pytest
+
+
+class TestPython3:
+ @pytest.mark.complete("python3 ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("python3 -")
+ def test_2(self, completion):
+ assert len(completion) > 1
+
+ @pytest.mark.complete("python3 -c ")
+ def test_3(self, completion):
+ assert not completion
+
+ @pytest.mark.complete("python3 shared/default/")
+ def test_4(self, completion):
+ assert completion == ["bar bar.d/", "foo.d/"]
+
+ @pytest.mark.complete("python3 -c foo shared/default/")
+ def test_5(self, completion):
+ assert completion == ["bar", "bar bar.d/", "foo", "foo.d/"]
+
+ @pytest.mark.complete("python3 -c foo -")
+ def test_6(self, completion):
+ assert not completion
+
+ @pytest.mark.complete("python3 -m foo -")
+ def test_7(self, completion):
+ assert not completion
+
+ @pytest.mark.complete("python3 -m sy")
+ def test_8(self, completion):
+ assert completion
diff --git a/test/t/test_pyvenv.py b/test/t/test_pyvenv.py
new file mode 100644
index 00000000..5e9152a5
--- /dev/null
+++ b/test/t/test_pyvenv.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestPyvenv:
+ @pytest.mark.complete("pyvenv ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_qemu.py b/test/t/test_qemu.py
new file mode 100644
index 00000000..3be6f64b
--- /dev/null
+++ b/test/t/test_qemu.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestQemu:
+ @pytest.mark.complete("qemu ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_qrunner.py b/test/t/test_qrunner.py
new file mode 100644
index 00000000..4e4cdd8d
--- /dev/null
+++ b/test/t/test_qrunner.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestQrunner:
+ @pytest.mark.complete("qrunner -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_querybts.py b/test/t/test_querybts.py
new file mode 100644
index 00000000..dd3af4f9
--- /dev/null
+++ b/test/t/test_querybts.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestQuerybts:
+ @pytest.mark.complete("querybts --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_quota.py b/test/t/test_quota.py
new file mode 100644
index 00000000..75098875
--- /dev/null
+++ b/test/t/test_quota.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestQuota:
+ @pytest.mark.complete("quota ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_quotacheck.py b/test/t/test_quotacheck.py
new file mode 100644
index 00000000..0311befb
--- /dev/null
+++ b/test/t/test_quotacheck.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestQuotacheck:
+ @pytest.mark.complete("quotacheck -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_quotaon.py b/test/t/test_quotaon.py
new file mode 100644
index 00000000..46bf5546
--- /dev/null
+++ b/test/t/test_quotaon.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestQuotaon:
+ @pytest.mark.complete("quotaon -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_radvdump.py b/test/t/test_radvdump.py
new file mode 100644
index 00000000..e3d9242d
--- /dev/null
+++ b/test/t/test_radvdump.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestRadvdump:
+ @pytest.mark.complete("radvdump ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_rcs.py b/test/t/test_rcs.py
new file mode 100644
index 00000000..985bb44f
--- /dev/null
+++ b/test/t/test_rcs.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestRcs:
+ @pytest.mark.complete("rcs ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_rcsdiff.py b/test/t/test_rcsdiff.py
new file mode 100644
index 00000000..d54934c7
--- /dev/null
+++ b/test/t/test_rcsdiff.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestRcsdiff:
+ @pytest.mark.complete("rcsdiff ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_rdesktop.py b/test/t/test_rdesktop.py
new file mode 100644
index 00000000..b82b471e
--- /dev/null
+++ b/test/t/test_rdesktop.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestRdesktop:
+ @pytest.mark.complete("rdesktop -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_rdict.py b/test/t/test_rdict.py
new file mode 100644
index 00000000..86d7c087
--- /dev/null
+++ b/test/t/test_rdict.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestRdict:
+ @pytest.mark.complete("rdict --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_readelf.py b/test/t/test_readelf.py
new file mode 100644
index 00000000..5c5dff37
--- /dev/null
+++ b/test/t/test_readelf.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestReadelf:
+ @pytest.mark.complete("readelf --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_readonly.py b/test/t/test_readonly.py
new file mode 100644
index 00000000..0ac310c2
--- /dev/null
+++ b/test/t/test_readonly.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestReadonly:
+ @pytest.mark.complete("readonly BASH_ARG")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_remove_members.py b/test/t/test_remove_members.py
new file mode 100644
index 00000000..a3b0afd6
--- /dev/null
+++ b/test/t/test_remove_members.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestRemoveMembers:
+ @pytest.mark.complete("remove_members --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_removepkg.py b/test/t/test_removepkg.py
new file mode 100644
index 00000000..9fd7a9d8
--- /dev/null
+++ b/test/t/test_removepkg.py
@@ -0,0 +1,15 @@
+import os
+
+import pytest
+
+
+@pytest.mark.bashcomp(ignore_env=r"^\+ROOT=")
+class TestRemovepkg:
+ @pytest.mark.complete("removepkg -")
+ def test_1(self, completion):
+ assert completion == "-copy -keep -preserve -warn".split()
+
+ @pytest.mark.complete("removepkg ", env=dict(ROOT="./slackware"))
+ def test_2(self, completion):
+ files = sorted(x for x in os.listdir("slackware/var/log/packages"))
+ assert completion == files
diff --git a/test/t/test_renice.py b/test/t/test_renice.py
new file mode 100644
index 00000000..20d59a33
--- /dev/null
+++ b/test/t/test_renice.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestRenice:
+ @pytest.mark.complete("renice 1")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("renice -g ")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_repomanage.py b/test/t/test_repomanage.py
new file mode 100644
index 00000000..6def4a8c
--- /dev/null
+++ b/test/t/test_repomanage.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestRepomanage:
+ @pytest.mark.complete("repomanage ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_reportbug.py b/test/t/test_reportbug.py
new file mode 100644
index 00000000..612a96b8
--- /dev/null
+++ b/test/t/test_reportbug.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestReportbug:
+ @pytest.mark.complete("reportbug --m")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_reptyr.py b/test/t/test_reptyr.py
new file mode 100644
index 00000000..62a9b1c5
--- /dev/null
+++ b/test/t/test_reptyr.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestReptyr:
+ @pytest.mark.complete("reptyr ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("reptyr -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_resolvconf.py b/test/t/test_resolvconf.py
new file mode 100644
index 00000000..fdcf584f
--- /dev/null
+++ b/test/t/test_resolvconf.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestResolvconf:
+ @pytest.mark.complete("resolvconf -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_rfcomm.py b/test/t/test_rfcomm.py
new file mode 100644
index 00000000..c30d23b1
--- /dev/null
+++ b/test/t/test_rfcomm.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestRfcomm:
+ @pytest.mark.complete("rfcomm ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_rfkill.py b/test/t/test_rfkill.py
new file mode 100644
index 00000000..f8248ff9
--- /dev/null
+++ b/test/t/test_rfkill.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestRfkill:
+ @pytest.mark.complete("rfkill ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("rfkill -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_ri.py b/test/t/test_ri.py
new file mode 100644
index 00000000..e54f18bb
--- /dev/null
+++ b/test/t/test_ri.py
@@ -0,0 +1,16 @@
+import pytest
+
+
+@pytest.mark.bashcomp(pre_cmds=("export RI='-d ri'",))
+class TestRi:
+ @pytest.mark.complete("ri -")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("ri --dump=ri/")
+ def test_2(self, completion):
+ assert completion == "BashCompletion/ cache.ri".split()
+
+ @pytest.mark.complete("ri BashCompletio")
+ def test_3(self, completion):
+ assert completion == "BashCompletion"
diff --git a/test/t/test_rlog.py b/test/t/test_rlog.py
new file mode 100644
index 00000000..87a4da10
--- /dev/null
+++ b/test/t/test_rlog.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestRlog:
+ @pytest.mark.complete("rlog ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_rm.py b/test/t/test_rm.py
new file mode 100644
index 00000000..622ef13c
--- /dev/null
+++ b/test/t/test_rm.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestRm:
+ @pytest.mark.complete("rm ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_rmdir.py b/test/t/test_rmdir.py
new file mode 100644
index 00000000..d416819a
--- /dev/null
+++ b/test/t/test_rmdir.py
@@ -0,0 +1,12 @@
+import pytest
+
+
+class TestRmdir:
+ @pytest.mark.complete("rmdir ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("/bin/rmdir shared/default/")
+ def test_2(self, completion):
+ """Should complete dirs only, also when invoked using full path."""
+ assert completion == ["bar bar.d/", "foo.d/"]
diff --git a/test/t/test_rmlist.py b/test/t/test_rmlist.py
new file mode 100644
index 00000000..3a6c6ece
--- /dev/null
+++ b/test/t/test_rmlist.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestRmlist:
+ @pytest.mark.complete("rmlist -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_rmmod.py b/test/t/test_rmmod.py
new file mode 100644
index 00000000..dfeb0090
--- /dev/null
+++ b/test/t/test_rmmod.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestRmmod:
+ @pytest.mark.complete("rmmod -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_route.py b/test/t/test_route.py
new file mode 100644
index 00000000..741ef585
--- /dev/null
+++ b/test/t/test_route.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestRoute:
+ @pytest.mark.complete("route ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_rpcdebug.py b/test/t/test_rpcdebug.py
new file mode 100644
index 00000000..e92bdee1
--- /dev/null
+++ b/test/t/test_rpcdebug.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestRpcdebug:
+ @pytest.mark.complete("rpcdebug -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_rpm.py b/test/t/test_rpm.py
new file mode 100644
index 00000000..939090dd
--- /dev/null
+++ b/test/t/test_rpm.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestRpm:
+ @pytest.mark.complete("rpm ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("rpm -q ", skipif='test -z "$(rpm -qa 2>/dev/null)"')
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_rpm2tgz.py b/test/t/test_rpm2tgz.py
new file mode 100644
index 00000000..366faedc
--- /dev/null
+++ b/test/t/test_rpm2tgz.py
@@ -0,0 +1,26 @@
+import os
+
+import pytest
+
+
+class TestRpm2tgz:
+ @pytest.mark.complete("rpm2tgz -")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("rpm2tgz ", cwd="slackware/home")
+ def test_2(self, completion):
+ expected = sorted(
+ [
+ "%s/"
+ for x in os.listdir("slackware/home")
+ if os.path.isdir("shared/bin/%s" % x)
+ ]
+ + [
+ x
+ for x in os.listdir("slackware/home")
+ if os.path.isfile("slackware/home/%s" % x)
+ and x.endswith(".rpm")
+ ]
+ )
+ assert completion == expected
diff --git a/test/t/test_rpmbuild.py b/test/t/test_rpmbuild.py
new file mode 100644
index 00000000..13f164ba
--- /dev/null
+++ b/test/t/test_rpmbuild.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestRpmbuild:
+ @pytest.mark.complete("rpmbuild -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_rrdtool.py b/test/t/test_rrdtool.py
new file mode 100644
index 00000000..9da83100
--- /dev/null
+++ b/test/t/test_rrdtool.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestRrdtool:
+ @pytest.mark.complete("rrdtool ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_rsync.py b/test/t/test_rsync.py
new file mode 100644
index 00000000..d54ce6fc
--- /dev/null
+++ b/test/t/test_rsync.py
@@ -0,0 +1,16 @@
+import pytest
+
+
+@pytest.mark.bashcomp(ignore_env=r"^[+-]_scp_path_esc=")
+class TestRsync:
+ @pytest.mark.complete("rsync ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("rsync --rsh ")
+ def test_2(self, completion):
+ assert completion == "rsh ssh".split()
+
+ @pytest.mark.complete("rsync --rsh=")
+ def test_3(self, completion):
+ assert completion == "rsh ssh".split()
diff --git a/test/t/test_rtcwake.py b/test/t/test_rtcwake.py
new file mode 100644
index 00000000..e9c12d07
--- /dev/null
+++ b/test/t/test_rtcwake.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestRtcwake:
+ @pytest.mark.complete("rtcwake ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_runuser.py b/test/t/test_runuser.py
new file mode 100644
index 00000000..01a6d884
--- /dev/null
+++ b/test/t/test_runuser.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestRunuser:
+ @pytest.mark.complete("runuser ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_sbcl.py b/test/t/test_sbcl.py
new file mode 100644
index 00000000..cce4cba3
--- /dev/null
+++ b/test/t/test_sbcl.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+class TestSbcl:
+ @pytest.mark.xfail # TODO: whitespace split issue
+ @pytest.mark.complete("sbcl shared/default/")
+ def test_1(self, completion):
+ assert completion == ["bar", "bar bar.d/", "foo", "foo foo.d/"]
diff --git a/test/t/test_sbcl_mt.py b/test/t/test_sbcl_mt.py
new file mode 100644
index 00000000..860acc2f
--- /dev/null
+++ b/test/t/test_sbcl_mt.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="sbcl-mt")
+class TestSbclMt:
+ @pytest.mark.complete("sbcl-mt shared/default/")
+ def test_1(self, completion):
+ assert completion == ["bar", "bar bar.d/", "foo", "foo foo.d/"]
diff --git a/test/t/test_sbopkg.py b/test/t/test_sbopkg.py
new file mode 100644
index 00000000..cb1f7360
--- /dev/null
+++ b/test/t/test_sbopkg.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestSbopkg:
+ @pytest.mark.complete("sbopkg -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_screen.py b/test/t/test_screen.py
new file mode 100644
index 00000000..c05e0ce0
--- /dev/null
+++ b/test/t/test_screen.py
@@ -0,0 +1,24 @@
+import pytest
+
+
+class TestScreen:
+ @pytest.mark.complete("screen -")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("screen -c shared/default/")
+ def test_2(self, completion):
+ assert completion == ["bar", "bar bar.d/", "foo", "foo.d/"]
+
+ @pytest.mark.complete("screen cat ")
+ def test_3(self, completion):
+ assert completion
+
+ # Assume at least vt100 and friends are there
+ @pytest.mark.complete("screen -T vt")
+ def test_4(self, completion):
+ assert completion
+
+ @pytest.mark.complete("screen -T foo cat")
+ def test_5(self, completion):
+ assert completion
diff --git a/test/t/test_scrub.py b/test/t/test_scrub.py
new file mode 100644
index 00000000..0a521faf
--- /dev/null
+++ b/test/t/test_scrub.py
@@ -0,0 +1,19 @@
+import pytest
+
+
+class TestScrub:
+ @pytest.mark.complete("scrub ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("scrub -")
+ def test_2(self, completion):
+ assert completion
+
+ # Not all scrub versions list available patterns in --help output
+ @pytest.mark.complete(
+ "scrub -p ",
+ skipif="! (scrub --help 2>&1 || :) | " "command grep -q ^Available",
+ )
+ def test_3(self, completion):
+ assert completion
diff --git a/test/t/test_sdptool.py b/test/t/test_sdptool.py
new file mode 100644
index 00000000..095d90e6
--- /dev/null
+++ b/test/t/test_sdptool.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestSdptool:
+ @pytest.mark.complete("sdptool ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_sed.py b/test/t/test_sed.py
new file mode 100644
index 00000000..3fc0559f
--- /dev/null
+++ b/test/t/test_sed.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestSed:
+ @pytest.mark.complete("sed --", skipif="! sed --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_seq.py b/test/t/test_seq.py
new file mode 100644
index 00000000..96580450
--- /dev/null
+++ b/test/t/test_seq.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestSeq:
+ @pytest.mark.complete("seq --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_service.py b/test/t/test_service.py
new file mode 100644
index 00000000..7ce43125
--- /dev/null
+++ b/test/t/test_service.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestService:
+ @pytest.mark.complete("service ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_set.py b/test/t/test_set.py
new file mode 100644
index 00000000..08c1671e
--- /dev/null
+++ b/test/t/test_set.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestSet:
+ @pytest.mark.complete("set no")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_setquota.py b/test/t/test_setquota.py
new file mode 100644
index 00000000..a2822bca
--- /dev/null
+++ b/test/t/test_setquota.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestSetquota:
+ @pytest.mark.complete("setquota ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_sftp.py b/test/t/test_sftp.py
new file mode 100644
index 00000000..e76a6f59
--- /dev/null
+++ b/test/t/test_sftp.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestSftp:
+ @pytest.mark.complete("sftp -Fsp", cwd="sftp")
+ def test_1(self, completion):
+ assert completion == "-Fspaced conf"
diff --git a/test/t/test_sh.py b/test/t/test_sh.py
new file mode 100644
index 00000000..f49a1685
--- /dev/null
+++ b/test/t/test_sh.py
@@ -0,0 +1,19 @@
+import pytest
+
+
+class TestSh:
+ @pytest.mark.complete("sh -")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("sh +")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("sh -o ")
+ def test_3(self, completion):
+ assert completion
+
+ @pytest.mark.complete("sh -c ")
+ def test_4(self, completion):
+ assert not completion
diff --git a/test/t/test_sha1sum.py b/test/t/test_sha1sum.py
new file mode 100644
index 00000000..efe8dfec
--- /dev/null
+++ b/test/t/test_sha1sum.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestSha1sum:
+ @pytest.mark.complete("sha1sum --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_shar.py b/test/t/test_shar.py
new file mode 100644
index 00000000..f73c4b87
--- /dev/null
+++ b/test/t/test_shar.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestShar:
+ @pytest.mark.complete("shar --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_shellcheck.py b/test/t/test_shellcheck.py
new file mode 100644
index 00000000..54bc4636
--- /dev/null
+++ b/test/t/test_shellcheck.py
@@ -0,0 +1,19 @@
+import pytest
+
+
+class TestShellcheck:
+ @pytest.mark.complete("shellcheck ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("shellcheck -")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("shellcheck --format=")
+ def test_3(self, completion):
+ assert completion
+
+ @pytest.mark.complete("shellcheck -s ")
+ def test_4(self, completion):
+ assert "bash" in completion
diff --git a/test/t/test_sitecopy.py b/test/t/test_sitecopy.py
new file mode 100644
index 00000000..de66a5dc
--- /dev/null
+++ b/test/t/test_sitecopy.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestSitecopy:
+ @pytest.mark.complete("sitecopy --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_slackpkg.py b/test/t/test_slackpkg.py
new file mode 100644
index 00000000..3997bb02
--- /dev/null
+++ b/test/t/test_slackpkg.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestSlackpkg:
+ @pytest.mark.complete("slackpkg -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_slapt_get.py b/test/t/test_slapt_get.py
new file mode 100644
index 00000000..1254d5b4
--- /dev/null
+++ b/test/t/test_slapt_get.py
@@ -0,0 +1,16 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="slapt-get")
+class TestSlaptGet:
+ @pytest.mark.complete("slapt-get -")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("slapt-get --up")
+ def test_2(self, completion):
+ assert completion == "--update --upgrade".split()
+
+ @pytest.mark.complete("slapt-get -c non-existent-file --install ")
+ def test_3(self, completion):
+ assert not completion
diff --git a/test/t/test_slapt_src.py b/test/t/test_slapt_src.py
new file mode 100644
index 00000000..df5f4da0
--- /dev/null
+++ b/test/t/test_slapt_src.py
@@ -0,0 +1,16 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="slapt-src")
+class TestSlaptSrc:
+ @pytest.mark.complete("slapt-src -")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("slapt-src --bu")
+ def test_2(self, completion):
+ assert completion == "--build"
+
+ @pytest.mark.complete("slapt-src --ins")
+ def test_3(self, completion):
+ assert completion == "--install"
diff --git a/test/t/test_smartctl.py b/test/t/test_smartctl.py
new file mode 100644
index 00000000..ac6dc68d
--- /dev/null
+++ b/test/t/test_smartctl.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestSmartctl:
+ @pytest.mark.complete("smartctl --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_smbcacls.py b/test/t/test_smbcacls.py
new file mode 100644
index 00000000..1ff16e2b
--- /dev/null
+++ b/test/t/test_smbcacls.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestSmbcacls:
+ @pytest.mark.complete("smbcacls -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_smbclient.py b/test/t/test_smbclient.py
new file mode 100644
index 00000000..ed2da4b0
--- /dev/null
+++ b/test/t/test_smbclient.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestSmbclient:
+ @pytest.mark.complete("smbclient -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_smbcquotas.py b/test/t/test_smbcquotas.py
new file mode 100644
index 00000000..b7e01d29
--- /dev/null
+++ b/test/t/test_smbcquotas.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestSmbcquotas:
+ @pytest.mark.complete("smbcquotas -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_smbget.py b/test/t/test_smbget.py
new file mode 100644
index 00000000..a360bd3c
--- /dev/null
+++ b/test/t/test_smbget.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestSmbget:
+ @pytest.mark.complete("smbget -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_smbpasswd.py b/test/t/test_smbpasswd.py
new file mode 100644
index 00000000..4d0e76ba
--- /dev/null
+++ b/test/t/test_smbpasswd.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestSmbpasswd:
+ @pytest.mark.complete("smbpasswd -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_smbtar.py b/test/t/test_smbtar.py
new file mode 100644
index 00000000..44b424bc
--- /dev/null
+++ b/test/t/test_smbtar.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestSmbtar:
+ @pytest.mark.complete("smbtar -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_smbtree.py b/test/t/test_smbtree.py
new file mode 100644
index 00000000..0eba4b54
--- /dev/null
+++ b/test/t/test_smbtree.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestSmbtree:
+ @pytest.mark.complete("smbtree -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_snownews.py b/test/t/test_snownews.py
new file mode 100644
index 00000000..24ed2dfe
--- /dev/null
+++ b/test/t/test_snownews.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestSnownews:
+ @pytest.mark.complete("snownews --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_sort.py b/test/t/test_sort.py
new file mode 100644
index 00000000..7dbb5b9d
--- /dev/null
+++ b/test/t/test_sort.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestSort:
+ @pytest.mark.complete("sort --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_split.py b/test/t/test_split.py
new file mode 100644
index 00000000..79013663
--- /dev/null
+++ b/test/t/test_split.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestSplit:
+ @pytest.mark.complete("split --", skipif="! split --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_spovray.py b/test/t/test_spovray.py
new file mode 100644
index 00000000..9033f835
--- /dev/null
+++ b/test/t/test_spovray.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestSpovray:
+ @pytest.mark.complete("spovray ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_sqlite3.py b/test/t/test_sqlite3.py
new file mode 100644
index 00000000..466281a9
--- /dev/null
+++ b/test/t/test_sqlite3.py
@@ -0,0 +1,15 @@
+import pytest
+
+
+class TestSqlite3:
+ @pytest.mark.complete("sqlite3 ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("sqlite3 -")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("sqlite3 -scratch foo ")
+ def test_3(self, completion):
+ assert not completion
diff --git a/test/t/test_ss.py b/test/t/test_ss.py
new file mode 100644
index 00000000..3e515dde
--- /dev/null
+++ b/test/t/test_ss.py
@@ -0,0 +1,15 @@
+import pytest
+
+
+class TestSs:
+ @pytest.mark.complete("ss -")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("ss -A ")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("ss -A foo,")
+ def test_3(self, completion):
+ assert completion
diff --git a/test/t/test_ssh.py b/test/t/test_ssh.py
new file mode 100644
index 00000000..97a4a733
--- /dev/null
+++ b/test/t/test_ssh.py
@@ -0,0 +1,30 @@
+import pytest
+
+
+class TestSsh:
+ @pytest.mark.complete("ssh -Fsp", cwd="ssh")
+ def test_1(self, completion):
+ assert completion == "-Fspaced conf"
+
+ @pytest.mark.complete("ssh -F config ls", cwd="ssh")
+ def test_2(self, completion):
+ """Should complete both commands and hostname."""
+ assert all(x in completion for x in "ls ls_known_host".split())
+
+ @pytest.mark.complete("ssh bash", cwd="ssh")
+ def test_3(self, completion):
+ """
+ First arg should not complete with commands.
+
+ Assumes there's no "bash" known host.
+ """
+ assert "bash" not in completion
+
+ @pytest.mark.complete("ssh -vo AddressFamily=")
+ def test_4(self, completion):
+ assert completion
+
+ @pytest.mark.xfail # TODO our test facilities don't support case change?
+ @pytest.mark.complete("ssh -vo userknownhostsf")
+ def test_5(self, completion):
+ assert "UserKnownHostsFile=" in completion
diff --git a/test/t/test_ssh_add.py b/test/t/test_ssh_add.py
new file mode 100644
index 00000000..33e679c7
--- /dev/null
+++ b/test/t/test_ssh_add.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="ssh-add")
+class TestSshAdd:
+ @pytest.mark.complete("ssh-add ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_ssh_copy_id.py b/test/t/test_ssh_copy_id.py
new file mode 100644
index 00000000..cb607715
--- /dev/null
+++ b/test/t/test_ssh_copy_id.py
@@ -0,0 +1,16 @@
+import pytest
+
+
+@pytest.mark.bashcomp(
+ cmd="ssh-copy-id",
+ pre_cmds=(
+ # Some old versions of ssh-copy-id won't output even usage if no
+ # identities are found. Try to make sure there is at least one.
+ "HOME=$PWD/ssh-copy-id",
+ ),
+ ignore_env=r"^[+-]_scp_path_esc=",
+)
+class TestSshCopyId:
+ @pytest.mark.complete("ssh-copy-id -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_ssh_keygen.py b/test/t/test_ssh_keygen.py
new file mode 100644
index 00000000..628672d4
--- /dev/null
+++ b/test/t/test_ssh_keygen.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="ssh-keygen")
+class TestSshKeygen:
+ @pytest.mark.complete("ssh-keygen -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_sshfs.py b/test/t/test_sshfs.py
new file mode 100644
index 00000000..44daed3e
--- /dev/null
+++ b/test/t/test_sshfs.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(ignore_env=r"^[+-]_scp_path_esc=")
+class TestSshfs:
+ @pytest.mark.complete("sshfs ./")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_sshmitm.py b/test/t/test_sshmitm.py
new file mode 100644
index 00000000..9964c5b5
--- /dev/null
+++ b/test/t/test_sshmitm.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestSshmitm:
+ @pytest.mark.complete("sshmitm -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_sshow.py b/test/t/test_sshow.py
new file mode 100644
index 00000000..b6811e0c
--- /dev/null
+++ b/test/t/test_sshow.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestSshow:
+ @pytest.mark.complete("sshow -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_strace.py b/test/t/test_strace.py
new file mode 100644
index 00000000..b9dbfaca
--- /dev/null
+++ b/test/t/test_strace.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestStrace:
+ @pytest.mark.complete("strace -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_stream.py b/test/t/test_stream.py
new file mode 100644
index 00000000..a46e9015
--- /dev/null
+++ b/test/t/test_stream.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestStream:
+ @pytest.mark.complete("stream ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_strings.py b/test/t/test_strings.py
new file mode 100644
index 00000000..3922ecef
--- /dev/null
+++ b/test/t/test_strings.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestStrings:
+ @pytest.mark.complete("strings ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_strip.py b/test/t/test_strip.py
new file mode 100644
index 00000000..c756fe03
--- /dev/null
+++ b/test/t/test_strip.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestStrip:
+ @pytest.mark.complete("strip --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_su.py b/test/t/test_su.py
new file mode 100644
index 00000000..e6c5ef4b
--- /dev/null
+++ b/test/t/test_su.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestSu:
+ @pytest.mark.complete("su ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_sudo.py b/test/t/test_sudo.py
new file mode 100644
index 00000000..761c5604
--- /dev/null
+++ b/test/t/test_sudo.py
@@ -0,0 +1,83 @@
+import pytest
+
+from conftest import assert_complete
+
+
+class TestSudo:
+ @pytest.mark.complete("sudo -")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("sudo cd fo", cwd="shared/default")
+ def test_2(self, completion):
+ assert completion == "foo.d/"
+ assert not completion.endswith(" ")
+
+ @pytest.mark.complete("sudo sh share")
+ def test_3(self, completion):
+ assert completion == "shared/"
+ assert not completion.endswith(" ")
+
+ @pytest.mark.complete("sudo mount /dev/sda1 def", cwd="shared")
+ def test_4(self, completion):
+ assert completion == "default/"
+ assert not completion.endswith(" ")
+
+ @pytest.mark.complete("sudo -e -u root bar foo", cwd="shared/default")
+ def test_5(self, completion):
+ assert completion == ["foo", "foo.d/"]
+
+ def test_6(self, bash, part_full_user):
+ part, full = part_full_user
+ completion = assert_complete(bash, "sudo chown %s" % part)
+ assert completion == full
+ assert completion.endswith(" ")
+
+ def test_7(self, bash, part_full_user, part_full_group):
+ _, user = part_full_user
+ partgroup, fullgroup = part_full_group
+ completion = assert_complete(
+ bash, "sudo chown %s:%s" % (user, partgroup)
+ )
+ assert completion == "%s:%s" % (user, fullgroup)
+ assert completion.endswith(" ")
+
+ def test_8(self, bash, part_full_group):
+ part, full = part_full_group
+ completion = assert_complete(bash, "sudo chown dot.user:%s" % part)
+ assert completion == "dot.user:%s" % full
+ assert completion.endswith(" ")
+
+ @pytest.mark.xfail # TODO check escaping, whitespace
+ def test_9(self, bash, part_full_group):
+ """Test preserving special chars in $prefix$partgroup<TAB>."""
+ part, full = part_full_group
+ for prefix in (
+ r"funky\ user:",
+ "funky.user:",
+ r"funky\.user:",
+ r"fu\ nky.user:",
+ r"f\ o\ o\.\bar:",
+ r"foo\_b\ a\.r\ :",
+ ):
+ completion = assert_complete(
+ bash, "sudo chown %s%s" % (prefix, part)
+ )
+ assert completion == "%s%s" % (prefix, full)
+ assert completion.endswith(" ")
+
+ def test_10(self, bash, part_full_user, part_full_group):
+ """Test giving up on degenerate cases instead of spewing junk."""
+ _, user = part_full_user
+ partgroup, _ = part_full_group
+ for x in range(2, 5):
+ completion = assert_complete(
+ bash, "sudo chown %s%s:%s" % (user, x * "\\", partgroup)
+ )
+ assert not completion
+
+ def test_11(self, bash, part_full_group):
+ """Test graceful fail on colon in user/group name."""
+ part, _ = part_full_group
+ completion = assert_complete(bash, "sudo chown foo:bar:%s" % part)
+ assert not completion
diff --git a/test/t/test_svcadm.py b/test/t/test_svcadm.py
new file mode 100644
index 00000000..76d86a47
--- /dev/null
+++ b/test/t/test_svcadm.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestSvcadm:
+ @pytest.mark.complete("svcadm ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_svk.py b/test/t/test_svk.py
new file mode 100644
index 00000000..8014bb01
--- /dev/null
+++ b/test/t/test_svk.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestSvk:
+ @pytest.mark.complete("svk ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_svn.py b/test/t/test_svn.py
new file mode 100644
index 00000000..d8bbee7b
--- /dev/null
+++ b/test/t/test_svn.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestSvn:
+ @pytest.mark.complete("svn ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_svnadmin.py b/test/t/test_svnadmin.py
new file mode 100644
index 00000000..2dc7c6c7
--- /dev/null
+++ b/test/t/test_svnadmin.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestSvnadmin:
+ @pytest.mark.complete("svnadmin ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_svnlook.py b/test/t/test_svnlook.py
new file mode 100644
index 00000000..26761b08
--- /dev/null
+++ b/test/t/test_svnlook.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestSvnlook:
+ @pytest.mark.complete("svnlook ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_sync_members.py b/test/t/test_sync_members.py
new file mode 100644
index 00000000..f0d2dcf0
--- /dev/null
+++ b/test/t/test_sync_members.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestSyncMembers:
+ @pytest.mark.complete("sync_members --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_synclient.py b/test/t/test_synclient.py
new file mode 100644
index 00000000..23138294
--- /dev/null
+++ b/test/t/test_synclient.py
@@ -0,0 +1,14 @@
+import pytest
+
+
+class TestSynclient:
+
+ # synclient -l may error out with e.g.
+ # "Couldn't find synaptics properties. No synaptics driver loaded?"
+ @pytest.mark.complete("synclient ", skipif="! synclient -l &>/dev/null")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("synclient -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_sysbench.py b/test/t/test_sysbench.py
new file mode 100644
index 00000000..afe21eca
--- /dev/null
+++ b/test/t/test_sysbench.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestSysbench:
+ @pytest.mark.complete("sysbench ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_sysctl.py b/test/t/test_sysctl.py
new file mode 100644
index 00000000..773b5910
--- /dev/null
+++ b/test/t/test_sysctl.py
@@ -0,0 +1,14 @@
+import pytest
+
+
+class TestSysctl:
+ @pytest.mark.complete("sysctl -")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete(
+ "sysctl kern",
+ skipif="! sysctl -N -a 2>/dev/null | " "command grep -q ^kern",
+ )
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_tac.py b/test/t/test_tac.py
new file mode 100644
index 00000000..f612cc90
--- /dev/null
+++ b/test/t/test_tac.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestTac:
+ @pytest.mark.complete("tac --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_tail.py b/test/t/test_tail.py
new file mode 100644
index 00000000..1b818f7d
--- /dev/null
+++ b/test/t/test_tail.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestTail:
+ @pytest.mark.complete("tail --", skipif="! tail --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_tar.py b/test/t/test_tar.py
new file mode 100644
index 00000000..309bcc76
--- /dev/null
+++ b/test/t/test_tar.py
@@ -0,0 +1,126 @@
+import re
+
+import pytest
+
+from conftest import assert_bash_exec
+
+
+@pytest.mark.bashcomp(ignore_env=r"^-declare -f _tar$")
+class TestTar:
+ @pytest.fixture(scope="class")
+ def gnu_tar(self, bash):
+ got = assert_bash_exec(bash, "tar --version || :", want_output=True)
+ if not re.search(r"\bGNU ", got):
+ pytest.skip("Not GNU tar")
+
+ @pytest.mark.complete("tar ")
+ def test_1(self, completion):
+ assert completion
+
+ # Test "f" when mode is not as first option
+ @pytest.mark.complete("tar zfc ", cwd="tar")
+ def test_2(self, completion):
+ assert completion == "dir/ dir2/".split()
+
+ @pytest.mark.complete("tar cf ", cwd="tar")
+ def test_3(self, completion):
+ assert completion == "dir/ dir2/".split()
+
+ @pytest.mark.complete("tar tf archive.tar.xz dir/file", cwd="tar")
+ def test_4(self, completion):
+ assert completion == "dir/fileA dir/fileB dir/fileC".split()
+
+ @pytest.mark.complete("tar cTfvv NOT_EXISTS DONT_CREATE.tar ", cwd="tar")
+ def test_5(self, completion):
+ assert completion == "archive.tar.xz dir/ dir2/ escape.tar".split()
+
+ @pytest.mark.complete("tar xvf ", cwd="tar")
+ def test_6(self, completion):
+ assert completion == "archive.tar.xz dir/ dir2/ escape.tar".split()
+
+ @pytest.mark.complete("tar -c")
+ def test_7(self, completion, gnu_tar):
+ """Test short options."""
+ assert completion
+
+ @pytest.mark.complete("tar -zcf ", cwd="tar")
+ def test_8(self, completion, gnu_tar):
+ """Test mode not as first option."""
+ assert completion == "dir/ dir2/".split()
+
+ @pytest.mark.complete("tar -cf ", cwd="tar")
+ def test_9(self, completion, gnu_tar):
+ """Test that we don't suggest rewriting existing archive."""
+ assert completion == "dir/ dir2/".split()
+
+ @pytest.mark.complete("tar -c --file ", cwd="tar")
+ def test_10(self, completion, gnu_tar):
+ assert completion == "dir/ dir2/".split()
+
+ @pytest.mark.complete("tar -cvv --file ", cwd="tar")
+ def test_11(self, completion, gnu_tar):
+ assert completion == "dir/ dir2/".split()
+
+ @pytest.mark.complete("tar -tf archive.tar.xz dir/file", cwd="tar")
+ def test_12(self, completion, gnu_tar):
+ """Test archive listing."""
+ assert completion == "dir/fileA dir/fileB dir/fileC".split()
+
+ @pytest.mark.complete("tar -t --file archive.tar.xz dir/file", cwd="tar")
+ def test_13(self, completion, gnu_tar):
+ """Test archive listing with --file."""
+ assert completion == "dir/fileA dir/fileB dir/fileC".split()
+
+ @pytest.mark.complete("tar --block")
+ def test_14(self, completion, gnu_tar):
+ assert completion == "--block-number --blocking-factor=".split()
+
+ @pytest.mark.complete("tar --add-fil")
+ def test_15(self, completion, gnu_tar):
+ assert completion == "--add-file="
+ assert not completion.endswith(" ")
+
+ @pytest.mark.complete("tar -cf /dev/null --posi")
+ def test_16(self, completion, gnu_tar):
+ assert completion == "--posix"
+ assert completion.endswith(" ")
+
+ @pytest.mark.complete("tar --owner=")
+ def test_17(self, bash, completion, gnu_tar):
+ users = sorted(
+ assert_bash_exec(bash, "compgen -A user", want_output=True).split()
+ )
+ assert completion == users
+
+ @pytest.mark.complete("tar --group=")
+ def test_18(self, bash, completion, gnu_tar):
+ groups = sorted(
+ assert_bash_exec(
+ bash, "compgen -A group", want_output=True
+ ).split()
+ )
+ assert completion == groups
+
+ # Use -b for this as -b is still not handled by tar's completion
+ @pytest.mark.complete("tar -cvvfb ")
+ def test_19(self, bash, completion, gnu_tar):
+ """Test short option -XXXb <TAB> (arg required)."""
+ assert not completion
+
+ # Use bsdtar here as it completes to only 'zc zt zx'
+ # -- 'tar' can be GNU tar and have more options
+ @pytest.mark.complete("bsdtar z")
+ def test_20(self, bash, completion):
+ assert completion == "zc zt zx".split()
+
+ @pytest.mark.complete("bsdtar cbfvv NON_EXISTENT ", cwd="tar")
+ def test_21(self, bash, completion):
+ """Test _second_ option in "old" argument."""
+ assert completion == "dir/ dir2/".split()
+
+ @pytest.mark.complete(r"tar tf escape.tar a/b\'", cwd="tar")
+ def test_22(self, bash, completion):
+ """Test listing escaped chars in old option."""
+ assert completion == "a/b'c/"
+
+ # TODO: "tar tf escape.tar a/b"
diff --git a/test/t/test_tcpdump.py b/test/t/test_tcpdump.py
new file mode 100644
index 00000000..ec26187f
--- /dev/null
+++ b/test/t/test_tcpdump.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestTcpdump:
+ @pytest.mark.complete("tcpdump -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_tcpkill.py b/test/t/test_tcpkill.py
new file mode 100644
index 00000000..4581a346
--- /dev/null
+++ b/test/t/test_tcpkill.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestTcpkill:
+ @pytest.mark.complete("tcpkill -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_tcpnice.py b/test/t/test_tcpnice.py
new file mode 100644
index 00000000..c7d208d1
--- /dev/null
+++ b/test/t/test_tcpnice.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestTcpnice:
+ @pytest.mark.complete("tcpnice -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_tee.py b/test/t/test_tee.py
new file mode 100644
index 00000000..b0914624
--- /dev/null
+++ b/test/t/test_tee.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestTee:
+ @pytest.mark.complete("tee ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_texindex.py b/test/t/test_texindex.py
new file mode 100644
index 00000000..4a2387ff
--- /dev/null
+++ b/test/t/test_texindex.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestTexindex:
+ @pytest.mark.complete("texindex --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_tightvncviewer.py b/test/t/test_tightvncviewer.py
new file mode 100644
index 00000000..04ebece5
--- /dev/null
+++ b/test/t/test_tightvncviewer.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestTightvncviewer:
+ @pytest.mark.complete("tightvncviewer ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_time.py b/test/t/test_time.py
new file mode 100644
index 00000000..231f14eb
--- /dev/null
+++ b/test/t/test_time.py
@@ -0,0 +1,23 @@
+import os
+
+import pytest
+
+
+class TestTime:
+ @pytest.mark.complete("time set")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("time -p find -typ")
+ def test_2(self, completion):
+ assert completion # find's options
+
+ @pytest.mark.complete("time shared/bin/")
+ def test_3(self, completion):
+ execs = sorted(
+ x
+ for x in os.listdir("shared/bin")
+ if os.path.isfile("shared/bin/%s" % x)
+ and os.access("shared/bin/%s" % x, os.X_OK)
+ )
+ assert completion == execs
diff --git a/test/t/test_timeout.py b/test/t/test_timeout.py
new file mode 100644
index 00000000..6b5ac5f0
--- /dev/null
+++ b/test/t/test_timeout.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestTimeout:
+ @pytest.mark.complete("timeout ")
+ def test_1(self, completion):
+ assert not completion
+
+ @pytest.mark.complete("timeout -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_tipc.py b/test/t/test_tipc.py
new file mode 100644
index 00000000..17b2bfda
--- /dev/null
+++ b/test/t/test_tipc.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestTipc:
+ @pytest.mark.complete("tipc ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_touch.py b/test/t/test_touch.py
new file mode 100644
index 00000000..cc398d81
--- /dev/null
+++ b/test/t/test_touch.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestTouch:
+ @pytest.mark.complete("touch --", skipif="! touch --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_tox.py b/test/t/test_tox.py
new file mode 100644
index 00000000..b6149362
--- /dev/null
+++ b/test/t/test_tox.py
@@ -0,0 +1,15 @@
+import pytest
+
+
+class TestTox:
+ @pytest.mark.complete("tox -")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("tox -e ")
+ def test_2(self, completion):
+ assert completion == "ALL"
+
+ @pytest.mark.complete("tox -e foo,")
+ def test_3(self, completion):
+ assert completion == "foo,ALL"
diff --git a/test/t/test_tr.py b/test/t/test_tr.py
new file mode 100644
index 00000000..84597012
--- /dev/null
+++ b/test/t/test_tr.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestTr:
+ @pytest.mark.complete("tr --", skipif="! tr --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_tracepath.py b/test/t/test_tracepath.py
new file mode 100644
index 00000000..a6ef7a41
--- /dev/null
+++ b/test/t/test_tracepath.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestTracepath:
+ @pytest.mark.complete("tracepath ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("tracepath -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_tshark.py b/test/t/test_tshark.py
new file mode 100644
index 00000000..6505e6a8
--- /dev/null
+++ b/test/t/test_tshark.py
@@ -0,0 +1,31 @@
+import pytest
+
+
+@pytest.mark.bashcomp(ignore_env=r"^\+_tshark_pr(ef|otocol)s=")
+class TestTshark:
+ @pytest.mark.complete("tshark -")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("tshark -G ")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("tshark -O foo,htt")
+ def test_3(self, completion):
+ # When there's only one completion, it's be the one with "foo," prefix;
+ # when multiple (e.g. http and http2), it's the completion alone.
+ assert completion == "foo,http" or "http" in completion
+
+ @pytest.mark.complete("tshark -o tcp")
+ def test_4(self, completion):
+ assert "tcp.desegment_tcp_streams:" in completion
+
+ @pytest.mark.complete("tshark -otcp")
+ def test_5(self, completion):
+ assert "-otcp.desegment_tcp_streams:" in completion
+
+ @pytest.mark.complete("tshark -O http")
+ def test_6(self, completion):
+ """Test there are no URLs in completions."""
+ assert not any("://" in x for x in completion)
diff --git a/test/t/test_tune2fs.py b/test/t/test_tune2fs.py
new file mode 100644
index 00000000..c8f4e873
--- /dev/null
+++ b/test/t/test_tune2fs.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestTune2fs:
+ @pytest.mark.complete("tune2fs ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_udevadm.py b/test/t/test_udevadm.py
new file mode 100644
index 00000000..d5dcddbb
--- /dev/null
+++ b/test/t/test_udevadm.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestUdevadm:
+ @pytest.mark.complete("udevadm ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_ulimit.py b/test/t/test_ulimit.py
new file mode 100644
index 00000000..24785beb
--- /dev/null
+++ b/test/t/test_ulimit.py
@@ -0,0 +1,35 @@
+import pytest
+
+
+class TestUlimit:
+ @pytest.mark.complete("ulimit ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("ulimit -")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("ulimit -S -")
+ def test_3(self, completion):
+ """Test modes are completed after -S (-S not treated as mode)."""
+ assert completion
+
+ @pytest.mark.complete("ulimit -u -")
+ def test_4(self, completion):
+ """Test modes are NOT completed if one is specified."""
+ assert not completion
+
+ @pytest.mark.complete("ulimit -c ")
+ def test_5(self, completion):
+ assert completion
+ assert not any(x.startswith("-") for x in completion)
+
+ @pytest.mark.complete("ulimit -a ")
+ def test_6(self, completion):
+ assert completion == sorted("-S -H".split())
+
+ @pytest.mark.complete("ulimit -a -H -")
+ def test_7(self, completion):
+ """Test modes are NOT completed with -a given somewhere."""
+ assert not completion
diff --git a/test/t/test_umount.py b/test/t/test_umount.py
new file mode 100644
index 00000000..dd4ae0b5
--- /dev/null
+++ b/test/t/test_umount.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestUmount:
+ @pytest.mark.complete("umount ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_unace.py b/test/t/test_unace.py
new file mode 100644
index 00000000..e4d5acb7
--- /dev/null
+++ b/test/t/test_unace.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestUnace:
+ @pytest.mark.complete("unace -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_uname.py b/test/t/test_uname.py
new file mode 100644
index 00000000..743f317c
--- /dev/null
+++ b/test/t/test_uname.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestUname:
+ @pytest.mark.complete("uname --", skipif="! uname --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_unexpand.py b/test/t/test_unexpand.py
new file mode 100644
index 00000000..6b77b3bb
--- /dev/null
+++ b/test/t/test_unexpand.py
@@ -0,0 +1,9 @@
+import pytest
+
+
+class TestUnexpand:
+ @pytest.mark.complete(
+ "unexpand --", skipif="! unexpand --help &>/dev/null"
+ )
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_uniq.py b/test/t/test_uniq.py
new file mode 100644
index 00000000..8647c615
--- /dev/null
+++ b/test/t/test_uniq.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestUniq:
+ @pytest.mark.complete("uniq --", skipif="! uniq --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_units.py b/test/t/test_units.py
new file mode 100644
index 00000000..aa1f89c8
--- /dev/null
+++ b/test/t/test_units.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestUnits:
+ @pytest.mark.complete("units --", skipif="! units --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_unpack200.py b/test/t/test_unpack200.py
new file mode 100644
index 00000000..16c04025
--- /dev/null
+++ b/test/t/test_unpack200.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestUnpack200:
+ @pytest.mark.complete("unpack200 ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_unrar.py b/test/t/test_unrar.py
new file mode 100644
index 00000000..45e336ef
--- /dev/null
+++ b/test/t/test_unrar.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestUnrar:
+ @pytest.mark.complete("unrar -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_unset.py b/test/t/test_unset.py
new file mode 100644
index 00000000..9f3eaded
--- /dev/null
+++ b/test/t/test_unset.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestUnset:
+ @pytest.mark.complete("unset BASH_ARG")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_unshunt.py b/test/t/test_unshunt.py
new file mode 100644
index 00000000..966312ed
--- /dev/null
+++ b/test/t/test_unshunt.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestUnshunt:
+ @pytest.mark.complete("unshunt --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_update_alternatives.py b/test/t/test_update_alternatives.py
new file mode 100644
index 00000000..1209bebf
--- /dev/null
+++ b/test/t/test_update_alternatives.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="update-alternatives")
+class TestUpdateAlternatives:
+ @pytest.mark.complete("update-alternatives --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_update_rc_d.py b/test/t/test_update_rc_d.py
new file mode 100644
index 00000000..6f574168
--- /dev/null
+++ b/test/t/test_update_rc_d.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="update-rc.d")
+class TestUpdateRcD:
+ @pytest.mark.complete("update-rc.d -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_upgradepkg.py b/test/t/test_upgradepkg.py
new file mode 100644
index 00000000..ada84f1c
--- /dev/null
+++ b/test/t/test_upgradepkg.py
@@ -0,0 +1,34 @@
+import fnmatch
+import os
+
+import pytest
+
+
+class TestUpgradepkg:
+ @pytest.mark.complete("upgradepkg -")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("upgradepkg --")
+ def test_2(self, completion):
+ assert (
+ completion == "--dry-run --install-new --reinstall "
+ "--verbose".split()
+ )
+
+ @pytest.mark.complete("upgradepkg ", cwd="slackware/home")
+ def test_4(self, completion):
+ expected = sorted(
+ [
+ "%s/" % x
+ for x in os.listdir("slackware/home")
+ if os.path.isdir("./%s" % x)
+ ]
+ + [
+ x
+ for x in os.listdir("slackware/home")
+ if os.path.isfile("./%s" % x)
+ and fnmatch.fnmatch(x, "*.t[bglx]z")
+ ]
+ )
+ assert completion == expected
diff --git a/test/t/test_urlsnarf.py b/test/t/test_urlsnarf.py
new file mode 100644
index 00000000..a9482113
--- /dev/null
+++ b/test/t/test_urlsnarf.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestUrlsnarf:
+ @pytest.mark.complete("urlsnarf -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_uscan.py b/test/t/test_uscan.py
new file mode 100644
index 00000000..5f4c684a
--- /dev/null
+++ b/test/t/test_uscan.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestUscan:
+ @pytest.mark.complete("uscan -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_useradd.py b/test/t/test_useradd.py
new file mode 100644
index 00000000..557d4a91
--- /dev/null
+++ b/test/t/test_useradd.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestUseradd:
+ @pytest.mark.complete("useradd ")
+ def test_1(self, completion):
+ assert not completion
+
+ @pytest.mark.complete("useradd -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_userdel.py b/test/t/test_userdel.py
new file mode 100644
index 00000000..74003eb1
--- /dev/null
+++ b/test/t/test_userdel.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestUserdel:
+ @pytest.mark.complete("userdel -")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("userdel root")
+ def test_2(self, completion):
+ assert "root" in completion
diff --git a/test/t/test_usermod.py b/test/t/test_usermod.py
new file mode 100644
index 00000000..1eb169c7
--- /dev/null
+++ b/test/t/test_usermod.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestUsermod:
+ @pytest.mark.complete("usermod ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("usermod -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_valgrind.py b/test/t/test_valgrind.py
new file mode 100644
index 00000000..2b03d6f9
--- /dev/null
+++ b/test/t/test_valgrind.py
@@ -0,0 +1,40 @@
+import os
+
+import pytest
+
+
+class TestValgrind:
+
+ # b: Assume we have at least bash that starts with b in PATH
+ @pytest.mark.complete("valgrind b")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("valgrind -")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("valgrind --tool=memche")
+ def test_3(self, completion):
+ assert "--tool=memcheck" in completion
+
+ @pytest.mark.complete("valgrind --tool=helgrind --history-l")
+ def test_4(self, completion):
+ assert "--history-level=" in completion
+ assert not completion.endswith(" ")
+
+ @pytest.mark.complete(r"valgrind --log-file=v\ 0.log ./bin/", cwd="shared")
+ def test_5(self, completion):
+ expected = sorted(
+ [
+ "%s/"
+ for x in os.listdir("shared/bin")
+ if os.path.isdir("shared/bin/%s" % x)
+ ]
+ + [
+ x
+ for x in os.listdir("shared/bin")
+ if os.path.isfile("shared/bin/%s" % x)
+ ]
+ )
+ assert completion == expected
diff --git a/test/t/test_vdir.py b/test/t/test_vdir.py
new file mode 100644
index 00000000..2f6a744e
--- /dev/null
+++ b/test/t/test_vdir.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestVdir:
+ @pytest.mark.complete("vdir ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_vgcfgbackup.py b/test/t/test_vgcfgbackup.py
new file mode 100644
index 00000000..20ef09cc
--- /dev/null
+++ b/test/t/test_vgcfgbackup.py
@@ -0,0 +1,9 @@
+import pytest
+
+
+class TestVgcfgbackup:
+ @pytest.mark.complete(
+ "vgcfgbackup -", skipif="! vgcfgbackup --help &>/dev/null"
+ )
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_vgcfgrestore.py b/test/t/test_vgcfgrestore.py
new file mode 100644
index 00000000..26096555
--- /dev/null
+++ b/test/t/test_vgcfgrestore.py
@@ -0,0 +1,9 @@
+import pytest
+
+
+class TestVgcfgrestore:
+ @pytest.mark.complete(
+ "vgcfgrestore -", skipif="! vgcfgrestore --help &>/dev/null"
+ )
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_vgchange.py b/test/t/test_vgchange.py
new file mode 100644
index 00000000..0e268bad
--- /dev/null
+++ b/test/t/test_vgchange.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestVgchange:
+ @pytest.mark.complete("vgchange -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_vgck.py b/test/t/test_vgck.py
new file mode 100644
index 00000000..347f8f9b
--- /dev/null
+++ b/test/t/test_vgck.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestVgck:
+ @pytest.mark.complete("vgck -", skipif="! vgck --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_vgconvert.py b/test/t/test_vgconvert.py
new file mode 100644
index 00000000..9810bc2f
--- /dev/null
+++ b/test/t/test_vgconvert.py
@@ -0,0 +1,9 @@
+import pytest
+
+
+class TestVgconvert:
+ @pytest.mark.complete(
+ "vgconvert -", skipif="! vgconvert --help &>/dev/null"
+ )
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_vgcreate.py b/test/t/test_vgcreate.py
new file mode 100644
index 00000000..07518e58
--- /dev/null
+++ b/test/t/test_vgcreate.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestVgcreate:
+ @pytest.mark.complete("vgcreate -")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("vgcreate __does_not_exist__")
+ def test_2(self, completion):
+ assert not completion
diff --git a/test/t/test_vgdisplay.py b/test/t/test_vgdisplay.py
new file mode 100644
index 00000000..a6919a6c
--- /dev/null
+++ b/test/t/test_vgdisplay.py
@@ -0,0 +1,9 @@
+import pytest
+
+
+class TestVgdisplay:
+ @pytest.mark.complete(
+ "vgdisplay -", skipif="! vgdisplay --help &>/dev/null"
+ )
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_vgexport.py b/test/t/test_vgexport.py
new file mode 100644
index 00000000..ce9a93bf
--- /dev/null
+++ b/test/t/test_vgexport.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestVgexport:
+ @pytest.mark.complete("vgexport -", skipif="! vgexport --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_vgextend.py b/test/t/test_vgextend.py
new file mode 100644
index 00000000..3d3347f1
--- /dev/null
+++ b/test/t/test_vgextend.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestVgextend:
+ @pytest.mark.complete("vgextend -", skipif="! vgextend --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_vgimport.py b/test/t/test_vgimport.py
new file mode 100644
index 00000000..1a3efab0
--- /dev/null
+++ b/test/t/test_vgimport.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestVgimport:
+ @pytest.mark.complete("vgimport -", skipif="! vgimport --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_vgmerge.py b/test/t/test_vgmerge.py
new file mode 100644
index 00000000..971eb69a
--- /dev/null
+++ b/test/t/test_vgmerge.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestVgmerge:
+ @pytest.mark.complete("vgmerge -", skipif="! vgmerge --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_vgmknodes.py b/test/t/test_vgmknodes.py
new file mode 100644
index 00000000..3209de9f
--- /dev/null
+++ b/test/t/test_vgmknodes.py
@@ -0,0 +1,9 @@
+import pytest
+
+
+class TestVgmknodes:
+ @pytest.mark.complete(
+ "vgmknodes -", skipif="! vgmknodes --help &>/dev/null"
+ )
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_vgreduce.py b/test/t/test_vgreduce.py
new file mode 100644
index 00000000..97641b42
--- /dev/null
+++ b/test/t/test_vgreduce.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestVgreduce:
+ @pytest.mark.complete("vgreduce -", skipif="! vgreduce --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_vgremove.py b/test/t/test_vgremove.py
new file mode 100644
index 00000000..9c47752c
--- /dev/null
+++ b/test/t/test_vgremove.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestVgremove:
+ @pytest.mark.complete("vgremove -", skipif="! vgremove --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_vgrename.py b/test/t/test_vgrename.py
new file mode 100644
index 00000000..ea5bc050
--- /dev/null
+++ b/test/t/test_vgrename.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestVgrename:
+ @pytest.mark.complete("vgrename -", skipif="! vgrename --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_vgs.py b/test/t/test_vgs.py
new file mode 100644
index 00000000..d492fe8d
--- /dev/null
+++ b/test/t/test_vgs.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestVgs:
+ @pytest.mark.complete("vgs -", skipif="! vgs --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_vgscan.py b/test/t/test_vgscan.py
new file mode 100644
index 00000000..061ff4e2
--- /dev/null
+++ b/test/t/test_vgscan.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestVgscan:
+ @pytest.mark.complete("vgscan -", skipif="! vgscan --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_vgsplit.py b/test/t/test_vgsplit.py
new file mode 100644
index 00000000..7b5a6869
--- /dev/null
+++ b/test/t/test_vgsplit.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestVgsplit:
+ @pytest.mark.complete("vgsplit -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_vi.py b/test/t/test_vi.py
new file mode 100644
index 00000000..4f7f4c2b
--- /dev/null
+++ b/test/t/test_vi.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestVi:
+ @pytest.mark.complete("vi ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("vi shared/ld.so.conf.d/")
+ def test_2(self, completion):
+ assert completion == "foo.txt libfoo.conf".split()
diff --git a/test/t/test_vipw.py b/test/t/test_vipw.py
new file mode 100644
index 00000000..160cb11b
--- /dev/null
+++ b/test/t/test_vipw.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestVipw:
+ @pytest.mark.complete("vipw -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_vmstat.py b/test/t/test_vmstat.py
new file mode 100644
index 00000000..47b55f6f
--- /dev/null
+++ b/test/t/test_vmstat.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestVmstat:
+ @pytest.mark.complete("vmstat -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_vncviewer.py b/test/t/test_vncviewer.py
new file mode 100644
index 00000000..9e2f1486
--- /dev/null
+++ b/test/t/test_vncviewer.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(ignore_env=r"^-declare -f _vncviewer_bootstrap$")
+class TestVncviewer:
+ @pytest.mark.complete("vncviewer ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_vpnc.py b/test/t/test_vpnc.py
new file mode 100644
index 00000000..29a120a4
--- /dev/null
+++ b/test/t/test_vpnc.py
@@ -0,0 +1,13 @@
+import pytest
+
+
+@pytest.mark.bashcomp(
+ # On CentOS and Fedora, there's something fishy with consolehelper and
+ # /usr/bin/vpnc going on at least when invoked as root; try to invoke the
+ # one in /usr/sbin instead.
+ pre_cmds=("PATH=/usr/sbin:$PATH",)
+)
+class TestVpnc:
+ @pytest.mark.complete("vpnc -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_watch.py b/test/t/test_watch.py
new file mode 100644
index 00000000..8387ae0a
--- /dev/null
+++ b/test/t/test_watch.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestWatch:
+ @pytest.mark.complete("watch -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_wc.py b/test/t/test_wc.py
new file mode 100644
index 00000000..eb7b5a85
--- /dev/null
+++ b/test/t/test_wc.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestWc:
+ @pytest.mark.complete("wc --", skipif="! wc --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_webmitm.py b/test/t/test_webmitm.py
new file mode 100644
index 00000000..e9f85940
--- /dev/null
+++ b/test/t/test_webmitm.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestWebmitm:
+ @pytest.mark.complete("webmitm -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_wget.py b/test/t/test_wget.py
new file mode 100644
index 00000000..f8af4fb3
--- /dev/null
+++ b/test/t/test_wget.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestWget:
+ @pytest.mark.complete("wget ")
+ def test_1(self, completion):
+ assert not completion
+
+ @pytest.mark.complete("wget --h")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_who.py b/test/t/test_who.py
new file mode 100644
index 00000000..d1f29ea7
--- /dev/null
+++ b/test/t/test_who.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestWho:
+ @pytest.mark.complete("who --", skipif="! who --help &>/dev/null")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_wine.py b/test/t/test_wine.py
new file mode 100644
index 00000000..d0e5698b
--- /dev/null
+++ b/test/t/test_wine.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestWine:
+ @pytest.mark.complete("wine ", cwd="shared/default")
+ def test_1(self, completion):
+ assert completion == ["bar bar.d/", "foo.d/"]
+
+ @pytest.mark.complete("wine notepad ", cwd="shared/default")
+ def test_2(self, completion):
+ assert completion == ["bar", "bar bar.d/", "foo", "foo.d/"]
diff --git a/test/t/test_withlist.py b/test/t/test_withlist.py
new file mode 100644
index 00000000..752c3943
--- /dev/null
+++ b/test/t/test_withlist.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestWithlist:
+ @pytest.mark.complete("withlist --")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_wodim.py b/test/t/test_wodim.py
new file mode 100644
index 00000000..4b785b6d
--- /dev/null
+++ b/test/t/test_wodim.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestWodim:
+ @pytest.mark.complete("wodim ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_wol.py b/test/t/test_wol.py
new file mode 100644
index 00000000..8a6bea21
--- /dev/null
+++ b/test/t/test_wol.py
@@ -0,0 +1,15 @@
+import pytest
+
+
+@pytest.mark.bashcomp(pre_cmds=("PATH=$PWD/shared/bin:$PATH",))
+class TestWol:
+ @pytest.mark.complete("wol ")
+ def test_1(self, completion):
+ assert (
+ completion == "00:00:00:00:00:00 11:11:11:11:11:11 "
+ "22:22:22:22:22:22 33:33:33:33:33:33".split()
+ )
+
+ @pytest.mark.complete("wol 00:")
+ def test_2(self, completion):
+ assert completion == "00:00:00:00:00:00"
diff --git a/test/t/test_write.py b/test/t/test_write.py
new file mode 100644
index 00000000..8f0886e4
--- /dev/null
+++ b/test/t/test_write.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestWrite:
+ @pytest.mark.complete("write root")
+ def test_1(self, completion):
+ assert "root" in completion
diff --git a/test/t/test_wsimport.py b/test/t/test_wsimport.py
new file mode 100644
index 00000000..b75bf0f7
--- /dev/null
+++ b/test/t/test_wsimport.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestWsimport:
+ @pytest.mark.complete("wsimport ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_wtf.py b/test/t/test_wtf.py
new file mode 100644
index 00000000..6b2c9745
--- /dev/null
+++ b/test/t/test_wtf.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestWtf:
+ @pytest.mark.complete("wtf A")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_wvdial.py b/test/t/test_wvdial.py
new file mode 100644
index 00000000..19043f61
--- /dev/null
+++ b/test/t/test_wvdial.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestWvdial:
+ @pytest.mark.complete("wvdial -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_xdg_mime.py b/test/t/test_xdg_mime.py
new file mode 100644
index 00000000..432be067
--- /dev/null
+++ b/test/t/test_xdg_mime.py
@@ -0,0 +1,28 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="xdg-mime")
+class TestXdgMime:
+ @pytest.mark.complete("xdg-mime ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("xdg-mime -")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("xdg-mime query ")
+ def test_3(self, completion):
+ assert completion
+
+ @pytest.mark.complete("xdg-mime query filetype ")
+ def test_4(self, completion):
+ assert completion
+
+ @pytest.mark.complete("xdg-mime default foo.desktop ")
+ def test_5(self, completion):
+ assert completion
+
+ @pytest.mark.complete("xdg-mime install --mode ")
+ def test_6(self, completion):
+ assert completion
diff --git a/test/t/test_xdg_settings.py b/test/t/test_xdg_settings.py
new file mode 100644
index 00000000..a50df579
--- /dev/null
+++ b/test/t/test_xdg_settings.py
@@ -0,0 +1,16 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="xdg-settings")
+class TestXdgSettings:
+ @pytest.mark.complete("xdg-settings ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("xdg-settings --")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("xdg-settings get ")
+ def test_3(self, completion):
+ assert completion
diff --git a/test/t/test_xfreerdp.py b/test/t/test_xfreerdp.py
new file mode 100644
index 00000000..fdad1926
--- /dev/null
+++ b/test/t/test_xfreerdp.py
@@ -0,0 +1,46 @@
+import pytest
+
+from conftest import assert_bash_exec
+
+
+class TestXfreerdp:
+ def _help(self, bash):
+ return assert_bash_exec(bash, "xfreerdp --help || :", want_output=True)
+
+ @pytest.fixture(scope="class")
+ def slash_syntax(self, bash):
+ if "/help" not in self._help(bash):
+ pytest.skip("Not slash syntax")
+
+ @pytest.fixture(scope="class")
+ def dash_syntax(self, bash):
+ if "/help" in self._help(bash):
+ pytest.skip("Not dash syntax")
+
+ @pytest.mark.complete("xfreerdp /")
+ def test_1(self, bash, completion, slash_syntax):
+ assert completion
+
+ @pytest.mark.complete("xfreerdp -")
+ def test_2(self, completion):
+ assert completion
+
+ @pytest.mark.complete("xfreerdp +")
+ def test_3(self, bash, completion, slash_syntax):
+ assert completion
+
+ @pytest.mark.complete("xfreerdp /kbd:")
+ def test_4(self, bash, completion, slash_syntax):
+ assert completion
+
+ @pytest.mark.complete("xfreerdp /help ")
+ def test_5(self, completion):
+ assert not completion
+
+ @pytest.mark.complete("xfreerdp -k ")
+ def test_6(self, bash, completion, dash_syntax):
+ assert completion
+
+ @pytest.mark.complete("xfreerdp --help ")
+ def test_7(self, completion):
+ assert not completion
diff --git a/test/t/test_xgamma.py b/test/t/test_xgamma.py
new file mode 100644
index 00000000..56c9440d
--- /dev/null
+++ b/test/t/test_xgamma.py
@@ -0,0 +1,12 @@
+import pytest
+
+
+class TestXgamma:
+ @pytest.mark.complete("xgamma -")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("xgamma -gam")
+ def test_2(self, completion):
+ assert completion == "-gamma"
+ assert completion.endswith(" ")
diff --git a/test/t/test_xm.py b/test/t/test_xm.py
new file mode 100644
index 00000000..42c4c53d
--- /dev/null
+++ b/test/t/test_xm.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestXm:
+ @pytest.mark.complete("xm ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_xmllint.py b/test/t/test_xmllint.py
new file mode 100644
index 00000000..0c0ebbcd
--- /dev/null
+++ b/test/t/test_xmllint.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestXmllint:
+ @pytest.mark.complete("xmllint ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("xmllint -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_xmlwf.py b/test/t/test_xmlwf.py
new file mode 100644
index 00000000..8751f865
--- /dev/null
+++ b/test/t/test_xmlwf.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestXmlwf:
+ @pytest.mark.complete("xmlwf ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_xmms.py b/test/t/test_xmms.py
new file mode 100644
index 00000000..1c96e2b5
--- /dev/null
+++ b/test/t/test_xmms.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestXmms:
+ @pytest.mark.complete("xmms --")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("xmms --non-existent-option=--")
+ def test_2(self, completion):
+ assert not completion
diff --git a/test/t/test_xmodmap.py b/test/t/test_xmodmap.py
new file mode 100644
index 00000000..d6d0ceae
--- /dev/null
+++ b/test/t/test_xmodmap.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestXmodmap:
+ @pytest.mark.complete("xmodmap ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("xmodmap -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_xpovray.py b/test/t/test_xpovray.py
new file mode 100644
index 00000000..4f603a7c
--- /dev/null
+++ b/test/t/test_xpovray.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestXpovray:
+ @pytest.mark.complete("xpovray ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_xrandr.py b/test/t/test_xrandr.py
new file mode 100644
index 00000000..e4e0d6b7
--- /dev/null
+++ b/test/t/test_xrandr.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestXrandr:
+ @pytest.mark.complete("xrandr ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("xrandr --mode ")
+ def test_2(self, completion):
+ assert not completion
diff --git a/test/t/test_xrdb.py b/test/t/test_xrdb.py
new file mode 100644
index 00000000..8f675e68
--- /dev/null
+++ b/test/t/test_xrdb.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestXrdb:
+ @pytest.mark.complete("xrdb ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_xsltproc.py b/test/t/test_xsltproc.py
new file mode 100644
index 00000000..26898777
--- /dev/null
+++ b/test/t/test_xsltproc.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestXsltproc:
+ @pytest.mark.complete("xsltproc ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("xsltproc -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_xvnc4viewer.py b/test/t/test_xvnc4viewer.py
new file mode 100644
index 00000000..72fe3f98
--- /dev/null
+++ b/test/t/test_xvnc4viewer.py
@@ -0,0 +1,15 @@
+import pytest
+
+
+class TestXvnc4viewer:
+ @pytest.mark.complete("xvnc4viewer -")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("xvnc4viewer -PreferredEncoding ")
+ def test_2(self, completion):
+ assert completion == "hextile raw zrle".split()
+
+ @pytest.mark.complete("xvnc4viewer --preferredencoding ")
+ def test_3(self, completion):
+ assert completion == "hextile raw zrle".split()
diff --git a/test/t/test_xxd.py b/test/t/test_xxd.py
new file mode 100644
index 00000000..bd461eb7
--- /dev/null
+++ b/test/t/test_xxd.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestXxd:
+ @pytest.mark.complete("xxd ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("xxd -")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_xz.py b/test/t/test_xz.py
new file mode 100644
index 00000000..6b92f480
--- /dev/null
+++ b/test/t/test_xz.py
@@ -0,0 +1,22 @@
+import pytest
+
+
+class TestXz:
+ @pytest.mark.complete("xz ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("xz -d xz/")
+ def test_2(self, completion):
+ assert (
+ completion == "a/ bashcomp.lzma bashcomp.tar.xz "
+ "bashcomp.tlz bashcomp.xz".split()
+ )
+
+ @pytest.mark.complete("xz xz/")
+ def test_3(self, completion):
+ assert completion == "a/ bashcomp.tar".split()
+
+ @pytest.mark.complete("xz ~")
+ def test_4(self, completion):
+ assert completion
diff --git a/test/t/test_xzdec.py b/test/t/test_xzdec.py
new file mode 100644
index 00000000..e57c1b65
--- /dev/null
+++ b/test/t/test_xzdec.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestXzdec:
+ @pytest.mark.complete("xzdec ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_ypcat.py b/test/t/test_ypcat.py
new file mode 100644
index 00000000..f743c5ad
--- /dev/null
+++ b/test/t/test_ypcat.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestYpcat:
+ @pytest.mark.complete("ypcat ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_ypmatch.py b/test/t/test_ypmatch.py
new file mode 100644
index 00000000..db56320a
--- /dev/null
+++ b/test/t/test_ypmatch.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestYpmatch:
+ @pytest.mark.complete("ypmatch foo ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_yum.py b/test/t/test_yum.py
new file mode 100644
index 00000000..5d4a052b
--- /dev/null
+++ b/test/t/test_yum.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestYum:
+ @pytest.mark.complete("yum -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_yum_arch.py b/test/t/test_yum_arch.py
new file mode 100644
index 00000000..9bbc38ff
--- /dev/null
+++ b/test/t/test_yum_arch.py
@@ -0,0 +1,8 @@
+import pytest
+
+
+@pytest.mark.bashcomp(cmd="yum-arch")
+class TestYumArch:
+ @pytest.mark.complete("yum-arch -")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/test_zopfli.py b/test/t/test_zopfli.py
new file mode 100644
index 00000000..127eda28
--- /dev/null
+++ b/test/t/test_zopfli.py
@@ -0,0 +1,11 @@
+import pytest
+
+
+class TestZopfli:
+ @pytest.mark.complete("zopfli ")
+ def test_1(self, completion):
+ assert completion
+
+ @pytest.mark.complete("zopfli ~")
+ def test_2(self, completion):
+ assert completion
diff --git a/test/t/test_zopflipng.py b/test/t/test_zopflipng.py
new file mode 100644
index 00000000..a01e7bd7
--- /dev/null
+++ b/test/t/test_zopflipng.py
@@ -0,0 +1,7 @@
+import pytest
+
+
+class TestZopflipng:
+ @pytest.mark.complete("zopflipng ")
+ def test_1(self, completion):
+ assert completion
diff --git a/test/t/unit/Makefile.am b/test/t/unit/Makefile.am
new file mode 100644
index 00000000..a0ab7502
--- /dev/null
+++ b/test/t/unit/Makefile.am
@@ -0,0 +1,19 @@
+EXTRA_DIST = \
+ test_unit_count_args.py \
+ test_unit_expand.py \
+ test_unit_expand_tilde_by_ref.py \
+ test_unit_filedir.py \
+ test_unit_find_unique_completion_pair.py \
+ test_unit_get_comp_words_by_ref.py \
+ test_unit_get_cword.py \
+ test_unit_init_completion.py \
+ test_unit_ip_addresses.py \
+ test_unit_longopt.py \
+ test_unit_parse_help.py \
+ test_unit_parse_usage.py \
+ test_unit_tilde.py
+
+all:
+
+clean-local:
+ $(RM) -R __pycache__
diff --git a/test/t/unit/test_unit_count_args.py b/test/t/unit/test_unit_count_args.py
new file mode 100644
index 00000000..c0afe736
--- /dev/null
+++ b/test/t/unit/test_unit_count_args.py
@@ -0,0 +1,66 @@
+import pytest
+
+from conftest import assert_bash_exec, TestUnitBase
+
+
+@pytest.mark.bashcomp(
+ cmd=None, ignore_env=r"^[+-](args|COMP_(WORDS|CWORD|LINE|POINT))="
+)
+class TestUnitCountArgs(TestUnitBase):
+ def _test(self, *args, **kwargs):
+ return self._test_unit("_count_args %s; echo $args", *args, **kwargs)
+
+ def test_1(self, bash):
+ assert_bash_exec(bash, "_count_args >/dev/null")
+
+ def test_2(self, bash):
+ """a b| should set args to 1"""
+ output = self._test(bash, "(a b)", 1, "a b", 3)
+ assert output == "1"
+
+ def test_3(self, bash):
+ """a b|c should set args to 1"""
+ output = self._test(bash, "(a bc)", 1, "a bc", 3)
+ assert output == "1"
+
+ def test_4(self, bash):
+ """a b c| should set args to 2"""
+ output = self._test(bash, "(a b c)", 2, "a b c", 4)
+ assert output == "2"
+
+ def test_5(self, bash):
+ """a b| c should set args to 1"""
+ output = self._test(bash, "(a b c)", 1, "a b c", 3)
+ assert output == "1"
+
+ def test_6(self, bash):
+ """a b -c| d should set args to 2"""
+ output = self._test(bash, "(a b -c d)", 2, "a b -c d", 6)
+ assert output == "2"
+
+ def test_7(self, bash):
+ """a b -c d e| with -c arg excluded should set args to 2"""
+ output = self._test(
+ bash, "(a b -c d e)", 4, "a b -c d e", 10, arg='"" "@(-c|--foo)"'
+ )
+ assert output == "2"
+
+ def test_8(self, bash):
+ """a -b -c d e| with -c arg excluded
+ and -b included should set args to 1"""
+ output = self._test(
+ bash,
+ "(a -b -c d e)",
+ 4,
+ "a -b -c d e",
+ 11,
+ arg='"" "@(-c|--foo)" "-[b]"',
+ )
+ assert output == "2"
+
+ def test_9(self, bash):
+ """a -b -c d e| with -b included should set args to 3"""
+ output = self._test(
+ bash, "(a -b -c d e)", 4, "a -b -c d e", 11, arg='"" "" "-b"'
+ )
+ assert output == "3"
diff --git a/test/t/unit/test_unit_expand.py b/test/t/unit/test_unit_expand.py
new file mode 100644
index 00000000..7c0a9836
--- /dev/null
+++ b/test/t/unit/test_unit_expand.py
@@ -0,0 +1,13 @@
+import pytest
+
+from conftest import assert_bash_exec
+
+
+@pytest.mark.bashcomp(cmd=None)
+class TestUnitExpand:
+ def test_1(self, bash):
+ assert_bash_exec(bash, "_expand >/dev/null")
+
+ def test_2(self, bash):
+ """Test environment non-pollution, detected at teardown."""
+ assert_bash_exec(bash, "foo() { _expand; }; foo; unset foo")
diff --git a/test/t/unit/test_unit_expand_tilde_by_ref.py b/test/t/unit/test_unit_expand_tilde_by_ref.py
new file mode 100644
index 00000000..fbc172df
--- /dev/null
+++ b/test/t/unit/test_unit_expand_tilde_by_ref.py
@@ -0,0 +1,16 @@
+import pytest
+
+from conftest import assert_bash_exec
+
+
+@pytest.mark.bashcomp(cmd=None)
+class TestUnitExpandTildeByRef:
+ def test_1(self, bash):
+ assert_bash_exec(bash, "__expand_tilde_by_ref >/dev/null")
+
+ def test_2(self, bash):
+ """Test environment non-pollution, detected at teardown."""
+ assert_bash_exec(
+ bash,
+ '_x() { local aa="~"; __expand_tilde_by_ref aa; }; _x; unset _x',
+ )
diff --git a/test/t/unit/test_unit_filedir.py b/test/t/unit/test_unit_filedir.py
new file mode 100644
index 00000000..dcd52403
--- /dev/null
+++ b/test/t/unit/test_unit_filedir.py
@@ -0,0 +1,9 @@
+import pytest
+
+from conftest import assert_bash_exec
+
+
+@pytest.mark.bashcomp(cmd=None, ignore_env=r"^\+COMPREPLY=")
+class TestUnitFiledir:
+ def test_1(self, bash):
+ assert_bash_exec(bash, "_filedir >/dev/null")
diff --git a/test/t/unit/test_unit_find_unique_completion_pair.py b/test/t/unit/test_unit_find_unique_completion_pair.py
new file mode 100644
index 00000000..25cf9d3b
--- /dev/null
+++ b/test/t/unit/test_unit_find_unique_completion_pair.py
@@ -0,0 +1,55 @@
+import pytest
+
+from conftest import find_unique_completion_pair
+
+
+@pytest.mark.bashcomp(cmd=None)
+class TestUnitFindUniqueCompletionPair:
+ def _test(self, inp: str, exp: str) -> None:
+ res = find_unique_completion_pair(inp.split())
+ if exp:
+ part, cont = exp.split()
+ assert res == (part, part + cont)
+ else:
+ assert not exp
+
+ def test_1(self):
+ self._test("a", "")
+
+ def test_2(self):
+ self._test("ab", "a b")
+
+ def test_3(self):
+ self._test("ab ab ab", "a b")
+
+ def test_4(self):
+ self._test("a ab abcd abc", "")
+
+ def test_5(self):
+ self._test("user1 user2", "")
+
+ def test_6(self):
+ self._test("root username1 username2", "ro ot")
+
+ def test_7(self):
+ self._test("root username21 username2", "ro ot")
+
+ def test_8(self):
+ self._test(
+ "long_user_name lang_user_name long_usor_name", "lang_us er_name"
+ )
+
+ def test_9(self):
+ self._test(
+ "lang_user_name1 long_user_name lang_user_name long_usor_name",
+ "long_use r_name",
+ )
+
+ def test_10(self):
+ self._test("root username", "user name")
+
+ def test_11(self):
+ self._test("a aladin", "ala din")
+
+ def test_12(self):
+ self._test("ala aladin", "alad in")
diff --git a/test/t/unit/test_unit_get_comp_words_by_ref.py b/test/t/unit/test_unit_get_comp_words_by_ref.py
new file mode 100644
index 00000000..1603bad6
--- /dev/null
+++ b/test/t/unit/test_unit_get_comp_words_by_ref.py
@@ -0,0 +1,167 @@
+import pytest
+
+from conftest import assert_bash_exec, TestUnitBase
+
+
+@pytest.mark.bashcomp(
+ cmd=None, ignore_env=r"^(\+(cur|prev)|[+-]COMP_(WORDS|CWORD|LINE|POINT))="
+)
+class TestUnitGetCompWordsByRef(TestUnitBase):
+ def _test(self, bash, *args, **kwargs):
+ assert_bash_exec(bash, "unset cur prev")
+ output = self._test_unit(
+ "_get_comp_words_by_ref %s cur prev; echo $cur,$prev",
+ bash,
+ *args,
+ **kwargs
+ )
+ return output.strip()
+
+ def test_1(self, bash):
+ assert_bash_exec(bash, "_get_comp_words_by_ref cur >/dev/null")
+
+ def test_2(self, bash):
+ """a b|"""
+ output = self._test(bash, "(a b)", 1, "a b", 3)
+ assert output == "b,a"
+
+ def test_3(self, bash):
+ """a |"""
+ output = self._test(bash, "(a)", 1, "a ", 2)
+ assert output == ",a"
+
+ def test_4(self, bash):
+ """|a"""
+ output = self._test(bash, "(a)", 0, "a", 0)
+ assert output == ","
+
+ def test_5(self, bash):
+ """|a """
+ output = self._test(bash, "(a)", 0, "a ", 0)
+ assert output == ","
+
+ def test_6(self, bash):
+ """ | a """
+ output = self._test(bash, "(a)", 0, " a ", 1)
+ assert output.strip() == ","
+
+ def test_7(self, bash):
+ """a b |"""
+ output = self._test(bash, "(a b '')", 2, "a b ", 4)
+ assert output == ",b"
+
+ def test_8(self, bash):
+ """a b | with WORDBREAKS -= :"""
+ output = self._test(bash, "(a b '')", 2, "a b ", 4, arg="-n :")
+ assert output == ",b"
+
+ def test_9(self, bash):
+ """a b|c"""
+ output = self._test(bash, "(a bc)", 1, "a bc", 3)
+ assert output == "b,a"
+
+ def test_10(self, bash):
+ """a | b"""
+ output = self._test(bash, "(a b)", 1, "a b", 2)
+ assert output == ",a"
+
+ def test_11(self, bash):
+ r"""a b\ c|"""
+ output = self._test(bash, r"(a 'b\ c')", 1, r"a b\ c", 6)
+ assert output == r"b\ c,a"
+
+ def test_12(self, bash):
+ r"""a\ b a\ b|"""
+ output = self._test(bash, r"('a\ b' 'a\ b')", 1, r"a\ b a\ b", 9)
+ assert output == r"a\ b,a\ b"
+
+ def test_13(self, bash):
+ r"""a b\| c"""
+ output = self._test(bash, r"(a 'b\ c')", 1, r"a b\ c", 4)
+ assert output == r"b\,a"
+
+ def test_14(self, bash):
+ r"""a "b\|"""
+ output = self._test(bash, "(a '\"b')", 1, 'a "b\\', 5)
+ assert output == r'"b\,a'
+
+ def test_15(self, bash):
+ """a 'b c|"""
+ output = self._test(bash, '(a "\'b c")', 1, "a 'b c", 6)
+ assert output == "'b c,a"
+
+ def test_16(self, bash):
+ """a "b c|"""
+ output = self._test(bash, r'(a "\"b c")', 1, 'a "b c', 6)
+ assert output == '"b c,a'
+
+ def test_17(self, bash):
+ """a b:c| with WORDBREAKS += :"""
+ assert_bash_exec(bash, "add_comp_wordbreak_char :")
+ output = self._test(bash, "(a b : c)", 3, "a b:c", 5)
+ assert output == "c,:"
+
+ def test_18(self, bash):
+ """a b:c| with WORDBREAKS -= :"""
+ output = self._test(bash, "(a b : c)", 3, "a b:c", 5, arg="-n :")
+ assert output == "b:c,a"
+
+ def test_19(self, bash):
+ """a b c:| with WORDBREAKS -= :"""
+ output = self._test(bash, "(a b c :)", 3, "a b c:", 6, arg="-n :")
+ assert output == "c:,b"
+
+ def test_20(self, bash):
+ r"""a b:c | with WORDBREAKS -= :"""
+ output = self._test(bash, "(a b : c '')", 4, "a b:c ", 6, arg="-n :")
+ assert output == ",b:c"
+
+ def test_21(self, bash):
+ """a :| with WORDBREAKS -= :"""
+ output = self._test(bash, "(a :)", 1, "a :", 3, arg="-n :")
+ assert output == ":,a"
+
+ def test_22(self, bash):
+ """a b::| with WORDBREAKS -= :"""
+ output = self._test(bash, "(a b ::)", 2, "a b::", 5, arg="-n :")
+ assert output == "b::,a"
+
+ def test_23(self, bash):
+ """a -n|
+
+ This test makes sure `_get_cword' doesn't use `echo' to return its
+ value, because -n might be interpreted by `echo' and thus woud not
+ be returned.
+ """
+ output = self._test(bash, "(a -n)", 1, "a -n", 4)
+ assert output == "-n,a"
+
+ def test_24(self, bash):
+ """a b>c|"""
+ output = self._test(bash, r"(a b \> c)", 3, "a b>c", 5)
+ assert output.startswith("c,")
+
+ def test_25(self, bash):
+ """a b=c|"""
+ output = self._test(bash, "(a b = c)", 3, "a b=c", 5)
+ assert output.startswith("c,")
+
+ def test_26(self, bash):
+ """a *|"""
+ output = self._test(bash, r"(a \*)", 1, "a *", 4)
+ assert output == "*,a"
+
+ def test_27(self, bash):
+ """a $(b c|"""
+ output = self._test(bash, "(a '$(b c')", 1, "a $(b c", 7)
+ assert output == "$(b c,a"
+
+ def test_28(self, bash):
+ r"""a $(b c\ d|"""
+ output = self._test(bash, r"(a '$(b c\ d')", 1, r"a $(b c\ d", 10)
+ assert output == r"$(b c\ d,a"
+
+ def test_29(self, bash):
+ """a 'b&c|"""
+ output = self._test(bash, '(a "\'b&c")', 1, "a 'b&c", 6)
+ assert output == "'b&c,a"
diff --git a/test/t/unit/test_unit_get_cword.py b/test/t/unit/test_unit_get_cword.py
new file mode 100644
index 00000000..3042dd29
--- /dev/null
+++ b/test/t/unit/test_unit_get_cword.py
@@ -0,0 +1,135 @@
+import pytest
+
+from conftest import assert_bash_exec, TestUnitBase
+
+
+@pytest.mark.bashcomp(
+ cmd=None, ignore_env=r"^[+-]COMP_(WORDS|CWORD|LINE|POINT)="
+)
+class TestUnitGetCword(TestUnitBase):
+ def _test(self, *args, **kwargs):
+ return self._test_unit("_get_cword %s; echo", *args, **kwargs)
+
+ def test_1(self, bash):
+ assert_bash_exec(bash, "_get_cword >/dev/null")
+
+ def test_2(self, bash):
+ """a b| should return b"""
+ output = self._test(bash, "(a b)", 1, "a b", 3)
+ assert output == "b"
+
+ def test_3(self, bash):
+ """a | should return nothing"""
+ output = self._test(bash, "(a)", 1, "a ", 2)
+ assert not output
+
+ def test_4(self, bash):
+ """a b | should return nothing"""
+ output = self._test(bash, "(a b '')", 2, "a b ", 4)
+ assert not output
+
+ def test_5(self, bash):
+ """a b | with WORDBREAKS -= : should return nothing"""
+ output = self._test(bash, "(a b '')", 2, "a b ", 4, arg=":")
+ assert not output
+
+ def test_6(self, bash):
+ """a b|c should return b"""
+ output = self._test(bash, "(a bc)", 1, "a bc", 3)
+ assert output == "b"
+
+ def test_7(self, bash):
+ r"""a b\ c| should return b\ c"""
+ output = self._test(bash, r"(a 'b\ c')", 1, r"a b\ c", 6)
+ assert output == r"b\ c"
+
+ def test_8(self, bash):
+ r"""a b\| c should return b\ """
+ output = self._test(bash, r"(a 'b\ c')", 1, r"a b\ c", 4)
+ assert output == "b\\"
+
+ def test_9(self, bash):
+ r"""a "b\| should return "b\ """
+ output = self._test(bash, "(a '\"b\\')", 1, r"a \"b\\", 5)
+ assert output == '"b\\'
+
+ def test_10(self, bash):
+ r"""a 'b c| should return 'b c"""
+ output = self._test(bash, '(a "\'b c")', 1, "a 'b c", 6)
+ assert output == "'b c"
+
+ def test_11(self, bash):
+ r"""a "b c| should return "b c"""
+ output = self._test(bash, "(a '\"b c')", 1, 'a "b c', 6)
+ assert output == '"b c'
+
+ def test_12(self, bash):
+ """a b:c| with WORDBREAKS += : should return c"""
+ assert_bash_exec(bash, "add_comp_wordbreak_char :")
+ output = self._test(bash, "(a b : c)", 3, "a b:c", 5)
+ assert output == "c"
+
+ def test_13(self, bash):
+ """a b:c| with WORDBREAKS -= : should return b:c"""
+ assert_bash_exec(bash, "add_comp_wordbreak_char :")
+ output = self._test(bash, "(a b : c)", 3, "a b:c", 5, arg=":")
+ assert output == "b:c"
+
+ def test_14(self, bash):
+ """a b c:| with WORDBREAKS -= : should return c:"""
+ assert_bash_exec(bash, "add_comp_wordbreak_char :")
+ output = self._test(bash, "(a b c :)", 3, "a b c:", 6, arg=":")
+ assert output == "c:"
+
+ def test_15(self, bash):
+ """a :| with WORDBREAKS -= : should return :"""
+ assert_bash_exec(bash, "add_comp_wordbreak_char :")
+ output = self._test(bash, "(a :)", 1, "a :", 3, arg=":")
+ assert output == ":"
+
+ def test_16(self, bash):
+ """a b::| with WORDBREAKS -= : should return b::"""
+ assert_bash_exec(bash, "add_comp_wordbreak_char :")
+ output = self._test(bash, "(a b::)", 1, "a b::", 5, arg=":")
+ assert output == "b::"
+
+ def test_17(self, bash):
+ """
+ a -n| should return -n
+
+ This test makes sure `_get_cword' doesn't use `echo' to return its
+ value, because -n might be interpreted by `echo' and thus woud not
+ be returned.
+ """
+ output = self._test(bash, "(a -n)", 1, "a -n", 4)
+ assert output == "-n"
+
+ def test_18(self, bash):
+ """a b>c| should return c"""
+ output = self._test(bash, r"(a b \> c)", 3, "a b>c", 5)
+ assert output == "c"
+
+ def test_19(self, bash):
+ """a b=c| should return c"""
+ output = self._test(bash, "(a b = c)", 3, "a b=c", 5)
+ assert output == "c"
+
+ def test_20(self, bash):
+ """a *| should return *"""
+ output = self._test(bash, r"(a \*)", 1, "a *", 4)
+ assert output == "*"
+
+ def test_21(self, bash):
+ """a $(b c| should return $(b c"""
+ output = self._test(bash, r"(a '$(b c')", 1, "a $(b c", 7)
+ assert output == "$(b c"
+
+ def test_22(self, bash):
+ r"""a $(b c\ d| should return $(b c\ d"""
+ output = self._test(bash, r"(a '$(b c\ d')", 1, r"a $(b c\ d", 10)
+ assert output == r"$(b c\ d"
+
+ def test_23(self, bash):
+ """a 'b&c| should return 'b&c"""
+ output = self._test(bash, '(a "\'b&c")', 1, "a 'b&c", 6)
+ assert output == "'b&c"
diff --git a/test/t/unit/test_unit_init_completion.py b/test/t/unit/test_unit_init_completion.py
new file mode 100644
index 00000000..64f3b511
--- /dev/null
+++ b/test/t/unit/test_unit_init_completion.py
@@ -0,0 +1,24 @@
+import pytest
+
+from conftest import assert_bash_exec, TestUnitBase
+
+
+@pytest.mark.bashcomp(
+ cmd=None,
+ ignore_env=r"^[+-](COMP(_(WORDS|CWORD|LINE|POINT)|REPLY)|"
+ r"cur|cword|words)=",
+)
+class TestUnitInitCompletion(TestUnitBase):
+ def test_1(self, bash):
+ """Test environment non-pollution, detected at teardown."""
+ assert_bash_exec(
+ bash,
+ "foo() { local cur prev words cword; _init_completion; }; "
+ "foo; unset foo",
+ )
+
+ def test_2(self, bash):
+ output = self._test_unit(
+ "_init_completion %s; echo $cur,$prev", bash, "(a)", 0, "a", 0
+ )
+ assert output == ","
diff --git a/test/t/unit/test_unit_ip_addresses.py b/test/t/unit/test_unit_ip_addresses.py
new file mode 100644
index 00000000..cd7a38ab
--- /dev/null
+++ b/test/t/unit/test_unit_ip_addresses.py
@@ -0,0 +1,49 @@
+import pytest
+
+from conftest import assert_bash_exec, in_docker
+
+
+@pytest.mark.bashcomp(cmd=None, ignore_env=r"^\+COMPREPLY=")
+class TestUnitIpAddresses:
+ @pytest.fixture(scope="class")
+ def functions(self, request, bash):
+ assert_bash_exec(
+ bash,
+ "_ia() { local cur=$(_get_cword);unset COMPREPLY;"
+ "_ip_addresses; }",
+ )
+ assert_bash_exec(bash, "complete -F _ia ia")
+ assert_bash_exec(
+ bash,
+ "_iaa() { local cur=$(_get_cword);unset COMPREPLY;"
+ "_ip_addresses -a; }",
+ )
+ assert_bash_exec(bash, "complete -F _iaa iaa")
+ assert_bash_exec(
+ bash,
+ " _ia6() { local cur=$(_get_cword);unset COMPREPLY;"
+ "_ip_addresses -6; }",
+ )
+ assert_bash_exec(bash, "complete -F _ia6 ia6")
+
+ def test_1(self, bash):
+ assert_bash_exec(bash, "_ip_addresses")
+
+ @pytest.mark.complete("iaa ")
+ def test_2(self, functions, completion):
+ """_ip_addresses -a should complete ip addresses."""
+ assert completion
+ assert all("." in x or ":" in x for x in completion)
+
+ @pytest.mark.complete("ia ")
+ def test_3(self, functions, completion):
+ """_ip_addresses should complete ipv4 addresses."""
+ assert completion
+ assert all("." in x for x in completion)
+
+ @pytest.mark.xfail(in_docker(), reason="Probably fails in docker")
+ @pytest.mark.complete("ia6 ")
+ def test_4(self, functions, completion):
+ """_ip_addresses -6 should complete ipv6 addresses."""
+ assert completion
+ assert all(":" in x for x in completion)
diff --git a/test/t/unit/test_unit_longopt.py b/test/t/unit/test_unit_longopt.py
new file mode 100644
index 00000000..ac0ac836
--- /dev/null
+++ b/test/t/unit/test_unit_longopt.py
@@ -0,0 +1,34 @@
+# Based on work by Stephen Gildea, October 2010.
+
+import pytest
+
+from conftest import assert_bash_exec
+
+
+@pytest.mark.bashcomp(cmd=None, ignore_env=r"^\+COMPREPLY=")
+class TestUnitLongopt:
+ @pytest.fixture(scope="class")
+ def functions(self, request, bash):
+ assert_bash_exec(bash, "_grephelp() { cat _longopt/grep--help.txt; }")
+ assert_bash_exec(bash, "complete -F _longopt _grephelp")
+
+ @pytest.mark.complete("_grephelp --")
+ def test_1(self, functions, completion):
+ """First long option should be included"""
+ assert completion
+ assert all(
+ x in completion for x in "--quiet --recursive --text".split()
+ )
+
+ @pytest.mark.complete("_grephelp -")
+ def test_2(self, functions, completion):
+ """Only long options should be included"""
+ assert completion
+ assert all(x.startswith("--") for x in completion)
+
+ @pytest.mark.complete("_grephelp --")
+ def test_3(self, functions, completion):
+ """Should have both ones ending with a = and ones not"""
+ assert completion
+ assert any(x.endswith("=") for x in completion)
+ assert any(not x.endswith("=") for x in completion)
diff --git a/test/t/unit/test_unit_parse_help.py b/test/t/unit/test_unit_parse_help.py
new file mode 100644
index 00000000..4a02155b
--- /dev/null
+++ b/test/t/unit/test_unit_parse_help.py
@@ -0,0 +1,183 @@
+# Based on work by Stephen Gildea, October 2010.
+
+import pytest
+
+from conftest import assert_bash_exec
+
+
+@pytest.mark.bashcomp(cmd=None, ignore_env=r"^\+declare -f fn$")
+class TestUnitParseHelp:
+ def test_1(self, bash):
+ assert_bash_exec(bash, "fn() { echo; }")
+ output = assert_bash_exec(bash, "_parse_help fn")
+ assert not output
+
+ def test_2(self, bash):
+ assert_bash_exec(bash, "fn() { echo 'no dashes here'; }")
+ output = assert_bash_exec(bash, "_parse_help fn")
+ assert not output
+
+ def test_3(self, bash):
+ assert_bash_exec(bash, "fn() { echo 'internal-dash'; }")
+ output = assert_bash_exec(bash, "_parse_help fn")
+ assert not output
+
+ def test_4(self, bash):
+ assert_bash_exec(bash, "fn() { echo 'no -leading-dashes'; }")
+ output = assert_bash_exec(bash, "_parse_help fn")
+ assert not output
+
+ def test_5(self, bash):
+ assert_bash_exec(bash, "fn() { echo '-one dash'; }")
+ output = assert_bash_exec(bash, "_parse_help fn", want_output=True)
+ assert output.split() == "-one".split()
+
+ def test_6(self, bash):
+ assert_bash_exec(bash, "fn() { echo ' -space dash'; }")
+ output = assert_bash_exec(bash, "_parse_help fn", want_output=True)
+ assert output.split() == "-space".split()
+
+ def test_7(self, bash):
+ assert_bash_exec(bash, "fn() { echo '-one -two dashes'; }")
+ output = assert_bash_exec(bash, "_parse_help fn", want_output=True)
+ assert output.split() == "-one".split()
+
+ def test_8(self, bash):
+ assert_bash_exec(bash, "fn() { echo '-one,-t dashes'; }")
+ output = assert_bash_exec(bash, "_parse_help fn", want_output=True)
+ assert output.split() == "-one".split()
+
+ def test_9(self, bash):
+ assert_bash_exec(bash, "fn() { echo '-one dash-inside'; }")
+ output = assert_bash_exec(bash, "_parse_help fn", want_output=True)
+ assert output.split() == "-one".split()
+
+ def test_10(self, bash):
+ """Test value not included in completion."""
+ assert_bash_exec(bash, "fn() { echo '--long-arg=value'; }")
+ output = assert_bash_exec(bash, "_parse_help fn", want_output=True)
+ assert output.split() == "--long-arg=".split()
+
+ def test_11(self, bash):
+ """Test -value not seen as option."""
+ assert_bash_exec(bash, "fn() { echo '--long-arg=-value'; }")
+ output = assert_bash_exec(bash, "_parse_help fn", want_output=True)
+ assert output.split() == "--long-arg=".split()
+
+ def test_12(self, bash):
+ assert_bash_exec(bash, "fn() { echo '--long-arg=-value,--opt2=val'; }")
+ output = assert_bash_exec(bash, "_parse_help fn", want_output=True)
+ assert output.split() == "--long-arg=".split()
+
+ def test_13(self, bash):
+ assert_bash_exec(bash, "fn() { echo '-m,--mirror'; }")
+ output = assert_bash_exec(bash, "_parse_help fn", want_output=True)
+ assert output.split() == "--mirror".split()
+
+ def test_14(self, bash):
+ assert_bash_exec(bash, "fn() { echo '-T/--upload-file'; }")
+ output = assert_bash_exec(bash, "_parse_help fn", want_output=True)
+ assert output.split() == "--upload-file".split()
+
+ def test_15(self, bash):
+ assert_bash_exec(bash, "fn() { echo '-T|--upload-file'; }")
+ output = assert_bash_exec(bash, "_parse_help fn", want_output=True)
+ assert output.split() == "--upload-file".split()
+
+ def test_16(self, bash):
+ assert_bash_exec(bash, "fn() { echo '-f, -F, --foo'; }")
+ output = assert_bash_exec(bash, "_parse_help fn", want_output=True)
+ assert output.split() == "--foo".split()
+
+ def test_17(self, bash):
+ assert_bash_exec(bash, "fn() { echo '--foo[=bar]'; }")
+ output = assert_bash_exec(bash, "_parse_help fn", want_output=True)
+ assert output.split() == "--foo".split()
+
+ def test_18(self, bash):
+ assert_bash_exec(bash, "fn() { echo '--foo=<bar>'; }")
+ output = assert_bash_exec(bash, "_parse_help fn", want_output=True)
+ assert output.split() == "--foo=".split()
+
+ def test_19(self, bash):
+ assert_bash_exec(bash, "fn() { echo '--foo={bar,quux}'; }")
+ output = assert_bash_exec(bash, "_parse_help fn", want_output=True)
+ assert output.split() == "--foo=".split()
+
+ def test_20(self, bash):
+ assert_bash_exec(bash, "fn() { echo '--[no]foo'; }")
+ output = assert_bash_exec(bash, "_parse_help fn", want_output=True)
+ assert output.split() == "--foo --nofoo".split()
+
+ def test_21(self, bash):
+ assert_bash_exec(bash, "fn() { echo '--[no-]bar[=quux]'; }")
+ output = assert_bash_exec(bash, "_parse_help fn", want_output=True)
+ assert output.split() == "--bar --no-bar".split()
+
+ def test_22(self, bash):
+ assert_bash_exec(bash, "fn() { echo '--[no-]bar=quux'; }")
+ output = assert_bash_exec(bash, "_parse_help fn", want_output=True)
+ assert output.split() == "--bar= --no-bar=".split()
+
+ def test_23(self, bash):
+ assert_bash_exec(bash, "fn() { echo '--[dont-]foo'; }")
+ output = assert_bash_exec(bash, "_parse_help fn", want_output=True)
+ assert output.split() == "--foo --dont-foo".split()
+
+ def test_24(self, bash):
+ assert_bash_exec(bash, "fn() { echo '-[dont]x --[dont]yy'; }")
+ output = assert_bash_exec(bash, "_parse_help fn", want_output=True)
+ assert output.split() == "--yy --dontyy".split()
+
+ def test_25(self, bash):
+ assert_bash_exec(bash, "fn() { echo '-f FOO, --foo=FOO'; }")
+ output = assert_bash_exec(bash, "_parse_help fn", want_output=True)
+ assert output.split() == "--foo=".split()
+
+ def test_26(self, bash):
+ assert_bash_exec(bash, "fn() { echo '-f [FOO], --foo[=FOO]'; }")
+ output = assert_bash_exec(bash, "_parse_help fn", want_output=True)
+ assert output.split() == "--foo".split()
+
+ def test_27(self, bash):
+ assert_bash_exec(bash, "fn() { echo '--foo.'; }")
+ output = assert_bash_exec(bash, "_parse_help fn", want_output=True)
+ assert output.split() == "--foo".split()
+
+ def test_28(self, bash):
+ assert_bash_exec(bash, "fn() { echo '-f or --foo'; }")
+ output = assert_bash_exec(bash, "_parse_help fn", want_output=True)
+ assert output.split() == "--foo".split()
+
+ def test_29(self, bash):
+ """Test parsing from stdin."""
+ output = assert_bash_exec(
+ bash, "echo '-f or --foo' | _parse_help -", want_output=True
+ )
+ assert output.split() == "--foo".split()
+
+ def test_30(self, bash):
+ """More than two dashes should not be treated as options."""
+ assert_bash_exec(
+ bash, r"fn() { printf '%s\n' $'----\n---foo\n----- bar'; }"
+ )
+ output = assert_bash_exec(bash, "_parse_help fn")
+ assert not output
+
+ def test_31(self, bash):
+ assert_bash_exec(
+ bash,
+ r"fn() { printf '%s\n' "
+ r"'-F ERROR_FORMAT, --error-format ERROR_FORMAT'; }",
+ )
+ output = assert_bash_exec(bash, "_parse_help fn", want_output=True)
+ assert output.split() == "--error-format".split()
+
+ def test_32(self, bash):
+ assert_bash_exec(
+ bash,
+ r"fn() { printf '%s\n' "
+ r"'-e CODE1,CODE2.. --exclude=CODE1,CODE2..'; }",
+ )
+ output = assert_bash_exec(bash, "_parse_help fn", want_output=True)
+ assert output.split() == "--exclude=".split()
diff --git a/test/t/unit/test_unit_parse_usage.py b/test/t/unit/test_unit_parse_usage.py
new file mode 100644
index 00000000..f0cb7114
--- /dev/null
+++ b/test/t/unit/test_unit_parse_usage.py
@@ -0,0 +1,69 @@
+import pytest
+
+from conftest import assert_bash_exec
+
+
+@pytest.mark.bashcomp(cmd=None, ignore_env=r"^\+declare -f fn$")
+class TestUnitParseUsage:
+ def test_1(self, bash):
+ assert_bash_exec(bash, "fn() { echo; }")
+ output = assert_bash_exec(bash, "_parse_usage fn")
+ assert not output
+
+ def test_2(self, bash):
+ assert_bash_exec(bash, "fn() { echo 'no dashes here'; }")
+ output = assert_bash_exec(bash, "_parse_usage fn")
+ assert not output
+
+ def test_3(self, bash):
+ assert_bash_exec(bash, "fn() { echo 'foo [-f]'; }")
+ output = assert_bash_exec(bash, "_parse_usage fn", want_output=True)
+ assert output.split() == "-f".split()
+
+ def test_4(self, bash):
+ assert_bash_exec(bash, "fn() { echo 'bar [-aBcD] [-e X]'; }")
+ output = assert_bash_exec(bash, "_parse_usage fn", want_output=True)
+ assert output.split() == "-a -B -c -D -e".split()
+
+ def test_5(self, bash):
+ assert_bash_exec(bash, "fn() { echo '[-[XyZ]] [--long=arg]'; }")
+ output = assert_bash_exec(bash, "_parse_usage fn", want_output=True)
+ assert output.split() == "-X -y -Z --long=".split()
+
+ def test_6(self, bash):
+ assert_bash_exec(bash, "fn() { echo '[-s|--long]'; }")
+ output = assert_bash_exec(bash, "_parse_usage fn", want_output=True)
+ assert output.split() == "--long".split()
+
+ def test_7(self, bash):
+ assert_bash_exec(bash, "fn() { echo '[-s, --long=arg]'; }")
+ output = assert_bash_exec(bash, "_parse_usage fn", want_output=True)
+ assert output.split() == "--long=".split()
+
+ def test_8(self, bash):
+ assert_bash_exec(bash, "fn() { echo '[--long/-s] [-S/--longer]'; }")
+ output = assert_bash_exec(bash, "_parse_usage fn", want_output=True)
+ assert output.split() == "--long --longer".split()
+
+ def test_9(self, bash):
+ assert_bash_exec(bash, "fn() { echo '[ -a ] [ -b foo ]'; }")
+ output = assert_bash_exec(bash, "_parse_usage fn", want_output=True)
+ assert output.split() == "-a -b".split()
+
+ def test_10(self, bash):
+ assert_bash_exec(bash, "fn() { echo '[ -a | --aa ]'; }")
+ output = assert_bash_exec(bash, "_parse_usage fn", want_output=True)
+ assert output.split() == "--aa".split()
+
+ def test_11(self, bash):
+ assert_bash_exec(
+ bash, "fn() { echo ----; echo ---foo; echo '----- bar'; }"
+ )
+ output = assert_bash_exec(bash, "_parse_usage fn")
+ assert not output
+
+ def test_12(self, bash):
+ output = assert_bash_exec(
+ bash, "echo '[-duh]' | _parse_usage -", want_output=True
+ )
+ assert output.split() == "-d -u -h".split()
diff --git a/test/t/unit/test_unit_tilde.py b/test/t/unit/test_unit_tilde.py
new file mode 100644
index 00000000..35a4e4c6
--- /dev/null
+++ b/test/t/unit/test_unit_tilde.py
@@ -0,0 +1,42 @@
+import pytest
+
+from conftest import assert_bash_exec
+
+
+@pytest.mark.bashcomp(cmd=None, ignore_env=r"^\+COMPREPLY=")
+class TestUnitTilde:
+ def test_1(self, bash):
+ assert_bash_exec(bash, "_tilde >/dev/null")
+
+ def test_2(self, bash):
+ """Test environment non-pollution, detected at teardown."""
+ assert_bash_exec(
+ bash, 'foo() { local aa="~"; _tilde "$aa"; }; foo; unset foo'
+ )
+
+ def test_3(self, bash):
+ """Test for https://bugs.debian.org/766163"""
+ assert_bash_exec(bash, "_tilde ~-o")
+
+ def _test_part_full(self, bash, part, full):
+ res = (
+ assert_bash_exec(
+ bash,
+ '_tilde "~%s"; echo "${COMPREPLY[@]}"' % part,
+ want_output=True,
+ )
+ .strip()
+ .split()
+ )
+ assert res
+ assert res[0] == "~%s" % full
+
+ def test_4(self, bash, part_full_user):
+ """~full should complete to ~full unmodified."""
+ _, full = part_full_user
+ self._test_part_full(bash, full, full)
+
+ def test_5(self, bash, part_full_user):
+ """~part should complete to ~full."""
+ part, full = part_full_user
+ self._test_part_full(bash, part, full)
diff --git a/test/tmp/.gitignore b/test/tmp/.gitignore
deleted file mode 100644
index 72e8ffc0..00000000
--- a/test/tmp/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-*
diff --git a/test/unit/__expand_tilde_by_ref.exp b/test/unit/__expand_tilde_by_ref.exp
index bcb931e1..5569fe37 100644
--- a/test/unit/__expand_tilde_by_ref.exp
+++ b/test/unit/__expand_tilde_by_ref.exp
@@ -21,15 +21,6 @@ proc teardown {} {
setup home user
-set test "function should run without errors"
-assert_bash_exec {__expand_tilde_by_ref > /dev/null} $test
-sync_after_int
-
-set test "function should not pollute environment"
-# NOTE: A possible environment pollution is detected by assert_env_modified() in teardown()
-assert_bash_exec {foo() { local aa="~"; __expand_tilde_by_ref aa; }; foo; unset foo} $test
-sync_after_int
-
set test "~user should return $home"
set cmd [format {var="~%s"; __expand_tilde_by_ref var; printf "%%s\n" "$var"} $user]
assert_bash_list "$home" $cmd $test
diff --git a/test/unit/_count_args.exp b/test/unit/_count_args.exp
deleted file mode 100644
index b528846a..00000000
--- a/test/unit/_count_args.exp
+++ /dev/null
@@ -1,51 +0,0 @@
-proc setup {} {
- assert_bash_exec {unset COMP_CWORD COMP_LINE COMP_POINT COMP_WORDS}
- save_env
-}
-
-
-proc teardown {} {
- assert_bash_exec {unset args COMP_CWORD COMP_LINE COMP_POINT COMP_WORDS}
- # Delete 'COMP_WORDBREAKS' occupying two lines
- assert_env_unmodified {
- /COMP_WORDBREAKS=/{N
- d
- }
- }
-}
-
-
-setup
-
-
-set test "_count_args should run without errors"
-assert_bash_exec {_count_args > /dev/null} $test
-sync_after_int
-
-set test "a b| should set args to 1"; # | = cursor position
-set cmd {COMP_WORDS=(a b); COMP_CWORD=1; COMP_LINE='a b'; COMP_POINT=3; _count_args; echo $args}
-assert_bash_list 1 $cmd $test
-sync_after_int
-
-set test "a b|c should set args to 1"; # | = cursor position
-set cmd {COMP_WORDS=(a bc); COMP_CWORD=1; COMP_LINE='a bc'; COMP_POINT=3; _count_args; echo $args}
-assert_bash_list 1 $cmd $test
-sync_after_int
-
-set test "a b c| should set args to 2"; # | = cursor position
-set cmd {COMP_WORDS=(a b c); COMP_CWORD=2; COMP_LINE='a b c'; COMP_POINT=4; _count_args; echo $args}
-assert_bash_list 2 $cmd $test
-sync_after_int
-
-set test "a b| c should set args to 1"; # | = cursor position
-set cmd {COMP_WORDS=(a b c); COMP_CWORD=1; COMP_LINE='a b c'; COMP_POINT=3; _count_args; echo $args}
-assert_bash_list 1 $cmd $test
-sync_after_int
-
-set test "a b -c| d should set args to 2"; # | = cursor position
-set cmd {COMP_WORDS=(a b -c d); COMP_CWORD=2; COMP_LINE='a b -c d'; COMP_POINT=6; _count_args; echo $args}
-assert_bash_list 2 $cmd $test
-sync_after_int
-
-
-teardown
diff --git a/test/unit/_expand.exp b/test/unit/_expand.exp
index 50453868..59dbed58 100644
--- a/test/unit/_expand.exp
+++ b/test/unit/_expand.exp
@@ -19,15 +19,6 @@ proc teardown {} {
setup home user
-set test "function should run without errors"
-assert_bash_exec {_expand > /dev/null} $test
-sync_after_int
-
-set test "function should not pollute environment"
-# NOTE: A possible environment pollution is detected by assert_env_modified() in teardown()
-assert_bash_exec {foo() { _expand; }; foo; unset foo} $test
-sync_after_int
-
set test "~$user should set $home to COMPREPLY"
set cmd [format {cur="~%s" ; _expand ; printf "%%s\n" "$COMPREPLY"} $user]
assert_bash_list "$home" $cmd $test
diff --git a/test/unit/_filedir.exp b/test/unit/_filedir.exp
index 597e4acc..7395bf9a 100644
--- a/test/unit/_filedir.exp
+++ b/test/unit/_filedir.exp
@@ -53,10 +53,6 @@ proc teardown {} {
setup
-set test "_filedir should run without errors"
-assert_bash_exec {_filedir > /dev/null} $test
-sync_after_int
-
foreach name {f f2} {
set test "completing $name ab/ should return e"
diff --git a/test/unit/_get_comp_words_by_ref.exp b/test/unit/_get_comp_words_by_ref.exp
index 2683d163..a0e1886b 100644
--- a/test/unit/_get_comp_words_by_ref.exp
+++ b/test/unit/_get_comp_words_by_ref.exp
@@ -21,229 +21,12 @@ proc teardown {} {
setup
-set test "_get_comp_words_by_ref should run without errors"
-assert_bash_exec {_get_comp_words_by_ref cur > /dev/null} $test
-sync_after_int
-
# See also ./lib/completions/alias.exp. Here `_get_cword' is actually tested
# by moving the cursor left into the current word.
-set test "a b|"; # | = cursor position
-set cmd {COMP_WORDS=(a b); COMP_CWORD=1; COMP_LINE='a b'; COMP_POINT=3; _get_comp_words_by_ref cur prev; echo "$cur $prev"}
-assert_bash_list {"b a"} $cmd $test
-sync_after_int
-
-set test "a |"; # | = cursor position
-set cmd {COMP_WORDS=(a); COMP_CWORD=1; COMP_LINE='a '; COMP_POINT=2; _get_comp_words_by_ref cur prev; echo "$cur $prev"}
-assert_bash_list {" a"} $cmd $test
-sync_after_int
-
-set test "|a"; # | = cursor position
-set cmd {COMP_WORDS=(a); COMP_CWORD=0; COMP_LINE='a'; COMP_POINT=0; \
- unset cur prev; _get_comp_words_by_ref cur prev; echo "$cur $prev"}
-assert_bash_list {" "} $cmd $test
-sync_after_int
-
-set test "|a \$"; # | = cursor position
-set cmd {COMP_WORDS=(a); COMP_CWORD=0; COMP_LINE='a '; COMP_POINT=0; \
- unset cur prev; _get_comp_words_by_ref cur prev; echo "$cur $prev"}
-assert_bash_list {" "} $cmd $test
-sync_after_int
-
-set test " | a \$"; # | = cursor position
-set cmd {COMP_WORDS=(a); COMP_CWORD=0; COMP_LINE=' a '; COMP_POINT=1; \
- unset cur prev; _get_comp_words_by_ref cur prev; echo "$cur $prev"}
-assert_bash_list {" "} $cmd $test
-sync_after_int
-
-set test "a b |"; # | = cursor position
-set cmd {COMP_WORDS=(a b ''); COMP_CWORD=2; COMP_LINE='a b '; COMP_POINT=4; _get_comp_words_by_ref cur prev; echo "$cur $prev"}
-assert_bash_list {" b"} $cmd $test
-sync_after_int
-
-set test "a b | with WORDBREAKS -= :"; # | = cursor position
-set cmd {COMP_WORDS=(a b ''); COMP_CWORD=2; COMP_LINE='a b '; COMP_POINT=4; _get_comp_words_by_ref -n : cur; printf %s "$cur"}
-assert_bash_list {} $cmd $test
-sync_after_int
-
-set test "a b|c"; # | = cursor position
-set cmd {COMP_WORDS=(a bc); COMP_CWORD=1; COMP_LINE='a bc'; COMP_POINT=3; _get_comp_words_by_ref cur prev; echo "$cur $prev"}
-assert_bash_list {"b a"} $cmd $test
-sync_after_int
-
-set test "a | b"; # | = cursor position
-set cmd {COMP_WORDS=(a b); COMP_CWORD=1; COMP_LINE='a b'; COMP_POINT=2; _get_comp_words_by_ref cur prev; echo "$cur $prev"}
-assert_bash_list {" a"} $cmd $test
-sync_after_int
-
-set test {a b\ c| should return b\ c}; # | = cursor position
-set cmd {COMP_WORDS=(a 'b\ c'); COMP_CWORD=1; COMP_LINE='a b\ c'; COMP_POINT=6; _get_comp_words_by_ref cur prev; echo "$cur $prev"}
-assert_bash_list {"b\\ c a"} $cmd $test
-sync_after_int
-
-set test {a\ b a\ b| should return a\ b}; # | = cursor position
-set cmd {COMP_WORDS=('a\ b' 'a\ b'); COMP_CWORD=1; COMP_LINE='a\ b a\ b'; COMP_POINT=9; _get_comp_words_by_ref cur prev; echo "$cur $prev"}
-assert_bash_list {"a\\ b a\\ b"} $cmd $test
-sync_after_int
-
-set test {a b\| c should return b\ }; # | = cursor position
-set cmd {COMP_WORDS=(a 'b\ c'); COMP_CWORD=1; COMP_LINE='a b\ c'; COMP_POINT=4; _get_comp_words_by_ref cur prev; echo "$cur $prev"}
-assert_bash_list {"b\\ a"} $cmd $test
-sync_after_int
-
-set test {a "b\|}; #"# | = cursor position
-set cmd {COMP_WORDS=(a '"b\'); COMP_CWORD=1; COMP_LINE='a "b\'; COMP_POINT=5; _get_comp_words_by_ref cur prev; echo "$cur $prev"}
-assert_bash_list {"\"b\\ a"} $cmd $test
-sync_after_int
-
-set test {a 'b c|}; # | = cursor position
-set cmd {COMP_WORDS=(a "'b c"); COMP_CWORD=1}
-append cmd {; COMP_LINE="a 'b c"; COMP_POINT=6; _get_comp_words_by_ref cur prev; echo "$cur $prev"}
-send "$cmd\r"
-expect -ex "$cmd\r\n"
-expect {
- -ex "'b c a\r\n/@" { pass "$test" }
- -ex "c b\r\n/@" { fail "$test" }
-}
-sync_after_int
-
-set test {a "b c|}; #"# | = cursor position
-set cmd {COMP_WORDS=(a "\"b c"); COMP_CWORD=1}
-append cmd {; COMP_LINE="a \"b c"; COMP_POINT=6}
-assert_bash_exec $cmd
-set cmd {_get_comp_words_by_ref cur prev; echo "$cur $prev"};
-send "$cmd\r"
-expect -ex "$cmd\r\n"
-expect {
- -ex "\"b c a\r\n/@" { pass "$test" }
- -ex "c b\r\n/@" { fail "$test" }
-}
-sync_after_int
-
-set test {a b:c| with WORDBREAKS += :}; # | = cursor position
-set cmd {add_comp_wordbreak_char :; COMP_WORDS=(a b : c); COMP_CWORD=3}
-set expected {"c :"}
-append cmd {; COMP_LINE='a b:c'; COMP_POINT=5}
-# NOTE: Split-send cmd to prevent backspaces (\008) in output
-assert_bash_exec $cmd $test
-set cmd {_get_comp_words_by_ref cur prev; echo "$cur $prev"}
-assert_bash_list $expected $cmd $test
-sync_after_int
-
-set test {a b:c| with WORDBREAKS -= :}; # | = cursor position
-set cmd {COMP_WORDS=(a b : c); COMP_CWORD=3}
-append cmd {; COMP_LINE='a b:c'; COMP_POINT=5}
-assert_bash_exec $cmd $test
-set cmd {_get_comp_words_by_ref -n : cur prev; echo "$cur $prev"}
-assert_bash_list {"b:c a"} $cmd $test
-sync_after_int
-
-set test {a b c:| with WORDBREAKS -= :}; # | = cursor position
-set cmd {COMP_WORDS=(a b c :); COMP_CWORD=3}
-append cmd {; COMP_LINE='a b c:'; COMP_POINT=6}
-assert_bash_exec $cmd $test
-set cmd {_get_comp_words_by_ref -n : cur prev; echo "$cur $prev"}
-assert_bash_list {"c: b"} $cmd $test
-sync_after_int
-
-set test {a b:c | with WORDBREAKS -= :}; # | = cursor position
-set cmd {COMP_WORDS=(a b : c ''); COMP_CWORD=4}
-append cmd {; COMP_LINE='a b:c '; COMP_POINT=6}
-assert_bash_exec $cmd $test
-set cmd {_get_comp_words_by_ref -n : cur prev; echo "$cur $prev"}
-assert_bash_list {" b:c"} $cmd $test
-sync_after_int
-
-set test {a :| with WORDBREAKS -= : should return :}; # | = cursor position
-set cmd {COMP_WORDS=(a :); COMP_CWORD=1; COMP_LINE='a :'; COMP_POINT=3}
-assert_bash_exec $cmd
-set cmd {_get_comp_words_by_ref -n : cur prev; echo "$cur $prev"}
-assert_bash_list {": a"} $cmd $test
-sync_after_int
-
-set test {a b::| with WORDBREAKS -= : should return b::}; # | = cursor position
-set cmd {COMP_WORDS=(a b ::); COMP_CWORD=2}
-append cmd {; COMP_LINE='a b::'; COMP_POINT=5}
-assert_bash_exec $cmd
-set cmd {_get_comp_words_by_ref -n : cur prev; echo "$cur $prev"}
-assert_bash_list {"b:: a"} $cmd $test
-sync_after_int
-
-# This test makes sure `_get_cword' doesn't use `echo' to return it's value,
-# because -n might be interpreted by `echo' and thus will not be returned.
-set test "a -n| should return -n"; # | = cursor position
-set cmd {COMP_WORDS=(a -n); COMP_CWORD=1; COMP_LINE='a -n'; COMP_POINT=4}
-assert_bash_exec $cmd
-set cmd {_get_comp_words_by_ref cur; printf "%s\n" $cur}
-assert_bash_list -n $cmd $test
-sync_after_int
-
-set test {a b>c| should return c}; # | = cursor position
-set cmd {COMP_WORDS=(a b \> c); COMP_CWORD=3; COMP_LINE='a b>c'; COMP_POINT=5}
-assert_bash_exec $cmd
-set cmd {_get_comp_words_by_ref cur prev; echo "$cur"}
-assert_bash_list c $cmd $test
-sync_after_int
-
-set test {a b=c| should return c}; # | = cursor position
-set cmd {COMP_WORDS=(a b = c); COMP_CWORD=3}
-set expected c
-append cmd {; COMP_LINE='a b=c'; COMP_POINT=5}
-assert_bash_exec $cmd
-set cmd {_get_comp_words_by_ref cur prev; echo "$cur"}
-assert_bash_list $expected $cmd $test
-sync_after_int
-
-set test {a *| should return *}; # | = cursor position
-set cmd {COMP_WORDS=(a \*); COMP_CWORD=1; COMP_LINE='a *'; COMP_POINT=4}
-assert_bash_exec $cmd
-set cmd {_get_comp_words_by_ref cur; echo "$cur"}
-assert_bash_list * $cmd $test
-sync_after_int
-
-set test {a $(b c| should return $(b c}; # | = cursor position
-set cmd {COMP_WORDS=(a '$(b c'); COMP_CWORD=1; COMP_LINE='a $(b c'; COMP_POINT=7}
-assert_bash_exec $cmd
-set cmd {_get_comp_words_by_ref cur; printf %s "$cur"}
-send "$cmd\r"
-expect -ex "$cmd\r\n"
-expect {
- -ex "\$(b c/@" { pass "$test" }
- # Expected failure on bash-4
- -ex "c/@" { xfail "$test" }
-}
-sync_after_int
-
-set test {a $(b c\ d| should return $(b c\ d}; # | = cursor position
-set cmd {COMP_WORDS=(a '$(b c\ d'); COMP_CWORD=1; COMP_LINE='a $(b c\ d'; COMP_POINT=10}
-assert_bash_exec $cmd
-set cmd {_get_comp_words_by_ref cur; printf %s "$cur"}
-#assert_bash_list {{$(b\ c\\\ d}} $cmd $test
-send "$cmd\r"
-expect -ex "$cmd\r\n"
-expect {
- -ex "\$(b c\\ d/@" { pass "$test" }
- # Expected failure on bash-4
- -ex "c\\ d/@" { xfail "$test" }
-}
-sync_after_int
-
-set test {a 'b&c| should return 'b&c}; # | = cursor position
-set cmd {COMP_WORDS=(a "'b&c"); COMP_CWORD=1}
-append cmd {; COMP_LINE="a 'b&c"; COMP_POINT=6}
-assert_bash_exec $cmd
-set cmd {_get_comp_words_by_ref cur prev; printf %s "$cur"}
-send "$cmd\r"
-expect -ex "$cmd\r\n"
-expect {
- -ex "'b&c/@" { pass "$test" }
- -ex "c/@" { fail "$test" }
-}
-sync_after_int
-
set test {unknown argument should raise error}
set cmd {_get_comp_words_by_ref dummy}
-assert_bash_list {"bash: _get_comp_words_by_ref(): `dummy': unknown argument"} $cmd $test
+assert_bash_list {"bash_completion: _get_comp_words_by_ref: `dummy': unknown argument"} $cmd $test
sync_after_int
set test "a b| to all vars"; # | = cursor position
diff --git a/test/unit/_get_cword.exp b/test/unit/_get_cword.exp
index 9708a870..91bcb44e 100644
--- a/test/unit/_get_cword.exp
+++ b/test/unit/_get_cword.exp
@@ -19,167 +19,9 @@ proc teardown {} {
setup
-set test "_get_cword should run without errors"
-assert_bash_exec {_get_cword > /dev/null} $test
-sync_after_int
-
# See also ./lib/completions/alias.exp. Here `_get_cword' is actually tested
# by moving the cursor left into the current word.
-set test "a b| should return b"; # | = cursor position
-set cmd {COMP_WORDS=(a b); COMP_CWORD=1; COMP_LINE='a b'; COMP_POINT=3; _get_cword; echo}
-assert_bash_list b $cmd $test
-sync_after_int
-
-set test "a | should return nothing"; # | = cursor position
-set cmd {COMP_WORDS=(a); COMP_CWORD=1; COMP_LINE='a '; COMP_POINT=2; _get_cword}
-send "$cmd\r"
-expect -ex "$cmd\r\n/@" {pass "$test"}
-sync_after_int
-
-set test "a b | should return nothing"; # | = cursor position
-set cmd {COMP_WORDS=(a b ''); COMP_CWORD=2; COMP_LINE='a b '; COMP_POINT=4; _get_cword}
-send "$cmd\r"
-expect -ex "$cmd\r\n/@" {pass "$test"}
-sync_after_int
-
-set test "a b | with WORDBREAKS -= : should return nothing"; # | = cursor position
-set cmd {COMP_WORDS=(a b ''); COMP_CWORD=2; COMP_LINE='a b '; COMP_POINT=4; _get_cword :}
-send "$cmd\r"
-expect -ex "$cmd\r\n/@" {pass "$test"}
-sync_after_int
-
-set test "a b|c should return b"; # | = cursor position
-set cmd {COMP_WORDS=(a bc); COMP_CWORD=1; COMP_LINE='a bc'; COMP_POINT=3; _get_cword; echo}
-assert_bash_list b $cmd $test
-sync_after_int
-
-set test {a b\ c| should return b\ c}; # | = cursor position
-set cmd {COMP_WORDS=(a 'b\ c'); COMP_CWORD=1; COMP_LINE='a b\ c'; COMP_POINT=6; _get_cword; echo}
-assert_bash_list {"b\\ c"} $cmd $test
-sync_after_int
-
-set test {a b\| c should return b\ }; # | = cursor position
-set cmd {COMP_WORDS=(a 'b\ c'); COMP_CWORD=1; COMP_LINE='a b\ c'; COMP_POINT=4; _get_cword; echo}
-assert_bash_list {"b\\"} $cmd $test
-sync_after_int
-
-set test {a "b\| should return "b\ }; # | = cursor position
-set cmd {COMP_WORDS=(a '"b\'); COMP_CWORD=1; COMP_LINE='a "b\'; COMP_POINT=5; _get_cword; echo}
-assert_bash_list {"\"b\\"} $cmd $test
-sync_after_int
-
-set test {a 'b c| should return 'b c}; # | = cursor position
-set cmd {COMP_WORDS=(a "'b c"); COMP_CWORD=1}
-append cmd {; COMP_LINE="a 'b c"; COMP_POINT=6; _get_cword}
-send "$cmd\r"
-expect -ex "$cmd\r\n"
-expect {
- -ex "'b c/@" { pass "$test" }
- -ex "c/@" { fail "$test" }
-}
-sync_after_int
-
-set test {a "b c| should return "b c}; # | = cursor position
-set cmd {COMP_WORDS=(a "\"b c"); COMP_CWORD=1}
-append cmd {; COMP_LINE="a \"b c"; COMP_POINT=6; _get_cword};
-send "$cmd\r"
-expect -ex "$cmd\r\n"
-expect {
- -ex "\"b c/@" { pass "$test" }
- -ex "c/@" { fail "$test" }
-}
-sync_after_int
-
-set test {a b:c| with WORDBREAKS += : should return c}; # | = cursor position
-set cmd {add_comp_wordbreak_char :; COMP_WORDS=(a b : c); COMP_CWORD=3}
-set expected c
-append cmd {; COMP_LINE='a b:c'; COMP_POINT=5; _get_cword; echo}
-assert_bash_list $expected $cmd $test
-sync_after_int
-
-set test {a b:c| with WORDBREAKS -= : should return b:c}; # | = cursor position
-set cmd {COMP_WORDS=(a b : c); COMP_CWORD=3}
-append cmd {; COMP_LINE='a b:c'; COMP_POINT=5; _get_cword :; echo}
-assert_bash_list b:c $cmd $test
-sync_after_int
-
-set test {a b c:| with WORDBREAKS -= : should return c:}; # | = cursor position
-set cmd {COMP_WORDS=(a b c :); COMP_CWORD=3}
-append cmd {; COMP_LINE='a b c:'; COMP_POINT=6; _get_cword :; echo}
-assert_bash_list c: $cmd $test
-sync_after_int
-
-set test {a :| with WORDBREAKS -= : should return :}; # | = cursor position
-set cmd {COMP_WORDS=(a :); COMP_CWORD=1; COMP_LINE='a :'; COMP_POINT=3; _get_cword :; echo}
-assert_bash_list : $cmd $test
-sync_after_int
-
-set test {a b::| with WORDBREAKS -= : should return b::}; # | = cursor position
-set cmd {COMP_WORDS=(a b ::); COMP_CWORD=2}
-append cmd {; COMP_LINE='a b::'; COMP_POINT=5; _get_cword :; echo}
-assert_bash_list b:: $cmd $test
-sync_after_int
-
-# This test makes sure `_get_cword' doesn't use `echo' to return it's value,
-# because -n might be interpreted by `echo' and thus will not be returned.
-set test "a -n| should return -n"; # | = cursor position
-set cmd {COMP_WORDS=(a -n); COMP_CWORD=1; COMP_LINE='a -n'; COMP_POINT=4; _get_cword; echo}
-assert_bash_list -n $cmd $test
-sync_after_int
-
-set test {a b>c| should return c}; # | = cursor position
-set cmd {COMP_WORDS=(a b \> c); COMP_CWORD=3; COMP_LINE='a b>c'; COMP_POINT=5; _get_cword; echo}
-assert_bash_list c $cmd $test
-sync_after_int
-
-set test {a b=c| should return c}; # | = cursor position
-set cmd {COMP_WORDS=(a b = c); COMP_CWORD=3}
-set expected c
-append cmd {; COMP_LINE='a b=c'; COMP_POINT=5; _get_cword; echo}
-assert_bash_list $expected $cmd $test
-sync_after_int
-
-set test {a *| should return *}; # | = cursor position
-set cmd {COMP_WORDS=(a \*); COMP_CWORD=1; COMP_LINE='a *'; COMP_POINT=4; _get_cword; echo}
-assert_bash_list * $cmd $test
-sync_after_int
-
-set test {a $(b c| should return $(b c}; # | = cursor position
-set cmd {COMP_WORDS=(a '$(b c'); COMP_CWORD=1; COMP_LINE='a $(b c'; COMP_POINT=7; _get_cword}
-#assert_bash_list {{$(b\ c}} $cmd $test
-send "$cmd\r"
-expect -ex "$cmd\r\n"
-expect {
- -ex "\$(b c/@" { pass "$test" }
- # Expected failure on bash-4
- -ex "c/@" { xfail "$test" }
-}
-sync_after_int
-
-set test {a $(b c\ d| should return $(b c\ d}; # | = cursor position
-set cmd {COMP_WORDS=(a '$(b c\ d'); COMP_CWORD=1; COMP_LINE='a $(b c\ d'; COMP_POINT=10; _get_cword}
-#assert_bash_list {{$(b\ c\\\ d}} $cmd $test
-send "$cmd\r"
-expect -ex "$cmd\r\n"
-expect {
- -ex "\$(b c\\ d/@" { pass "$test" }
- # Expected failure on bash-4
- -ex "c\\ d/@" { xfail "$test" }
-}
-sync_after_int
-
-set test {a 'b&c| should return 'b&c}; # | = cursor position
-set cmd {COMP_WORDS=(a "'b&c"); COMP_CWORD=1}
-append cmd {; COMP_LINE="a 'b&c"; COMP_POINT=6; _get_cword}
-send "$cmd\r"
-expect -ex "$cmd\r\n"
-expect {
- -ex "'b&c/@" { pass "$test" }
- -ex "c/@" { fail "$test" }
-}
-sync_after_int
-
set test "index shouldn't drop below 0"
set dir $::srcdir/fixtures/_get_cword
set cmd "scp"
diff --git a/test/unit/_init_completion.exp b/test/unit/_init_completion.exp
deleted file mode 100644
index 9408f86f..00000000
--- a/test/unit/_init_completion.exp
+++ /dev/null
@@ -1,30 +0,0 @@
-proc setup {} {
- save_env
-}
-
-
-proc teardown {} {
- assert_bash_exec { \
- unset COMP_CWORD COMP_LINE COMP_POINT COMP_WORDS cur prev words cword\
- }
- assert_env_unmodified {
- /COMPREPLY=/d
- }
-}
-
-
-setup
-
-
-set test "function should not pollute environment"
-# NOTE: A possible environment pollution is detected by assert_env_modified() in teardown()
-assert_bash_exec {foo() { local cur prev words cword; _init_completion; }; foo; unset foo} $test
-sync_after_int
-
-set test "|a"; # | = cursor position
-set cmd {COMP_WORDS=(a); COMP_CWORD=0; COMP_LINE='a'; COMP_POINT=0; _init_completion; echo "$cur $prev"}
-assert_bash_list {" "} $cmd $test
-sync_after_int
-
-
-teardown
diff --git a/test/unit/_parse_help.exp b/test/unit/_parse_help.exp
deleted file mode 100644
index 43c5dc29..00000000
--- a/test/unit/_parse_help.exp
+++ /dev/null
@@ -1,138 +0,0 @@
-# By Stephen Gildea, October 2010.
-
-proc setup {} {
- save_env
-}
-
-proc teardown {} {
- assert_env_unmodified {
- /declare -f fn/d
- /PIPESTATUS=/d
- }
-}
-
-setup
-
-
-set cmd {fn() { printf '%s\n' ""; }; _parse_help fn}
-assert_bash_list "" $cmd "empty"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "no dashes here"; }; _parse_help fn}
-assert_bash_list "" $cmd "no dashes"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "internal-dash"; }; _parse_help fn}
-assert_bash_list "" $cmd "internal dash 1"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "no -leading-dashes"; }; _parse_help fn}
-assert_bash_list "" $cmd "no leading dash"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "-one dash"; }; _parse_help fn}
-assert_bash_list "-one" $cmd "one dash"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' " -space dash"; }; _parse_help fn}
-assert_bash_list "-space" $cmd "one dash after space"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "-one -two dashes"; }; _parse_help fn}
-assert_bash_list "-one" $cmd "two dashes, space-separated"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "-one,-t dashes"; }; _parse_help fn}
-assert_bash_list "-one" $cmd "two dashes, comma-separated"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "-one dash-inside"; }; _parse_help fn}
-assert_bash_list "-one" $cmd "internal dash 2"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "--long-arg=value"; }; _parse_help fn}
-assert_bash_list "--long-arg=" $cmd "value stripped"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "--long-arg=-value"; }; _parse_help fn}
-assert_bash_list "--long-arg=" $cmd "value not seen as option"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "--long-arg=-value,--opt2=val"; }; _parse_help fn}
-assert_bash_list "--long-arg=" $cmd "two options with values"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "-m,--mirror"; }; _parse_help fn}
-assert_bash_list "--mirror" $cmd "short + long"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "-T/--upload-file"; }; _parse_help fn}
-assert_bash_list "--upload-file" $cmd "short + long, slash separated"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "-T|--upload-file"; }; _parse_help fn}
-assert_bash_list "--upload-file" $cmd "pipe separated"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "-f, -F, --foo"; }; _parse_help fn}
-assert_bash_list "--foo" $cmd "short + short + long"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "--foo[=bar]"; }; _parse_help fn}
-assert_bash_list "--foo" $cmd "long with value and eq sign in brackets"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "--foo=<bar>"; }; _parse_help fn}
-assert_bash_list "--foo=" $cmd "long with value in angle brackets"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "--foo={bar,quux}"; }; _parse_help fn}
-assert_bash_list "--foo=" $cmd "long with value in curly brackets"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "--[no]foo"; }; _parse_help fn}
-assert_bash_list "--foo\n--nofoo" $cmd "long with \[no\]"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "--[no-]bar[=quux]"; }; _parse_help fn}
-assert_bash_list "--bar\n--no-bar" $cmd "long with \[no-\] + optional arg"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "--[no-]bar=quux"; }; _parse_help fn}
-assert_bash_list "--bar=\n--no-bar=" $cmd "long with \[no-\] + required arg"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "--[dont-]foo"; }; _parse_help fn}
-assert_bash_list "--foo\n--dont-foo" $cmd "long with \[dont-\]"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "-[dont]x, --[dont]yy"; }; _parse_help fn}
-assert_bash_list "--yy\n--dontyy" $cmd "short and long with \[dont\]"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "----\n---foo\n----- bar"; }; _parse_help fn}
-assert_bash_list "" $cmd "more than two dashes"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "-f FOO, --foo=FOO"; }; _parse_help fn}
-assert_bash_list "--foo=" $cmd "-f FOO, --foo=FOO"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "-f [FOO], --foo[=FOO]"; }; _parse_help fn}
-assert_bash_list "--foo" $cmd "-f \[FOO\], --foo\[=FOO\]"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "--foo."; }; _parse_help fn}
-assert_bash_list "--foo" $cmd "--foo."
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "-f or --foo"; }; _parse_help fn}
-assert_bash_list "--foo" $cmd "-f or --foo"
-sync_after_int
-
-set cmd { printf '%s\n' "-f or --foo" | _parse_help - }
-assert_bash_list "--foo" $cmd "from stdin"
-sync_after_int
-
-
-teardown
diff --git a/test/unit/_parse_usage.exp b/test/unit/_parse_usage.exp
deleted file mode 100644
index 5a40b1fe..00000000
--- a/test/unit/_parse_usage.exp
+++ /dev/null
@@ -1,64 +0,0 @@
-proc setup {} {
- save_env
-}
-
-proc teardown {} {
- assert_env_unmodified {
- /declare -f fn/d
- /PIPESTATUS=/d
- }
-}
-
-setup
-
-
-set cmd {fn() { printf '%s\n' ""; }; _parse_usage fn}
-assert_bash_list "" $cmd "empty"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "no dashes here"; }; _parse_usage fn}
-assert_bash_list "" $cmd "no dashes"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "foo [-f]"; }; _parse_usage fn}
-assert_bash_list "-f" $cmd "simple"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "bar [-aBcD] [-e X]"; }; _parse_usage fn}
-assert_bash_list "-a -B -c -D -e" $cmd "bundled + separate 1 short"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "[-[XyZ]] [--long=arg]"; }; _parse_usage fn}
-assert_bash_list "-X -y -Z --long=" $cmd "bundled in brackets + separate long"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "[-s|--long]"; }; _parse_usage fn}
-assert_bash_list "--long" $cmd "short or long"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "[-s, --long=arg]"; }; _parse_usage fn}
-assert_bash_list "--long=" $cmd "short or long with arg, comma"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "[--long/-s] [-S/--longer]"; }; _parse_usage fn}
-assert_bash_list "--long\n--longer" $cmd "long or short, slash"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "[ -a ] [ -b foo ]"; }; _parse_usage fn}
-assert_bash_list "-a\n-b" $cmd "whitespace in brackets"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "[ -a | --aa ]"; }; _parse_usage fn}
-assert_bash_list "--aa" $cmd "whitespace in brackets 2"
-sync_after_int
-
-set cmd {fn() { printf '%s\n' "----\n---foo\n----- bar"; }; _parse_usage fn}
-assert_bash_list "" $cmd "many dashes"
-sync_after_int
-
-set cmd { printf '%s\n' "[-duh]" | _parse_usage - }
-assert_bash_list "-d -u -h" $cmd "from stdin"
-sync_after_int
-
-
-teardown
diff --git a/test/unit/_tilde.exp b/test/unit/_tilde.exp
deleted file mode 100644
index e313dcae..00000000
--- a/test/unit/_tilde.exp
+++ /dev/null
@@ -1,53 +0,0 @@
-proc setup {} {
- save_env
-}
-
-proc teardown {} {
- assert_env_unmodified {
- /COMPREPLY=/d
- }
-}
-
-
-setup
-
-
-set test "function should run without errors"
-assert_bash_exec {_tilde > /dev/null} $test
-sync_after_int
-
-set test "function should not pollute environment"
-# NOTE: A possible environment pollution is detected by assert_env_modified() in teardown()
-assert_bash_exec {foo() { local aa="~"; _tilde "$aa"; }; foo; unset foo} $test
-sync_after_int
-
-set failed_find_unique_completion 0
-assert_bash_exec {compgen -u} {} /@ users
-if {![find_unique_completion_pair $users part full]} {
- set failed_find_unique_completion 1
-}
-
-set test "~full should complete to ~full unmodified"
-if {$failed_find_unique_completion} {
- untested "Not running, no suitable test user found: $test"
-} else {
- set cmd [format {_tilde "~%s"; printf "%%s\n" "${COMPREPLY[@]}"} $full]
- assert_bash_list "~$full" $cmd $test
- sync_after_int
-}
-
-set test "~part should complete to ~full"
-if {$failed_find_unique_completion} {
- untested "Not running, no suitable test user found: $test"
-} else {
- set cmd [format {_tilde "~%s"; printf "%%s\n" "${COMPREPLY[@]}"} $part]
- assert_bash_list "~$full" $cmd $test
- sync_after_int
-}
-
-# Debian #766163
-assert_no_complete "_tilde ~-o"
-sync_after_int
-
-
-teardown
diff --git a/test/unit/find_unique_completion_pair.exp b/test/unit/find_unique_completion_pair.exp
deleted file mode 100644
index 4a95c1bf..00000000
--- a/test/unit/find_unique_completion_pair.exp
+++ /dev/null
@@ -1,38 +0,0 @@
-# Note: This test actually tests a function in the test library. It doesn't
-# need bash running; but it doesn't hurt either.
-
-# Run one test. Look below for usage.
-proc test_find_ucp {{list} {epart} {econt} {eret 1}} {
- set efull "$epart$econt"
- set rret [find_unique_completion_pair $list rpart rfull]
- if {$eret != $rret} {
- if {$eret} {
- fail "find_unique_completion_pair: Nothing found for {$list}"
- } else {
- fail "find_unique_completion_pair: Expected failure for {$list}"
- }
- } elseif {!$eret} {
- pass "find_unique_completion_pair: No results for list {$list}"
- } elseif {$rpart != $epart || $rfull != $efull} {
- fail "find_unique_completion_pair: Got \"$rpart\", \"$rfull\" \
- instead of \"$epart\", \"$efull\" for list {$list}"
- } else {
- pass "find_unique_completion_pair: Got \"$epart\", \"$efull\" \
- for list {$list}"
- }
-}
-
-test_find_ucp {a} 0 0 0
-test_find_ucp {ab} a b
-test_find_ucp {ab ab ab} a b
-test_find_ucp {a ab abcd abc} 0 0 0
-test_find_ucp {a ab abcde abc} abcd e
-test_find_ucp {user1 user2} 0 0 0
-test_find_ucp {root username2 username1} ro ot
-test_find_ucp {root username21 username2} ro ot
-test_find_ucp {long_user_name lang_user_name long_usor_name} lang_us er_name
-test_find_ucp {lang_user_name1 long_user_name lang_user_name long_usor_name} \
- long_use r_name
-test_find_ucp {root username} user name
-test_find_ucp {a aladin} ala din
-test_find_ucp {ala aladin} alad in