Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

System tests: fix three races #15794

Merged
merged 1 commit into from
Sep 14, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pkg/domain/infra/tunnel/containers.go
Original file line number Diff line number Diff line change
Expand Up @@ -517,7 +517,7 @@ func (ic *ContainerEngine) ContainerLogs(_ context.Context, nameOrIDs []string,
stdout := opts.StdoutWriter != nil
stderr := opts.StderrWriter != nil
options := new(containers.LogOptions).WithFollow(opts.Follow).WithSince(since).WithUntil(until).WithStderr(stderr)
options.WithStdout(stdout).WithTail(tail)
options.WithStdout(stdout).WithTail(tail).WithTimestamps(opts.Timestamps)

var err error
stdoutCh := make(chan string)
Expand Down
23 changes: 19 additions & 4 deletions test/system/035-logs.bats
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,28 @@ function _log_test_tail() {
run_podman run -d --log-driver=$driver $IMAGE sh -c "echo test1; echo test2"
cid="$output"

run_podman logs --tail 1 $cid
is "$output" "test2" "logs should only show last line"
run_podman wait $cid
run_podman logs --tail 1 --timestamps $cid
log1="$output"
assert "$log1" =~ "^[0-9-]+T[0-9:.]+([\+-][0-9:]+|Z) test2" \
"logs should only show last line"

# Sigh. I hate doing this, but podman-remote --timestamp only has 1-second
# resolution (regular podman has sub-second). For the timestamps-differ
# check below, we need to force a different second.
if is_remote; then
sleep 2
fi

run_podman restart $cid
run_podman wait $cid

run_podman logs -t --tail 1 $cid
log2="$output"
assert "$log2" =~ "^[0-9-]+T[0-9:.]+([\+-][0-9:]+|Z) test2" \
"logs, after restart, shows only last line"

run_podman logs --tail 1 $cid
is "$output" "test2" "logs should only show last line after restart"
assert "$log2" != "$log1" "log timestamps should differ"

run_podman rm $cid
}
Expand Down
2 changes: 2 additions & 0 deletions test/system/045-start.bats
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ load helpers
@test "podman start --filter - start only containers that match the filter" {
run_podman run -d $IMAGE /bin/true
cid="$output"
run_podman wait $cid

run_podman start --filter restart-policy=always $cid
is "$output" "" "CID of restart-policy=always container"

Expand Down
5 changes: 4 additions & 1 deletion test/system/420-cgroups.bats
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ load helpers
esac

run_podman --cgroup-manager=$other run --name myc $IMAGE true
assert "$output" = "" "run true, with cgroup-manager=$other, is silent"

run_podman container inspect --format '{{.HostConfig.CgroupManager}}' myc
is "$output" "$other" "podman preserved .HostConfig.CgroupManager"

Expand All @@ -29,7 +31,8 @@ load helpers

# Restart the container, without --cgroup-manager option (ie use default)
# Prior to #7970, this would fail with an OCI runtime error
run_podman start myc
run_podman start -a myc
assert "$output" = "" "restarted container emits no output"

run_podman rm myc
}
Expand Down