public inbox for passt-dev@passt.top
 help / color / mirror / code / Atom feed
From: David Gibson <david@gibson.dropbear.id.au>
To: passt-dev@passt.top
Subject: [PATCH 10/15] tests: Remove not-very-useful "req" directive
Date: Wed, 06 Jul 2022 17:29:04 +1000	[thread overview]
Message-ID: <20220706072909.596805-11-david@gibson.dropbear.id.au> (raw)
In-Reply-To: <20220706072909.596805-1-david@gibson.dropbear.id.au>

[-- Attachment #1: Type: text/plain, Size: 4306 bytes --]

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(a)gibson.dropbear.id.au>
---
 test/build/all     | 22 +++++++++++++++++++++-
 test/build/install | 34 ----------------------------------
 test/lib/test      | 28 ++++++++++------------------
 3 files changed, 31 insertions(+), 53 deletions(-)
 delete mode 100644 test/build/install

diff --git a/test/build/all b/test/build/all
index 6043793..1a89b77 100644
--- a/test/build/all
+++ b/test/build/all
@@ -11,7 +11,7 @@
 # Copyright (c) 2021 Red Hat GmbH
 # Author: Stefano Brivio <sbrivio(a)redhat.com>
 
-htools	make cc rm uname getconf
+htools	make cc rm uname getconf mkdir cp rm man
 
 test	Build passt
 host	make clean
@@ -40,3 +40,23 @@ host	CFLAGS="-Werror" make
 check	[ -f passt ]
 check	[ -h pasta ]
 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
diff --git a/test/build/install b/test/build/install
deleted file mode 100644
index 2c93647..0000000
--- a/test/build/install
+++ /dev/null
@@ -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(a)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
diff --git a/test/lib/test b/test/lib/test
index 96dab2b..ae42864 100755
--- a/test/lib/test
+++ b/test/lib/test
@@ -418,29 +418,21 @@ test_one() {
 # $1:	Name of directory containing set of test files, relative to test/
 test() {
 	__list=
-	__rem=1
 
 	cd test
-	while [ ${__rem} -eq 1 ]; do
-		__rem=0
-		for __f in "${1}"/*; do
-			__type="$(file -b --mime-type ${__f})"
-			if [ "${__type}" = "text/x-shellscript" ]; then
-				__list="$(list_add "${__list}" "${__f}")"
-				continue
-			fi
+	for __f in "${1}"/*; do
+		__type="$(file -b --mime-type ${__f})"
+		if [ "${__type}" = "text/x-shellscript" ]; then
+			__list="$(list_add "${__list}" "${__f}")"
+			continue
+		fi
 
-			if [ -n "$(file_def "${__f}" onlyfor)" ] && \
+		if [ -n "$(file_def "${__f}" onlyfor)" ] && \
 			   ! list_has "$(file_def "${__f}" onlyfor)" "${MODE}"; then
-				continue
-			fi
+			continue
+		fi
 
-			if list_has_all "${__list}" "$(file_def "${__f}" req)"; then
-				__list="$(list_add "${__list}" "${__f}")"
-			else
-				__rem=1
-			fi
-		done
+		__list="$(list_add "${__list}" "${__f}")"
 	done
 	cd ..
 
-- 
@@ -418,29 +418,21 @@ test_one() {
 # $1:	Name of directory containing set of test files, relative to test/
 test() {
 	__list=
-	__rem=1
 
 	cd test
-	while [ ${__rem} -eq 1 ]; do
-		__rem=0
-		for __f in "${1}"/*; do
-			__type="$(file -b --mime-type ${__f})"
-			if [ "${__type}" = "text/x-shellscript" ]; then
-				__list="$(list_add "${__list}" "${__f}")"
-				continue
-			fi
+	for __f in "${1}"/*; do
+		__type="$(file -b --mime-type ${__f})"
+		if [ "${__type}" = "text/x-shellscript" ]; then
+			__list="$(list_add "${__list}" "${__f}")"
+			continue
+		fi
 
-			if [ -n "$(file_def "${__f}" onlyfor)" ] && \
+		if [ -n "$(file_def "${__f}" onlyfor)" ] && \
 			   ! list_has "$(file_def "${__f}" onlyfor)" "${MODE}"; then
-				continue
-			fi
+			continue
+		fi
 
-			if list_has_all "${__list}" "$(file_def "${__f}" req)"; then
-				__list="$(list_add "${__list}" "${__f}")"
-			else
-				__rem=1
-			fi
-		done
+		__list="$(list_add "${__list}" "${__f}")"
 	done
 	cd ..
 
-- 
2.36.1


  parent reply	other threads:[~2022-07-06  7:29 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-06  7:28 [PATCH 00/15] Test fixes, batch 4 David Gibson
2022-07-06  7:28 ` [PATCH 01/15] test: Add external mbuto profile, drop udhcpc, and switch to it David Gibson
2022-07-06  7:28 ` [PATCH 02/15] Handle the case of a DNS server on localhost David Gibson
2022-07-06  7:28 ` [PATCH 03/15] tests: qemu-system-ppc64le isn't a thing David Gibson
2022-07-06  7:28 ` [PATCH 04/15] Invoke specific qemu-system-* binaries David Gibson
2022-07-06  7:28 ` [PATCH 05/15] tests: Introduce makefile for building test assets David Gibson
2022-07-06  7:29 ` [PATCH 06/15] tests: Move mbuto download and execution to asset build David Gibson
2022-07-06  7:29 ` [PATCH 07/15] tests: Search multiple places for aarch64 EDK2 bios image David Gibson
2022-07-06  7:29 ` [PATCH 08/15] Clean up passt.pid file David Gibson
2022-07-06  7:29 ` [PATCH 09/15] tests: Remove unused set_mode() function David Gibson
2022-07-06  7:29 ` David Gibson [this message]
2022-07-06  7:29 ` [PATCH 11/15] tests: Don't automatically traverse directories of test files David Gibson
2022-07-06  7:29 ` [PATCH 12/15] tests: Explicitly list test files in test/run, remove "onlyfor" support David Gibson
2022-07-06  7:29 ` [PATCH 13/15] tests: Move distro image download to asset build makefile David Gibson
2022-07-06  7:29 ` [PATCH 14/15] tests: Prepare distro images during asset build phase David Gibson
2022-07-06  7:29 ` [PATCH 15/15] tests: Remove unused DNS6 calculation from fedora tests David Gibson
2022-07-07 14:53 ` [PATCH 00/15] Test fixes, batch 4 Stefano Brivio
2022-07-11  9:42   ` Stefano Brivio
2022-07-12  8:26     ` David Gibson
2022-07-12 12:13       ` Stefano Brivio
2022-07-13  2:11         ` David Gibson
2022-07-13  6:04           ` Stefano Brivio
2022-07-13 10:19             ` David Gibson
2022-07-13 23:39 ` Stefano Brivio

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220706072909.596805-11-david@gibson.dropbear.id.au \
    --to=david@gibson.dropbear.id.au \
    --cc=passt-dev@passt.top \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://passt.top/passt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for IMAP folder(s).