Skip to content

Commit 6440a41

Browse files
fix: stability of docker cancel test (#106)
1 parent 1dc7a4d commit 6440a41

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

pkg/container/docker_run_test.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ type endlessReader struct {
9898
}
9999

100100
func (r endlessReader) Read(_ []byte) (n int, err error) {
101+
time.Sleep(100 * time.Millisecond)
101102
return 1, nil
102103
}
103104

@@ -123,11 +124,16 @@ func TestDockerExecAbort(t *testing.T) {
123124

124125
client := &mockDockerClient{}
125126
client.On("ContainerExecCreate", ctx, "123", mock.AnythingOfType("container.ExecOptions")).Return(container.ExecCreateResponse{ID: "id"}, nil)
126-
client.On("ContainerExecAttach", ctx, "id", mock.AnythingOfType("container.ExecStartOptions")).Return(types.HijackedResponse{
127+
attached := make(chan struct{})
128+
client.On("ContainerExecAttach", ctx, "id", mock.AnythingOfType("container.ExecStartOptions")).Run(func(_ mock.Arguments) {
129+
close(attached)
130+
}).Return(types.HijackedResponse{
127131
Conn: conn,
128132
Reader: bufio.NewReader(endlessReader{}),
129133
}, nil)
130-
client.On("ContainerKill", mock.Anything, "123", "kill").Return(nil)
134+
client.On("ContainerKill", mock.Anything, "123", "kill").Run(func(_ mock.Arguments) {
135+
<-attached
136+
}).Return(nil)
131137
client.On("ContainerStart", mock.Anything, "123", mock.AnythingOfType("container.StartOptions")).Return(nil)
132138

133139
cr := &containerReference{
@@ -144,8 +150,6 @@ func TestDockerExecAbort(t *testing.T) {
144150
channel <- cr.execExt([]string{""}, map[string]string{}, "user", "workdir")(ctx)
145151
}()
146152

147-
time.Sleep(500 * time.Millisecond)
148-
149153
cancel()
150154

151155
err := <-channel

0 commit comments

Comments
 (0)