mirror of
https://github.com/containers/podman.git
synced 2025-06-20 00:51:16 +08:00
Merge pull request #8535 from edsantiago/bats
BATS: add ping test, ps filters, multi-option
This commit is contained in:
@ -59,7 +59,8 @@ Labels.created_at | 20[0-9-]\\\+T[0-9:]\\\+Z
|
||||
@test "podman images - history output" {
|
||||
# podman history is persistent: it permanently alters our base image.
|
||||
# Create a dummy image here so we leave our setup as we found it.
|
||||
run_podman run --name my-container $IMAGE true
|
||||
# Multiple --name options confirm command-line override (last one wins)
|
||||
run_podman run --name ignore-me --name my-container $IMAGE true
|
||||
run_podman commit my-container my-test-image
|
||||
|
||||
run_podman images my-test-image --format '{{ .History }}'
|
||||
@ -87,7 +88,8 @@ Labels.created_at | 20[0-9-]\\\+T[0-9:]\\\+Z
|
||||
}
|
||||
|
||||
@test "podman images - filter" {
|
||||
run_podman inspect --format '{{.ID}}' $IMAGE
|
||||
# Multiple --format options confirm command-line override (last one wins)
|
||||
run_podman inspect --format '{{.XYZ}}' --format '{{.ID}}' $IMAGE
|
||||
iid=$output
|
||||
|
||||
run_podman images --noheading --filter=after=$iid
|
||||
|
@ -449,7 +449,9 @@ json-file | f
|
||||
msg=$(random_string 20)
|
||||
pidfile="${PODMAN_TMPDIR}/$(random_string 20)"
|
||||
|
||||
run_podman run --name myctr --log-driver journald --conmon-pidfile $pidfile $IMAGE echo $msg
|
||||
# Multiple --log-driver options to confirm that last one wins
|
||||
run_podman run --name myctr --log-driver=none --log-driver journald \
|
||||
--conmon-pidfile $pidfile $IMAGE echo $msg
|
||||
|
||||
journalctl --output cat _PID=$(cat $pidfile)
|
||||
is "$output" "$msg" "check that journalctl output equals the container output"
|
||||
@ -464,7 +466,9 @@ json-file | f
|
||||
run_podman run --rm $IMAGE date -r $testfile
|
||||
is "$output" "Sun Sep 13 12:26:40 UTC 2020" "podman run with no TZ"
|
||||
|
||||
run_podman run --rm --tz=MST7MDT $IMAGE date -r $testfile
|
||||
# Multiple --tz options; confirm that the last one wins
|
||||
run_podman run --rm --tz=US/Eastern --tz=Iceland --tz=MST7MDT \
|
||||
$IMAGE date -r $testfile
|
||||
is "$output" "Sun Sep 13 06:26:40 MDT 2020" "podman run with --tz=MST7MDT"
|
||||
|
||||
# --tz=local pays attention to /etc/localtime, not $TZ. We set TZ anyway,
|
||||
@ -533,8 +537,15 @@ json-file | f
|
||||
}
|
||||
|
||||
@test "podman run with --net=host and --port prints warning" {
|
||||
run_podman run -d --rm -p 8080 --net=host $IMAGE ls > /dev/null
|
||||
is "$output" ".*Port mappings have been discarded as one of the Host, Container, Pod, and None network modes are in use"
|
||||
rand=$(random_string 10)
|
||||
|
||||
# Please keep the duplicate "--net" options; this tests against #8507,
|
||||
# a regression in which subsequent --net options did not override earlier.
|
||||
run_podman run --rm -p 8080 --net=none --net=host $IMAGE echo $rand
|
||||
is "${lines[0]}" \
|
||||
"Port mappings have been discarded as one of the Host, Container, Pod, and None network modes are in use" \
|
||||
"Warning is emitted before container output"
|
||||
is "${lines[1]}" "$rand" "Container runs successfully despite warning"
|
||||
}
|
||||
|
||||
# vim: filetype=sh
|
||||
|
@ -35,4 +35,51 @@ load helpers
|
||||
run_podman rm $cid
|
||||
}
|
||||
|
||||
@test "podman ps --filter" {
|
||||
run_podman run -d --name runner $IMAGE top
|
||||
cid_runner=$output
|
||||
|
||||
run_podman run -d --name stopped $IMAGE true
|
||||
cid_stopped=$output
|
||||
run_podman wait stopped
|
||||
|
||||
run_podman run -d --name failed $IMAGE false
|
||||
cid_failed=$output
|
||||
run_podman wait failed
|
||||
|
||||
run_podman create --name created $IMAGE echo hi
|
||||
cid_created=$output
|
||||
|
||||
run_podman ps --filter name=runner --format '{{.ID}}'
|
||||
is "$output" "${cid_runner:0:12}" "filter: name=runner"
|
||||
|
||||
# Stopped container should not appear (because we're not using -a)
|
||||
run_podman ps --filter name=stopped --format '{{.ID}}'
|
||||
is "$output" "" "filter: name=stopped (without -a)"
|
||||
|
||||
# Again, but with -a
|
||||
run_podman ps -a --filter name=stopped --format '{{.ID}}'
|
||||
is "$output" "${cid_stopped:0:12}" "filter: name=stopped (with -a)"
|
||||
|
||||
run_podman ps --filter status=stopped --format '{{.Names}}' --sort names
|
||||
is "${lines[0]}" "failed" "status=stopped: 1 of 2"
|
||||
is "${lines[1]}" "stopped" "status=stopped: 2 of 2"
|
||||
|
||||
run_podman ps --filter status=exited --filter exited=0 --format '{{.Names}}'
|
||||
is "$output" "stopped" "exited=0"
|
||||
|
||||
run_podman ps --filter status=exited --filter exited=1 --format '{{.Names}}'
|
||||
is "$output" "failed" "exited=1"
|
||||
|
||||
# Multiple statuses allowed; and test sort=created
|
||||
run_podman ps -a --filter status=exited --filter status=running \
|
||||
--format '{{.Names}}' --sort created
|
||||
is "${lines[0]}" "runner" "status=stopped: 1 of 3"
|
||||
is "${lines[1]}" "stopped" "status=stopped: 2 of 3"
|
||||
is "${lines[2]}" "failed" "status=stopped: 3 of 3"
|
||||
|
||||
run_podman stop -t 1 runner
|
||||
run_podman rm -a
|
||||
}
|
||||
|
||||
# vim: filetype=sh
|
||||
|
@ -135,10 +135,13 @@ echo "\$1"
|
||||
printenv | grep MYENV | sort | sed -e 's/^MYENV.=//'
|
||||
EOF
|
||||
|
||||
# For overriding with --env-file
|
||||
cat >$PODMAN_TMPDIR/env-file <<EOF
|
||||
# For overriding with --env-file; using multiple files confirms that
|
||||
# the --env-file option is cumulative, not last-one-wins.
|
||||
cat >$PODMAN_TMPDIR/env-file1 <<EOF
|
||||
MYENV3=$s_env3
|
||||
http_proxy=http-proxy-in-env-file
|
||||
EOF
|
||||
cat >$PODMAN_TMPDIR/env-file2 <<EOF
|
||||
https_proxy=https-proxy-in-env-file
|
||||
EOF
|
||||
|
||||
@ -185,7 +188,8 @@ EOF
|
||||
export MYENV2="$s_env2"
|
||||
export MYENV3="env-file-should-override-env-host!"
|
||||
run_podman run --rm \
|
||||
--env-file=$PODMAN_TMPDIR/env-file \
|
||||
--env-file=$PODMAN_TMPDIR/env-file1 \
|
||||
--env-file=$PODMAN_TMPDIR/env-file2 \
|
||||
${ENVHOST} \
|
||||
-e MYENV4="$s_env4" \
|
||||
build_test
|
||||
@ -205,7 +209,9 @@ EOF
|
||||
|
||||
# Proxies - environment should override container, but not env-file
|
||||
http_proxy=http-proxy-from-env ftp_proxy=ftp-proxy-from-env \
|
||||
run_podman run --rm --env-file=$PODMAN_TMPDIR/env-file \
|
||||
run_podman run --rm \
|
||||
--env-file=$PODMAN_TMPDIR/env-file1 \
|
||||
--env-file=$PODMAN_TMPDIR/env-file2 \
|
||||
build_test \
|
||||
printenv http_proxy https_proxy ftp_proxy
|
||||
is "${lines[0]}" "http-proxy-in-env-file" "env-file overrides env"
|
||||
@ -222,7 +228,8 @@ EOF
|
||||
is "$output" "$workdir" "pwd command in container"
|
||||
|
||||
# Determine buildah version, so we can confirm it gets into Labels
|
||||
run_podman info --format '{{ .Host.BuildahVersion }}'
|
||||
# Multiple --format options confirm command-line override (last one wins)
|
||||
run_podman info --format '{{.Ignore}}' --format '{{ .Host.BuildahVersion }}'
|
||||
is "$output" "[1-9][0-9.-]\+" ".Host.BuildahVersion is reasonable"
|
||||
buildah_version=$output
|
||||
|
||||
|
@ -91,7 +91,8 @@ load helpers
|
||||
|
||||
# #6829 : add username to /etc/passwd inside container if --userns=keep-id
|
||||
@test "podman exec - with keep-id" {
|
||||
run_podman run -d --userns=keep-id $IMAGE sh -c \
|
||||
# Multiple --userns options confirm command-line override (last one wins)
|
||||
run_podman run -d --userns=private --userns=keep-id $IMAGE sh -c \
|
||||
"echo READY;while [ ! -f /tmp/stop ]; do sleep 1; done"
|
||||
cid="$output"
|
||||
wait_for_ready $cid
|
||||
|
@ -286,6 +286,10 @@ EOF
|
||||
is "$output" "nc: bind: Address in use" \
|
||||
"two containers cannot bind to same port"
|
||||
|
||||
# make sure we can ping; failure here might mean that capabilities are wrong
|
||||
run_podman run --rm --pod mypod $IMAGE ping -c1 127.0.0.1
|
||||
run_podman run --rm --pod mypod $IMAGE ping -c1 $hostname
|
||||
|
||||
# While the container is still running, run 'podman ps' (no --format)
|
||||
# and confirm that the output includes the published port
|
||||
run_podman ps --filter id=$cid
|
||||
|
Reference in New Issue
Block a user