mirror of
https://github.com/containers/podman.git
synced 2025-06-18 07:28:57 +08:00
System tests: cleanup, make more robust
- run test: preserve --runtime test: use a random executable path. And, clean up better. - run test: "look up correct image name" test: use random strings; test both without and with a :tag - events test: use random label strings, add more filter tests Signed-off-by: Ed Santiago <santiago@redhat.com>
This commit is contained in:
@ -473,34 +473,53 @@ json-file | f
|
|||||||
|
|
||||||
# run with --runtime should preserve the named runtime
|
# run with --runtime should preserve the named runtime
|
||||||
@test "podman run : full path to --runtime is preserved" {
|
@test "podman run : full path to --runtime is preserved" {
|
||||||
skip_if_cgroupsv1
|
skip_if_remote "podman-remote does not support --runtime option"
|
||||||
skip_if_remote
|
|
||||||
run_podman run -d --runtime '/usr/bin/crun' $IMAGE sleep 60
|
# Get configured runtime
|
||||||
|
run_podman info --format '{{.Host.OCIRuntime.Path}}'
|
||||||
|
runtime="$output"
|
||||||
|
|
||||||
|
# Assumes that /var/tmp is not mounted noexec; this is usually safe
|
||||||
|
new_runtime="/var/tmp/myruntime$(random_string 12)"
|
||||||
|
cp --preserve $runtime $new_runtime
|
||||||
|
|
||||||
|
run_podman run -d --runtime "$new_runtime" $IMAGE sleep 60
|
||||||
cid="$output"
|
cid="$output"
|
||||||
|
|
||||||
run_podman inspect --format '{{.OCIRuntime}}' $cid
|
run_podman inspect --format '{{.OCIRuntime}}' $cid
|
||||||
is "$output" "/usr/bin/crun"
|
is "$output" "$new_runtime" "podman inspect shows configured runtime"
|
||||||
|
|
||||||
run_podman kill $cid
|
run_podman kill $cid
|
||||||
|
run_podman rm $cid
|
||||||
|
rm -f $new_runtime
|
||||||
}
|
}
|
||||||
|
|
||||||
# Regression test for issue #8082
|
# Regression test for issue #8082
|
||||||
@test "podman run : look up correct image name" {
|
@test "podman run : look up correct image name" {
|
||||||
# Create a 2nd tag for the local image.
|
# Create a 2nd tag for the local image. Force to lower case, and apply it.
|
||||||
local name="localhost/foo/bar"
|
local newtag="localhost/$(random_string 10)/$(random_string 8)"
|
||||||
run_podman tag $IMAGE $name
|
newtag=${newtag,,}
|
||||||
|
run_podman tag $IMAGE $newtag
|
||||||
|
|
||||||
# Create a container with the 2nd tag and make sure that it's being
|
# Create a container with the 2nd tag and make sure that it's being
|
||||||
# used. #8082 always inaccurately used the 1st tag.
|
# used. #8082 always inaccurately used the 1st tag.
|
||||||
run_podman create $name
|
run_podman create $newtag
|
||||||
cid="$output"
|
cid="$output"
|
||||||
|
|
||||||
run_podman inspect --format "{{.ImageName}}" $cid
|
run_podman inspect --format "{{.ImageName}}" $cid
|
||||||
is "$output" "$name"
|
is "$output" "$newtag" "container .ImageName is the container-create name"
|
||||||
|
|
||||||
|
# Same thing, but now with a :tag, and making sure it works with --name
|
||||||
|
newtag2="${newtag}:$(random_string 6|tr A-Z a-z)"
|
||||||
|
run_podman tag $IMAGE $newtag2
|
||||||
|
|
||||||
|
cname="$(random_string 14|tr A-Z a-z)"
|
||||||
|
run_podman create --name $cname $newtag2
|
||||||
|
run_podman inspect --format "{{.ImageName}}" $cname
|
||||||
|
is "$output" "$newtag2" "container .ImageName is the container-create name"
|
||||||
|
|
||||||
# Clean up.
|
# Clean up.
|
||||||
run_podman rm $cid
|
run_podman rm $cid $cname
|
||||||
run_podman untag $IMAGE $name
|
run_podman untag $IMAGE $newtag $newtag2
|
||||||
}
|
}
|
||||||
|
|
||||||
# vim: filetype=sh
|
# vim: filetype=sh
|
||||||
|
@ -6,9 +6,22 @@
|
|||||||
load helpers
|
load helpers
|
||||||
|
|
||||||
@test "events with a filter by label" {
|
@test "events with a filter by label" {
|
||||||
skip_if_remote "Need to talk to Ed on why this is failing on remote"
|
skip_if_remote "FIXME: -remote does not include labels in event output"
|
||||||
rand=$(random_string 30)
|
cname=test-$(random_string 30 | tr A-Z a-z)
|
||||||
run_podman 0 run --label foo=bar --name test-$rand --rm $IMAGE ls
|
labelname=$(random_string 10)
|
||||||
run_podman 0 events --filter type=container --filter container=test-$rand --filter label=foo=bar --filter event=start --stream=false
|
labelvalue=$(random_string 15)
|
||||||
is "$output" ".*foo=bar" "check for label event on container with label"
|
|
||||||
|
run_podman run --label $labelname=$labelvalue --name $cname --rm $IMAGE ls
|
||||||
|
|
||||||
|
expect=".* container start [0-9a-f]\+ (image=$IMAGE, name=$cname,.* ${labelname}=${labelvalue}"
|
||||||
|
run_podman events --filter type=container --filter container=$cname --filter label=${labelname}=${labelvalue} --filter event=start --stream=false
|
||||||
|
is "$output" "$expect" "filtering by container name and label"
|
||||||
|
|
||||||
|
# Same thing, but without the container-name filter
|
||||||
|
run_podman events --filter type=container --filter label=${labelname}=${labelvalue} --filter event=start --stream=false
|
||||||
|
is "$output" "$expect" "filtering just by label"
|
||||||
|
|
||||||
|
# Now filter just by container name, no label
|
||||||
|
run_podman events --filter type=container --filter container=$cname --filter event=start --stream=false
|
||||||
|
is "$output" "$expect" "filtering just by label"
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user