Merge pull request #37143 from arm64b/copy-after-command-exit

Alternative failure mitigation of `TestExecInteractiveStdinClose`
This commit is contained in:
Vincent Demeester 2018-05-29 12:03:46 +02:00 committed by GitHub
commit 2d7ae3e7e5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -25,10 +25,6 @@ func (s *DockerSuite) TestExecInteractiveStdinClose(c *check.C) {
c.Assert(err, checker.IsNil)
b := bytes.NewBuffer(nil)
go func() {
io.Copy(b, p)
p.Close()
}()
ch := make(chan error)
go func() { ch <- cmd.Wait() }()
@ -36,9 +32,14 @@ func (s *DockerSuite) TestExecInteractiveStdinClose(c *check.C) {
select {
case err := <-ch:
c.Assert(err, checker.IsNil)
output := b.String()
io.Copy(b, p)
p.Close()
bs := b.Bytes()
bs = bytes.Trim(bs, "\x00")
output := string(bs[:])
c.Assert(strings.TrimSpace(output), checker.Equals, "hello")
case <-time.After(5 * time.Second):
p.Close()
c.Fatal("timed out running docker exec")
}
}