fix: stability of docker cancel test (#106)

This commit is contained in:
ChristopherHX
2025-05-18 13:24:33 +02:00
committed by GitHub
parent 1dc7a4d269
commit 6440a419d2

View File

@@ -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