bash completion: Add a simple test that the 'complete' command is not missing.

This commit is contained in:
Richard W.M. Jones
2016-08-25 14:57:26 +01:00
parent 035533d67a
commit 473a753382
2 changed files with 57 additions and 1 deletions

View File

@@ -54,7 +54,8 @@ symlinks = \
# Note: Don't distribute the symbolic links, only the real files.
EXTRA_DIST = \
README \
$(scripts)
$(scripts) \
$(TESTS)
CLEANFILES = \
$(symlinks)
@@ -96,3 +97,13 @@ clean-local:
-test $(srcdir) != $(builddir) && rm -f $(scripts)
endif
# Tests.
TESTS_ENVIRONMENT = \
scripts="$(scripts)" \
symlinks="$(scripts)" \
commands="$(scripts) $(symlinks)" \
$(top_builddir)/run --test
TESTS = \
test-complete-in-script.sh

45
bash/test-complete-in-script.sh Executable file
View File

@@ -0,0 +1,45 @@
#!/bin/bash -
# libguestfs bash completion test script
# Copyright (C) 2016 Red Hat Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
# Test that the correct 'complete' command is included in the script.
# Mainly prevents symlinking errors and some omissions.
unset CDPATH
export LANG=C
if [ -n "$SKIP_TEST_COMPLETE_IN_SCRIPT_SH" ]; then
echo "$0: test skipped because environment variable is set"
exit 77
fi
if [ -z "$commands" ]; then
echo "$0: \$commands is not defined. Use 'make check' to run this test."
exit 1
fi
for cmd in $commands; do
if [ ! -f $cmd ]; then
echo "$0: script or symlink '$cmd' is missing"
exit 1
fi
if ! grep "^complete.*$cmd\$" $cmd; then
echo "$0: script or symlink '$cmd' does not have"
echo "a 'complete' rule for '$cmd'"
exit 1
fi
done