summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rwxr-xr-xtest/test_podman_pods.sh117
1 files changed, 117 insertions, 0 deletions
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