@@ -98,6 +98,7 @@ type endlessReader struct {
9898}
9999
100100func (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