Ver Fonte

integration: disable iptables in parallel tests

Multiple daemons starting/running concurrently can collide with each
other when editing iptables rules. Most integration tests which opt into
parallelism and start daemons work around this problem by starting the
daemon with the --iptables=false option. However, some of the tests
neglect to pass the option when starting or restarting the daemon,
resulting in those tests being flaky.

Audit the integration tests which call t.Parallel() and (*Daemon).Stop()
and add --iptables=false arguments where needed.

Signed-off-by: Cory Snider <csnider@mirantis.com>
Cory Snider há 2 anos atrás
pai
commit
cdcb7c28c5

+ 4 - 4
integration/container/daemon_linux_test.go

@@ -140,7 +140,7 @@ func TestDaemonHostGatewayIP(t *testing.T) {
 	// Verify the IP in /etc/hosts is same as host-gateway-ip
 	// Verify the IP in /etc/hosts is same as host-gateway-ip
 	d := daemon.New(t)
 	d := daemon.New(t)
 	// Verify the IP in /etc/hosts is same as the default bridge's IP
 	// Verify the IP in /etc/hosts is same as the default bridge's IP
-	d.StartWithBusybox(t)
+	d.StartWithBusybox(t, "--iptables=false")
 	c := d.NewClientT(t)
 	c := d.NewClientT(t)
 	ctx := context.Background()
 	ctx := context.Background()
 	cID := container.Run(ctx, t, c,
 	cID := container.Run(ctx, t, c,
@@ -157,7 +157,7 @@ func TestDaemonHostGatewayIP(t *testing.T) {
 	d.Stop(t)
 	d.Stop(t)
 
 
 	// Verify the IP in /etc/hosts is same as host-gateway-ip
 	// Verify the IP in /etc/hosts is same as host-gateway-ip
-	d.StartWithBusybox(t, "--host-gateway-ip=6.7.8.9")
+	d.StartWithBusybox(t, "--iptables=false", "--host-gateway-ip=6.7.8.9")
 	cID = container.Run(ctx, t, c,
 	cID = container.Run(ctx, t, c,
 		container.WithExtraHost("host.docker.internal:host-gateway"),
 		container.WithExtraHost("host.docker.internal:host-gateway"),
 	)
 	)
@@ -208,7 +208,7 @@ func TestRestartDaemonWithRestartingContainer(t *testing.T) {
 		c.HasBeenStartedBefore = true
 		c.HasBeenStartedBefore = true
 	})
 	})
 
 
-	d.Start(t)
+	d.Start(t, "--iptables=false")
 
 
 	ctxTimeout, cancel := context.WithTimeout(ctx, 30*time.Second)
 	ctxTimeout, cancel := context.WithTimeout(ctx, 30*time.Second)
 	defer cancel()
 	defer cancel()
@@ -256,7 +256,7 @@ func TestHardRestartWhenContainerIsRunning(t *testing.T) {
 		})
 		})
 	}
 	}
 
 
-	d.Start(t)
+	d.Start(t, "--iptables=false")
 
 
 	t.Run("RestartPolicy=none", func(t *testing.T) {
 	t.Run("RestartPolicy=none", func(t *testing.T) {
 		ctx, cancel := context.WithTimeout(ctx, 5*time.Second)
 		ctx, cancel := context.WithTimeout(ctx, 5*time.Second)

+ 1 - 1
integration/container/daemon_test.go

@@ -43,7 +43,7 @@ func TestContainerKillOnDaemonStart(t *testing.T) {
 	assert.Assert(t, inspect.State.Running)
 	assert.Assert(t, inspect.State.Running)
 
 
 	assert.NilError(t, d.Kill())
 	assert.NilError(t, d.Kill())
-	d.Start(t)
+	d.Start(t, "--iptables=false")
 
 
 	inspect, err = client.ContainerInspect(ctx, id)
 	inspect, err = client.ContainerInspect(ctx, id)
 	assert.Check(t, is.Nil(err))
 	assert.Check(t, is.Nil(err))

+ 1 - 1
integration/image/import_test.go

@@ -27,7 +27,7 @@ func TestImportExtremelyLargeImageWorks(t *testing.T) {
 
 
 	// Spin up a new daemon, so that we can run this test in parallel (it's a slow test)
 	// Spin up a new daemon, so that we can run this test in parallel (it's a slow test)
 	d := daemon.New(t)
 	d := daemon.New(t)
-	d.Start(t)
+	d.Start(t, "--iptables=false")
 	defer d.Stop(t)
 	defer d.Stop(t)
 
 
 	client := d.NewClientT(t)
 	client := d.NewClientT(t)