mirror of https://github.com/docker/compose.git
test: fix process leak in wait e2e test
* Run `down` before and after test to not leave around containers * Kill the `wait` process that's waiting on `infinity` * NOTE: If the test is actually working, this should exit once the `down` happens, but this ensures that we kill everything we start I'd like to generalize more of this into the framework, but this is a quick fix to prevent filling up CI machines with tons of processes over time. Signed-off-by: Milas Bowman <milas.bowman@docker.com>
This commit is contained in:
parent
bc6ad2e4a4
commit
8dea7b5cae
|
@ -21,6 +21,8 @@ import (
|
|||
"testing"
|
||||
"time"
|
||||
|
||||
"gotest.tools/v3/icmd"
|
||||
|
||||
"gotest.tools/v3/assert"
|
||||
)
|
||||
|
||||
|
@ -28,6 +30,12 @@ func TestWaitOnFaster(t *testing.T) {
|
|||
const projectName = "e2e-wait-faster"
|
||||
c := NewParallelCLI(t)
|
||||
|
||||
cleanup := func() {
|
||||
c.RunDockerComposeCmd(t, "--project-name", projectName, "down", "--timeout=0", "--remove-orphans")
|
||||
}
|
||||
t.Cleanup(cleanup)
|
||||
cleanup()
|
||||
|
||||
c.RunDockerComposeCmd(t, "-f", "./fixtures/wait/compose.yaml", "--project-name", projectName, "up", "-d")
|
||||
c.RunDockerComposeCmd(t, "--project-name", projectName, "wait", "faster")
|
||||
}
|
||||
|
@ -36,6 +44,12 @@ func TestWaitOnSlower(t *testing.T) {
|
|||
const projectName = "e2e-wait-slower"
|
||||
c := NewParallelCLI(t)
|
||||
|
||||
cleanup := func() {
|
||||
c.RunDockerComposeCmd(t, "--project-name", projectName, "down", "--timeout=0", "--remove-orphans")
|
||||
}
|
||||
t.Cleanup(cleanup)
|
||||
cleanup()
|
||||
|
||||
c.RunDockerComposeCmd(t, "-f", "./fixtures/wait/compose.yaml", "--project-name", projectName, "up", "-d")
|
||||
c.RunDockerComposeCmd(t, "--project-name", projectName, "wait", "slower")
|
||||
}
|
||||
|
@ -44,12 +58,27 @@ func TestWaitOnInfinity(t *testing.T) {
|
|||
const projectName = "e2e-wait-infinity"
|
||||
c := NewParallelCLI(t)
|
||||
|
||||
cleanup := func() {
|
||||
c.RunDockerComposeCmd(t, "--project-name", projectName, "down", "--timeout=0", "--remove-orphans")
|
||||
}
|
||||
t.Cleanup(cleanup)
|
||||
cleanup()
|
||||
|
||||
c.RunDockerComposeCmd(t, "-f", "./fixtures/wait/compose.yaml", "--project-name", projectName, "up", "-d")
|
||||
|
||||
cmd := c.NewDockerComposeCmd(t, "--project-name", projectName, "wait", "infinity")
|
||||
r := icmd.StartCmd(cmd)
|
||||
assert.NilError(t, r.Error)
|
||||
t.Cleanup(func() {
|
||||
if r.Cmd.Process != nil {
|
||||
_ = r.Cmd.Process.Kill()
|
||||
}
|
||||
})
|
||||
|
||||
finished := make(chan struct{})
|
||||
ticker := time.NewTicker(7 * time.Second)
|
||||
go func() {
|
||||
c.RunDockerComposeCmd(t, "--project-name", projectName, "wait", "infinity")
|
||||
_ = r.Cmd.Wait()
|
||||
finished <- struct{}{}
|
||||
}()
|
||||
|
||||
|
@ -64,6 +93,12 @@ func TestWaitAndDrop(t *testing.T) {
|
|||
const projectName = "e2e-wait-and-drop"
|
||||
c := NewParallelCLI(t)
|
||||
|
||||
cleanup := func() {
|
||||
c.RunDockerComposeCmd(t, "--project-name", projectName, "down", "--timeout=0", "--remove-orphans")
|
||||
}
|
||||
t.Cleanup(cleanup)
|
||||
cleanup()
|
||||
|
||||
c.RunDockerComposeCmd(t, "-f", "./fixtures/wait/compose.yaml", "--project-name", projectName, "up", "-d")
|
||||
c.RunDockerComposeCmd(t, "--project-name", projectName, "wait", "--down-project", "faster")
|
||||
|
||||
|
|
Loading…
Reference in New Issue