Merge pull request #44764 from vvoland/fix-test-race-logs-goroutines-23
[23.0 backport] integration-cli: Fix hanging TestLogsFollowGoroutines*
This commit is contained in:
commit
0f2e972234
1 changed files with 23 additions and 5 deletions
|
@ -290,9 +290,17 @@ func (s *DockerCLILogsSuite) TestLogsFollowGoroutinesWithStdout(c *testing.T) {
|
|||
assert.NilError(c, err)
|
||||
cmd := exec.Command(dockerBinary, "logs", "-f", id)
|
||||
r, w := io.Pipe()
|
||||
defer r.Close()
|
||||
defer w.Close()
|
||||
|
||||
cmd.Stdout = w
|
||||
assert.NilError(c, cmd.Start())
|
||||
go cmd.Wait()
|
||||
defer cmd.Process.Kill()
|
||||
|
||||
finished := make(chan error)
|
||||
go func() {
|
||||
finished <- cmd.Wait()
|
||||
}()
|
||||
|
||||
// Make sure pipe is written to
|
||||
chErr := make(chan error)
|
||||
|
@ -300,11 +308,15 @@ func (s *DockerCLILogsSuite) TestLogsFollowGoroutinesWithStdout(c *testing.T) {
|
|||
b := make([]byte, 1)
|
||||
_, err := r.Read(b)
|
||||
chErr <- err
|
||||
r.Close()
|
||||
}()
|
||||
|
||||
// Check read from pipe succeeded
|
||||
assert.NilError(c, <-chErr)
|
||||
|
||||
assert.NilError(c, cmd.Process.Kill())
|
||||
r.Close()
|
||||
cmd.Wait()
|
||||
<-finished
|
||||
|
||||
// NGoroutines is not updated right away, so we need to wait before failing
|
||||
assert.NilError(c, waitForGoroutines(nroutines))
|
||||
}
|
||||
|
@ -318,10 +330,16 @@ func (s *DockerCLILogsSuite) TestLogsFollowGoroutinesNoOutput(c *testing.T) {
|
|||
assert.NilError(c, err)
|
||||
cmd := exec.Command(dockerBinary, "logs", "-f", id)
|
||||
assert.NilError(c, cmd.Start())
|
||||
go cmd.Wait()
|
||||
|
||||
finished := make(chan error)
|
||||
go func() {
|
||||
finished <- cmd.Wait()
|
||||
}()
|
||||
|
||||
time.Sleep(200 * time.Millisecond)
|
||||
assert.NilError(c, cmd.Process.Kill())
|
||||
cmd.Wait()
|
||||
|
||||
<-finished
|
||||
|
||||
// NGoroutines is not updated right away, so we need to wait before failing
|
||||
assert.NilError(c, waitForGoroutines(nroutines))
|
||||
|
|
Loading…
Add table
Reference in a new issue