From 9a7ffaa0773517c6ee45471fc6828c6a5fcb526c Mon Sep 17 00:00:00 2001 From: Paul Holzinger Date: Mon, 27 May 2024 17:14:28 +0200 Subject: [PATCH] test/system: speed up podman events tests Merge two podman event tests into one to speed them up as they did mostly the same anyway. This way we only have to do the setup/teardown once and only run one container. Second, add the --since option because reading the journal can be slow if you have thousands of event entries. This is not so critical in CI as we run on fresh systems but on local dev machines I have almost 100k events in the journal so parsing all of them makes this test slow (like 30s), with this change I can get it under 1s. Signed-off-by: Paul Holzinger --- test/system/090-events.bats | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/test/system/090-events.bats b/test/system/090-events.bats index 072d7f9f4f..993d7beebc 100644 --- a/test/system/090-events.bats +++ b/test/system/090-events.bats @@ -7,41 +7,34 @@ load helpers load helpers.network # bats test_tags=distro-integration -@test "events with a filter by label" { +@test "events with a filter by label and --no-trunc option" { cname=test-$(random_string 30 | tr A-Z a-z) labelname=$(random_string 10) labelvalue=$(random_string 15) - run_podman run --label $labelname=$labelvalue --name $cname --rm $IMAGE ls + before=$(date --iso-8601=seconds) + run_podman run -d --label $labelname=$labelvalue --name $cname --rm $IMAGE true + id="$output" - expect=".* container start [0-9a-f]\+ (image=$IMAGE, name=$cname,.* ${labelname}=${labelvalue}" - run_podman events --filter type=container -f container=$cname --filter label=${labelname}=${labelvalue} --filter event=start --stream=false + expect=".* container start $id (image=$IMAGE, name=$cname,.* ${labelname}=${labelvalue}" + run_podman events --since "$before" --filter type=container -f 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 system events -f type=container --filter label=${labelname}=${labelvalue} --filter event=start --stream=false + run_podman system events --since "$before" -f 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 + run_podman events --since "$before" --filter type=container --filter container=$cname --filter event=start --stream=false is "$output" "$expect" "filtering just by container" -} - -@test "truncate events" { - cname=test-$(random_string 30 | tr A-Z a-z) - - run_podman run -d --name=$cname --rm $IMAGE echo hi - id="$output" - - run_podman events --filter container=$cname --filter event=start --stream=false - is "$output" ".* $id " "filtering by container name full id" + # check --no-trunc=false truncID=${id:0:12} - run_podman events --filter container=$cname --filter event=start --stream=false --no-trunc=false + run_podman events --since "$before" --filter container=$cname --filter event=start --stream=false --no-trunc=false is "$output" ".* $truncID " "filtering by container name trunc id" # --no-trunc does not affect --format; we always get the full ID - run_podman events --filter container=$cname --filter event=died --stream=false --format='{{.ID}}--{{.Image}}' --no-trunc=false + run_podman events --since "$before" --filter container=$cname --filter event=died --stream=false --format='{{.ID}}--{{.Image}}' --no-trunc=false assert "$output" = "${id}--${IMAGE}" }