tests: Remove not-very-useful "req" directive

The test scripts support a "req" directive which requires one test script
to be run before another.  It's implemented by doing a topological sort
based on these directives in the runner scripts, which is about as awkward
as you'd expect in Bourne shell.

It turns out we only use this functionality in one place - to make the
"make install" test run after the plain "make" test.  We also already have
a simpler way of making sure tests run in a specific order: just put them
into the same test script file.

So, remove support for the "req" directive and just fold the build/all and
build/install test scripts together.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
David Gibson 2022-07-06 17:29:04 +10:00 committed by Stefano Brivio
parent eb2e86dec0
commit 5d7688d26f
3 changed files with 31 additions and 53 deletions

View file

@ -11,7 +11,7 @@
# Copyright (c) 2021 Red Hat GmbH # Copyright (c) 2021 Red Hat GmbH
# Author: Stefano Brivio <sbrivio@redhat.com> # Author: Stefano Brivio <sbrivio@redhat.com>
htools make cc rm uname getconf htools make cc rm uname getconf mkdir cp rm man
test Build passt test Build passt
host make clean host make clean
@ -40,3 +40,23 @@ host CFLAGS="-Werror" make
check [ -f passt ] check [ -f passt ]
check [ -h pasta ] check [ -h pasta ]
check [ -f qrap ] check [ -f qrap ]
tempdir TEMP
test Install
host prefix=__TEMP__ make install
check [ -f __TEMP__/bin/passt ]
check [ -h __TEMP__/bin/pasta ]
check [ -f __TEMP__/bin/qrap ]
check man -M __TEMP__/share/man -W passt
check man -M __TEMP__/share/man -W pasta
check man -M __TEMP__/share/man -W qrap
test Uninstall
host prefix=__TEMP__ make uninstall
check ! [ -f __TEMP__/bin/passt ]
check ! [ -h __TEMP__/bin/pasta ]
check ! [ -f __TEMP__/bin/qrap ]
check ! man -M __TEMP__/share/man -W passt 2>/dev/null
check ! man -M __TEMP__/share/man -W pasta 2>/dev/null
check ! man -M __TEMP__/share/man -W qrap 2>/dev/null

View file

@ -1,34 +0,0 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
#
# PASST - Plug A Simple Socket Transport
# for qemu/UNIX domain socket mode
#
# PASTA - Pack A Subtle Tap Abstraction
# for network namespace/tap device mode
#
# test/build/install - Check that binaries and man pages can be installed
#
# Copyright (c) 2021 Red Hat GmbH
# Author: Stefano Brivio <sbrivio@redhat.com>
req build/all
htools make mkdir cp rm man
tempdir TEMP
test Install
host prefix=__TEMP__ make install
check [ -f __TEMP__/bin/passt ]
check [ -h __TEMP__/bin/pasta ]
check [ -f __TEMP__/bin/qrap ]
check man -M __TEMP__/share/man -W passt
check man -M __TEMP__/share/man -W pasta
check man -M __TEMP__/share/man -W qrap
test Uninstall
host prefix=__TEMP__ make uninstall
check ! [ -f __TEMP__/bin/passt ]
check ! [ -h __TEMP__/bin/pasta ]
check ! [ -f __TEMP__/bin/qrap ]
check ! man -M __TEMP__/share/man -W passt 2>/dev/null
check ! man -M __TEMP__/share/man -W pasta 2>/dev/null
check ! man -M __TEMP__/share/man -W qrap 2>/dev/null

View file

@ -418,29 +418,21 @@ test_one() {
# $1: Name of directory containing set of test files, relative to test/ # $1: Name of directory containing set of test files, relative to test/
test() { test() {
__list= __list=
__rem=1
cd test cd test
while [ ${__rem} -eq 1 ]; do for __f in "${1}"/*; do
__rem=0 __type="$(file -b --mime-type ${__f})"
for __f in "${1}"/*; do if [ "${__type}" = "text/x-shellscript" ]; then
__type="$(file -b --mime-type ${__f})" __list="$(list_add "${__list}" "${__f}")"
if [ "${__type}" = "text/x-shellscript" ]; then continue
__list="$(list_add "${__list}" "${__f}")" fi
continue
fi
if [ -n "$(file_def "${__f}" onlyfor)" ] && \ if [ -n "$(file_def "${__f}" onlyfor)" ] && \
! list_has "$(file_def "${__f}" onlyfor)" "${MODE}"; then ! list_has "$(file_def "${__f}" onlyfor)" "${MODE}"; then
continue continue
fi fi
if list_has_all "${__list}" "$(file_def "${__f}" req)"; then __list="$(list_add "${__list}" "${__f}")"
__list="$(list_add "${__list}" "${__f}")"
else
__rem=1
fi
done
done done
cd .. cd ..