Signed-off-by: Daniel Nephin <dnephin@docker.com>
| ... | ... |
@@ -69,10 +69,10 @@ func (s *DockerSuite) TestAttachAfterDetach(c *check.C) {
|
| 69 | 69 |
cmd.Stdout = tty |
| 70 | 70 |
cmd.Stderr = tty |
| 71 | 71 |
|
| 72 |
- errChan := make(chan error) |
|
| 72 |
+ cmdExit := make(chan error) |
|
| 73 | 73 |
go func() {
|
| 74 |
- errChan <- cmd.Run() |
|
| 75 |
- close(errChan) |
|
| 74 |
+ cmdExit <- cmd.Run() |
|
| 75 |
+ close(cmdExit) |
|
| 76 | 76 |
}() |
| 77 | 77 |
|
| 78 | 78 |
c.Assert(waitRun(name), check.IsNil) |
| ... | ... |
@@ -82,12 +82,7 @@ func (s *DockerSuite) TestAttachAfterDetach(c *check.C) {
|
| 82 | 82 |
cpty.Write([]byte{17})
|
| 83 | 83 |
|
| 84 | 84 |
select {
|
| 85 |
- case err := <-errChan: |
|
| 86 |
- if err != nil {
|
|
| 87 |
- buff := make([]byte, 200) |
|
| 88 |
- tty.Read(buff) |
|
| 89 |
- c.Fatalf("%s: %s", err, buff)
|
|
| 90 |
- } |
|
| 85 |
+ case <-cmdExit: |
|
| 91 | 86 |
case <-time.After(5 * time.Second): |
| 92 | 87 |
c.Fatal("timeout while detaching")
|
| 93 | 88 |
} |
| ... | ... |
@@ -102,6 +97,7 @@ func (s *DockerSuite) TestAttachAfterDetach(c *check.C) {
|
| 102 | 102 |
|
| 103 | 103 |
err = cmd.Start() |
| 104 | 104 |
c.Assert(err, checker.IsNil) |
| 105 |
+ defer cmd.Process.Kill() |
|
| 105 | 106 |
|
| 106 | 107 |
bytes := make([]byte, 10) |
| 107 | 108 |
var nBytes int |
| ... | ... |
@@ -124,11 +120,7 @@ func (s *DockerSuite) TestAttachAfterDetach(c *check.C) {
|
| 124 | 124 |
c.Fatal("timeout waiting for attach read")
|
| 125 | 125 |
} |
| 126 | 126 |
|
| 127 |
- err = cmd.Wait() |
|
| 128 |
- c.Assert(err, checker.IsNil) |
|
| 129 |
- |
|
| 130 | 127 |
c.Assert(string(bytes[:nBytes]), checker.Contains, "/ #") |
| 131 |
- |
|
| 132 | 128 |
} |
| 133 | 129 |
|
| 134 | 130 |
// TestAttachDetach checks that attach in tty mode can be detached using the long container ID |