mirror of
https://github.com/containers/podman.git
synced 2025-07-02 00:30:00 +08:00
hack/bats: Fix to allow multiple tests
Signed-off-by: Ricardo Branco <rbranco@suse.de>
This commit is contained in:
24
hack/bats
24
hack/bats
@ -6,7 +6,7 @@
|
|||||||
###############################################################################
|
###############################################################################
|
||||||
# BEGIN usage message
|
# BEGIN usage message
|
||||||
|
|
||||||
usage="Usage: $0 [--root] [--rootless] [FILENAME-PATTERN[:TEST-PATTERN]]
|
usage="Usage: $0 [--root] [--rootless] [FILENAME-PATTERN[:TEST-PATTERN]]...
|
||||||
|
|
||||||
$0 is a wrapper for invoking podman system tests.
|
$0 is a wrapper for invoking podman system tests.
|
||||||
|
|
||||||
@ -63,7 +63,7 @@ export PODMAN=${PODMAN:-$(pwd)/bin/podman}
|
|||||||
export QUADLET=${QUADLET:-$(pwd)/bin/quadlet}
|
export QUADLET=${QUADLET:-$(pwd)/bin/quadlet}
|
||||||
|
|
||||||
# Directory in which
|
# Directory in which
|
||||||
TESTS=test/system
|
TESTS_DIR=test/system
|
||||||
|
|
||||||
REMOTE=
|
REMOTE=
|
||||||
TEST_ROOT=1
|
TEST_ROOT=1
|
||||||
@ -73,6 +73,8 @@ declare -a bats_opts=()
|
|||||||
|
|
||||||
declare -a bats_filter=()
|
declare -a bats_filter=()
|
||||||
|
|
||||||
|
declare -a TESTS
|
||||||
|
|
||||||
for i;do
|
for i;do
|
||||||
value=`expr "$i" : '[^=]*=\(.*\)'`
|
value=`expr "$i" : '[^=]*=\(.*\)'`
|
||||||
case "$i" in
|
case "$i" in
|
||||||
@ -85,20 +87,24 @@ for i;do
|
|||||||
if [[ "$value" = "ci:parallel" ]]; then
|
if [[ "$value" = "ci:parallel" ]]; then
|
||||||
bats_opts+=("--jobs" $(nproc))
|
bats_opts+=("--jobs" $(nproc))
|
||||||
fi;;
|
fi;;
|
||||||
*/*.bats) TESTS=$i ;;
|
*/*.bats) TESTS+=("$i") ;;
|
||||||
*)
|
*)
|
||||||
if [[ $i =~ : ]]; then
|
if [[ $i =~ : ]]; then
|
||||||
tname=${i%:*} # network:localhost -> network
|
tname=${i%:*} # network:localhost -> network
|
||||||
filt=${i#*:} # network:localhost -> localhost
|
filt=${i#*:} # network:localhost -> localhost
|
||||||
TESTS=$(echo $TESTS/*$tname*.bats)
|
TESTS+=($(echo $TESTS_DIR/*$tname*.bats))
|
||||||
bats_filter=("--filter" "$filt")
|
bats_filter=("--filter" "$filt")
|
||||||
else
|
else
|
||||||
TESTS=$(echo $TESTS/*$i*.bats)
|
TESTS+=($(echo $TESTS_DIR/*$i*.bats))
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
if [ ${#TESTS[@]} -eq 0 ] ; then
|
||||||
|
TESTS=("$TESTS_DIR")
|
||||||
|
fi
|
||||||
|
|
||||||
# With --remote, use correct binary and make sure daem--I mean server--is live
|
# With --remote, use correct binary and make sure daem--I mean server--is live
|
||||||
if [[ "$REMOTE" ]]; then
|
if [[ "$REMOTE" ]]; then
|
||||||
if ! [[ $PODMAN =~ -remote ]]; then
|
if ! [[ $PODMAN =~ -remote ]]; then
|
||||||
@ -131,21 +137,21 @@ export PODMAN_BATS_LEAK_CHECK=1
|
|||||||
|
|
||||||
# Root
|
# Root
|
||||||
if [[ "$TEST_ROOT" ]]; then
|
if [[ "$TEST_ROOT" ]]; then
|
||||||
echo "# bats ${bats_opts[*]} ${bats_filter[*]} $TESTS"
|
echo "# bats ${bats_opts[*]} ${bats_filter[*]} ${TESTS[*]}"
|
||||||
sudo --preserve-env=PODMAN \
|
sudo --preserve-env=PODMAN \
|
||||||
--preserve-env=QUADLET \
|
--preserve-env=QUADLET \
|
||||||
--preserve-env=PODMAN_TEST_DEBUG \
|
--preserve-env=PODMAN_TEST_DEBUG \
|
||||||
--preserve-env=CONTAINERS_HELPER_BINARY_DIR \
|
--preserve-env=CONTAINERS_HELPER_BINARY_DIR \
|
||||||
--preserve-env=PODMAN_ROOTLESS_USER \
|
--preserve-env=PODMAN_ROOTLESS_USER \
|
||||||
bats "${bats_opts[@]}" "${bats_filter[@]}" $TESTS
|
bats "${bats_opts[@]}" "${bats_filter[@]}" "${TESTS[@]}"
|
||||||
rc=$?
|
rc=$?
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Rootless. (Only if we're not already root)
|
# Rootless. (Only if we're not already root)
|
||||||
if [[ "$TEST_ROOTLESS" && "$(id -u)" != 0 ]]; then
|
if [[ "$TEST_ROOTLESS" && "$(id -u)" != 0 ]]; then
|
||||||
echo "--------------------------------------------------"
|
echo "--------------------------------------------------"
|
||||||
echo "\$ bats ${bats_opts[*]} ${bats_filter[*]} $TESTS"
|
echo "\$ bats ${bats_opts[*]} ${bats_filter[*]} ${TESTS[@]}"
|
||||||
bats "${bats_opts[@]}" "${bats_filter[@]}" $TESTS
|
bats "${bats_opts[@]}" "${bats_filter[@]}" "${TESTS[@]}"
|
||||||
rc=$((rc | $?))
|
rc=$((rc | $?))
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user