mirror of https://github.com/containers/podman.git
Merge pull request #22736 from ypu/quadlet_journald
test/system: Add test for journald log check in quadlet
This commit is contained in:
commit
c0ec20b98d
|
@ -143,6 +143,39 @@ function remove_secret() {
|
||||||
run_podman secret rm $secret_name
|
run_podman secret rm $secret_name
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function wait_for_journal() {
|
||||||
|
local step=1
|
||||||
|
local count=10
|
||||||
|
local expect_str=
|
||||||
|
|
||||||
|
while [ "$#" -gt 0 ]; do
|
||||||
|
case "$1" in
|
||||||
|
-s|--step)
|
||||||
|
step="$2"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
-c|--count)
|
||||||
|
count="$2"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
expect_str="$1"
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
while [ "$count" -gt 0 ]; do
|
||||||
|
run journalctl "--since=$STARTED_TIME" --unit="$QUADLET_SERVICE_NAME"
|
||||||
|
if [[ "$output" =~ "$expect_str" ]]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
sleep "$step"
|
||||||
|
count=$(( count - 1 ))
|
||||||
|
done
|
||||||
|
die "Timed out waiting for '$expect_str' in journalctl output"
|
||||||
|
}
|
||||||
|
|
||||||
@test "quadlet - basic" {
|
@test "quadlet - basic" {
|
||||||
# Network=none is to work around a Pasta bug, can be removed once a patched Pasta is available.
|
# Network=none is to work around a Pasta bug, can be removed once a patched Pasta is available.
|
||||||
# Ref https://github.com/containers/podman/pull/21563#issuecomment-1965145324
|
# Ref https://github.com/containers/podman/pull/21563#issuecomment-1965145324
|
||||||
|
@ -230,13 +263,15 @@ EOF
|
||||||
service_cleanup $QUADLET_SERVICE_NAME inactive
|
service_cleanup $QUADLET_SERVICE_NAME inactive
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "quadlet - ContainerName" {
|
@test "quadlet - ContainerName and journal output check" {
|
||||||
local quadlet_file=$PODMAN_TMPDIR/containername_$(random_string).container
|
local quadlet_file=$PODMAN_TMPDIR/containername_$(random_string).container
|
||||||
|
local token_out="STDOUT$(random_string 10)"
|
||||||
|
local token_err="STDERR$(random_string 10)"
|
||||||
cat > $quadlet_file <<EOF
|
cat > $quadlet_file <<EOF
|
||||||
[Container]
|
[Container]
|
||||||
ContainerName=customcontainername
|
ContainerName=customcontainername
|
||||||
Image=$IMAGE
|
Image=$IMAGE
|
||||||
Exec=top"
|
Exec=sh -c "echo $token_out; echo $token_err 1>&2; top -d 10"
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
run_quadlet "$quadlet_file"
|
run_quadlet "$quadlet_file"
|
||||||
|
@ -246,6 +281,18 @@ EOF
|
||||||
run_podman container inspect --format "{{.State.Status}}" customcontainername
|
run_podman container inspect --format "{{.State.Status}}" customcontainername
|
||||||
is "$output" "running" "container should be started by systemd and hence be running"
|
is "$output" "running" "container should be started by systemd and hence be running"
|
||||||
|
|
||||||
|
wait_for_journal "Started $QUADLET_SERVICE_NAME"
|
||||||
|
|
||||||
|
run journalctl "--since=$STARTED_TIME" --unit="$QUADLET_SERVICE_NAME"
|
||||||
|
assert "$output" =~ "$token_out" "Output can be found with journalctl"
|
||||||
|
assert "$output" =~ "$token_err" "Error can be found with journalctl"
|
||||||
|
assert "$output" =~ "Starting $QUADLET_SERVICE_NAME" "Status information can be found with journalctl"
|
||||||
|
|
||||||
|
# log priority 3 in journalctl is err. This is documented in syslog(3)
|
||||||
|
run journalctl "--since=$STARTED_TIME" --priority=3 --unit="$QUADLET_SERVICE_NAME"
|
||||||
|
assert "$output" =~ "$token_err" "Error can be found with journalctl --priority=3"
|
||||||
|
assert "$output" !~ "$token_out" "Output can not be found with journalctl --priority=3"
|
||||||
|
|
||||||
service_cleanup $QUADLET_SERVICE_NAME failed
|
service_cleanup $QUADLET_SERVICE_NAME failed
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue