moby/1008-integration-Add-container-output-utility.patch
Funda Wang f9bd2cb7df fix CVE-2024-36620, CVE-2024-36621, CVE-2024-36623
(cherry picked from commit c0b254900730351d4f70590eb6692ae88c4523ab)
2024-12-02 10:22:17 +08:00

52 lines
1.6 KiB
Diff

From 9ee331235a3affa082d5cb0028351182b89fd123 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pawe=C5=82=20Gronowski?= <pawel.gronowski@docker.com>
Date: Thu, 22 Feb 2024 11:14:27 +0100
Subject: [PATCH] integration: Add container.Output utility
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Extracted from https://github.com/moby/moby/commit/bfb810445c3c111478f5e0e6268ef334c38f38cf
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
---
integration/internal/container/container.go | 25 +++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/integration/internal/container/container.go b/integration/internal/container/container.go
index 0974ce6bf1..dac52999ae 100644
--- a/integration/internal/container/container.go
+++ b/integration/internal/container/container.go
@@ -170,3 +170,28 @@ func Inspect(ctx context.Context, t *testing.T, apiClient client.APIClient, cont
return c
}
+
+type ContainerOutput struct {
+ Stdout, Stderr string
+}
+
+// Output waits for the container to end running and returns its output.
+func Output(ctx context.Context, client client.APIClient, id string) (ContainerOutput, error) {
+ logs, err := client.ContainerLogs(ctx, id, container.LogsOptions{Follow: true, ShowStdout: true, ShowStderr: true})
+ if err != nil {
+ return ContainerOutput{}, err
+ }
+
+ defer logs.Close()
+
+ var stdoutBuf, stderrBuf bytes.Buffer
+ _, err = stdcopy.StdCopy(&stdoutBuf, &stderrBuf, logs)
+ if err != nil {
+ return ContainerOutput{}, err
+ }
+
+ return ContainerOutput{
+ Stdout: stdoutBuf.String(),
+ Stderr: stderrBuf.String(),
+ }, nil
+}
--
2.33.0