From 782caea8015679e5d67d15b9562488da06cdfcd5 Mon Sep 17 00:00:00 2001 From: baude Date: Wed, 5 Sep 2018 18:21:56 -0500 Subject: Add first pass for baseline pod tests This bash script is meant to compliment the podman baseline test script. It primarily focuses on exercising the common actions of pods. Signed-off-by: baude Closes: #1421 Approved by: rhatdan --- test/test_podman_pods.sh | 117 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100755 test/test_podman_pods.sh diff --git a/test/test_podman_pods.sh b/test/test_podman_pods.sh new file mode 100755 index 000000000..587f148cc --- /dev/null +++ b/test/test_podman_pods.sh @@ -0,0 +1,117 @@ +#!/bin/bash +# test_podman_pods.sh +# A script to be run at the command line with Podman installed. +# This should be run against a new kit to provide base level testing +# on a freshly installed machine with no images or container in +# play. This currently needs to be run as root. +# +# +# To run this command: +# +# /bin/bash -v test_podman_baseline.sh -e # Stop on error +# /bin/bash -v test_podman_baseline.sh # Continue on error +# + +set -x + +# This scripts needs the jq json parser +if [ -z $(command -v jq2) ]; then + echo "This script requires the jq parser" + exit 1 +fi + +# process input args +stoponerror=0 +while getopts "den" opt; do + case "$opt" in + e) stoponerror=1 + ;; + esac +done + + +if [ "$stoponerror" -eq 1 ] +then + echo "Script will stop on unexpected errors." + set -e + trap "Failed test ..." ERR +fi + + +######## +# Create a named and unamed pod +######## +podman pod create --name foobar +podid=$(podman pod create) + +######## +# Delete a named and unamed pod +######## +podman pod rm foobar +podman pod rm $podid + +######## +# Create a named pod and run a container in it +######## +podman pod create --name foobar +ctrid=$(podman run --pod foobar -dt docker.io/library/alpine:latest top) +podman ps --no-trunc | grep $ctrid + +######## +# Containers in a pod share network namespace +######## +podman run -dt --pod foobar quay.io/baude/alpine_nginx:latest +podman run -it --rm --pod foobar fedora-minimal:28 curl http://localhost + +######## +# There should be 3 containers running now +######## +let numContainers=$(podman pod ps --format json | jq -r '.[0] .numberOfContainers') +[ $numContainers -eq 3 ] + +######## +# Pause a container in a pod +######## +podman pause $ctrid +[ $(podman ps -a -f status=paused --format json | jq -r '.[0] .id') == $ctrid ] + +######## +# Unpause a container in a pod +######## +podman unpause $ctrid +podman ps -q --no-trunc | grep $ctrid + +######## +# Stop a pod and its containers +######## +podman pod stop foobar +[ $(podman inspect $ctrid | jq -r '.[0] .State .Running') == "false" ] + +######## +# Start a pod and its containers +######## +podman pod start foobar +podman run -it --rm --pod foobar fedora-minimal:28 curl http://localhost + +######## +# Pause a pod and its containers +######## +podman pod pause foobar +[ $(podman pod ps --format json | jq -r '.[0] .status') == "Paused" ] + +######## +# Unpause a pod and its containers +######## +podman pod unpause foobar +podman run -it --rm --pod foobar fedora-minimal:28 curl http://localhost + +######## +# Kill a pod and its containers +######## +podman pod kill foobar +[ $(podman inspect $ctrid | jq -r '.[0] .State .Running') == "false" ] + +######## +# Remove all pods and their containers +######## +podman pod rm -fa -- cgit v1.2.3-54-g00ecf