From a1e8f61cb72a59b319c290cd3993e83d02eb578a Mon Sep 17 00:00:00 2001 From: Brad Hubbard Date: Fri, 20 Mar 2020 14:15:14 +1000 Subject: [PATCH] tests: Use podman if available Signed-off-by: Brad Hubbard --- src/test/docker-test-helper.sh | 36 ++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/src/test/docker-test-helper.sh b/src/test/docker-test-helper.sh index d13926b7a2c..14814201cbe 100755 --- a/src/test/docker-test-helper.sh +++ b/src/test/docker-test-helper.sh @@ -25,15 +25,16 @@ function setup_container() { local os_type=$1 local os_version=$2 local opts="$3" + local dockercmd=$4 local image=$(get_image_name $os_type $os_version) local build=true - if docker images $image | grep --quiet "^$image " ; then - eval touch --date=$(docker inspect $image | jq '.[0].Created') $image + if $dockercmd images $image | grep --quiet "^$image " ; then + eval touch --date=$($dockercmd inspect $image | jq '.[0].Created') $image found=$(find -L test/$os_type-$os_version/* -newer $image) rm $image if test -n "$found" ; then - docker rmi $image + $dockercmd rmi $image else build=false fi @@ -48,7 +49,7 @@ function setup_container() { os_version=$os_version user_id=$(id -u) \ perl -p -e 's/%%(\w+)%%/$ENV{$1}/g' \ dockerfile/Dockerfile.in > dockerfile/Dockerfile - docker $opts build --tag=$image dockerfile + $dockercmd $opts build --tag=$image dockerfile rm -fr dockerfile fi } @@ -110,9 +111,11 @@ function run_in_docker() { local opts="$1" shift local script=$1 + shift + local dockercmd=$1 setup_downstream $os_type $os_version $ref || return 1 - setup_container $os_type $os_version "$opts" || return 1 + setup_container $os_type $os_version "$opts" $dockercmd || return 1 local downstream=$(get_downstream $os_type $os_version) local image=$(get_image_name $os_type $os_version) local upstream=$(get_upstream) @@ -120,7 +123,7 @@ function run_in_docker() { mkdir -p $HOME/.ccache ccache="--volume $HOME/.ccache:$HOME/.ccache" user="--user $USER" - local cmd="docker run $opts --rm --name $image --privileged $ccache" + local cmd="$dockercmd run $opts --rm --name $image --privileged $ccache" cmd+=" --volume $downstream:$downstream" cmd+=" --volume $upstream:$upstream" local status=0 @@ -137,15 +140,17 @@ function run_in_docker() { function remove_all() { local os_type=$1 local os_version=$2 + local dockercmd=$3 local image=$(get_image_name $os_type $os_version) - docker rm $image - docker rmi $image + $dockercmd rm $image + $dockercmd rmi $image } function usage() { cat < /dev/null 2>&1 ; then + local dockercmd="docker" + if type podman > /dev/null; then + dockercmd="podman" + fi + + if ! $dockercmd ps > /dev/null 2>&1 ; then echo "docker not available: $0" return 0 fi @@ -315,11 +325,11 @@ function main_docker() { for os_type in ${!os_type2versions[@]} ; do for os_version in ${os_type2versions[$os_type]} ; do if $remove ; then - remove_all $os_type $os_version || return 1 + remove_all $os_type $os_version $dockercmd || return 1 elif $shell ; then - run_in_docker $os_type $os_version $ref "$opts" SHELL || return 1 + run_in_docker $os_type $os_version $ref "$opts" SHELL $dockercmd || return 1 else - run_in_docker $os_type $os_version $ref "$opts" "$@" || return 1 + run_in_docker $os_type $os_version $ref "$opts" "$@" $dockercmd || return 1 fi done done -- 2.47.3