summaryrefslogtreecommitdiff
path: root/test/system/helpers.bash
diff options
context:
space:
mode:
authorEd Santiago <santiago@redhat.com>2019-12-23 05:43:08 -0700
committerEd Santiago <santiago@redhat.com>2020-01-13 06:29:52 -0700
commit1298f19773574963b9ce5ba7ca3b1637d1a07ef6 (patch)
tree69367bb8637056113e793d812c70af9c4f5a62d9 /test/system/helpers.bash
parent9e2e4d7615311b38b1e553af32a5666888ef3c96 (diff)
downloadpodman-1298f19773574963b9ce5ba7ca3b1637d1a07ef6.tar.gz
podman-1298f19773574963b9ce5ba7ca3b1637d1a07ef6.tar.bz2
podman-1298f19773574963b9ce5ba7ca3b1637d1a07ef6.zip
more BATS tests
- run: --name (includes 'podman container exists' tests) - run: --pull (always, never, missing) - build: new test for ADD URL (#4420) - exec: new test for issue #4785 (pipe getting lost) - diff: new test - selinux (mostly copied from docker-autotest) Plus a bug fix: the wait_for_output() helper would continue checking, eventually timing out, even if the container had already exited (probably because of an error). Fix: as part of the loop, run 'podman inspect' and bail out if container is not running. Include exit code and logs. Signed-off-by: Ed Santiago <santiago@redhat.com>
Diffstat (limited to 'test/system/helpers.bash')
-rw-r--r--test/system/helpers.bash14
1 files changed, 12 insertions, 2 deletions
diff --git a/test/system/helpers.bash b/test/system/helpers.bash
index 940f3f426..2e856930e 100644
--- a/test/system/helpers.bash
+++ b/test/system/helpers.bash
@@ -192,15 +192,24 @@ function wait_for_output {
fi
done
- [ -n "$cid" ] || die "FATAL: wait_for_ready: no container name/ID in '$*'"
+ [ -n "$cid" ] || die "FATAL: wait_for_output: no container name/ID in '$*'"
t1=$(expr $SECONDS + $how_long)
while [ $SECONDS -lt $t1 ]; do
run_podman logs $cid
- if expr "$output" : ".*$expect" >/dev/null; then
+ logs=$output
+ if expr "$logs" : ".*$expect" >/dev/null; then
return
fi
+ # Barf if container is not running
+ run_podman inspect --format '{{.State.Running}}' $cid
+ if [ $output != "true" ]; then
+ run_podman inspect --format '{{.State.ExitCode}}' $cid
+ exitcode=$output
+ die "Container exited (status: $exitcode) before we saw '$expect': $logs"
+ fi
+
sleep $sleep_delay
done
@@ -258,6 +267,7 @@ function skip_if_not_systemd() {
# die # Abort with helpful message
#########
function die() {
+ # FIXME: handle multi-line output
echo "#/vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv" >&2
echo "#| FAIL: $*" >&2
echo "#\\^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" >&2