From 6440a419d2b4bf99b195dcecf4f7cb5be94ae192 Mon Sep 17 00:00:00 2001 From: ChristopherHX Date: Sun, 18 May 2025 13:24:33 +0200 Subject: [PATCH] fix: stability of docker cancel test (#106) --- pkg/container/docker_run_test.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/pkg/container/docker_run_test.go b/pkg/container/docker_run_test.go index 5157197f..f4bfd6eb 100644 --- a/pkg/container/docker_run_test.go +++ b/pkg/container/docker_run_test.go @@ -98,6 +98,7 @@ type endlessReader struct { } func (r endlessReader) Read(_ []byte) (n int, err error) { + time.Sleep(100 * time.Millisecond) return 1, nil } @@ -123,11 +124,16 @@ func TestDockerExecAbort(t *testing.T) { client := &mockDockerClient{} client.On("ContainerExecCreate", ctx, "123", mock.AnythingOfType("container.ExecOptions")).Return(container.ExecCreateResponse{ID: "id"}, nil) - client.On("ContainerExecAttach", ctx, "id", mock.AnythingOfType("container.ExecStartOptions")).Return(types.HijackedResponse{ + attached := make(chan struct{}) + client.On("ContainerExecAttach", ctx, "id", mock.AnythingOfType("container.ExecStartOptions")).Run(func(_ mock.Arguments) { + close(attached) + }).Return(types.HijackedResponse{ Conn: conn, Reader: bufio.NewReader(endlessReader{}), }, nil) - client.On("ContainerKill", mock.Anything, "123", "kill").Return(nil) + client.On("ContainerKill", mock.Anything, "123", "kill").Run(func(_ mock.Arguments) { + <-attached + }).Return(nil) client.On("ContainerStart", mock.Anything, "123", mock.AnythingOfType("container.StartOptions")).Return(nil) cr := &containerReference{ @@ -144,8 +150,6 @@ func TestDockerExecAbort(t *testing.T) { channel <- cr.execExt([]string{""}, map[string]string{}, "user", "workdir")(ctx) }() - time.Sleep(500 * time.Millisecond) - cancel() err := <-channel