mirror of
https://gitea.com/gitea/act_runner.git
synced 2026-03-22 06:45:03 +01:00
fix: stability of docker cancel test (#106)
This commit is contained in:
@@ -98,6 +98,7 @@ type endlessReader struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (r endlessReader) Read(_ []byte) (n int, err error) {
|
func (r endlessReader) Read(_ []byte) (n int, err error) {
|
||||||
|
time.Sleep(100 * time.Millisecond)
|
||||||
return 1, nil
|
return 1, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -123,11 +124,16 @@ func TestDockerExecAbort(t *testing.T) {
|
|||||||
|
|
||||||
client := &mockDockerClient{}
|
client := &mockDockerClient{}
|
||||||
client.On("ContainerExecCreate", ctx, "123", mock.AnythingOfType("container.ExecOptions")).Return(container.ExecCreateResponse{ID: "id"}, nil)
|
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,
|
Conn: conn,
|
||||||
Reader: bufio.NewReader(endlessReader{}),
|
Reader: bufio.NewReader(endlessReader{}),
|
||||||
}, nil)
|
}, 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)
|
client.On("ContainerStart", mock.Anything, "123", mock.AnythingOfType("container.StartOptions")).Return(nil)
|
||||||
|
|
||||||
cr := &containerReference{
|
cr := &containerReference{
|
||||||
@@ -144,8 +150,6 @@ func TestDockerExecAbort(t *testing.T) {
|
|||||||
channel <- cr.execExt([]string{""}, map[string]string{}, "user", "workdir")(ctx)
|
channel <- cr.execExt([]string{""}, map[string]string{}, "user", "workdir")(ctx)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
time.Sleep(500 * time.Millisecond)
|
|
||||||
|
|
||||||
cancel()
|
cancel()
|
||||||
|
|
||||||
err := <-channel
|
err := <-channel
|
||||||
|
|||||||
Reference in New Issue
Block a user