Browse Source

Merge pull request #36259 from yongtang/02082018-kill_test

Migrate TestKillDifferentUserContainer to api test
Yong Tang 7 years ago
parent
commit
2d97f5e780
2 changed files with 18 additions and 25 deletions
  1. 0 25
      integration-cli/docker_cli_kill_test.go
  2. 18 0
      integration/container/kill_test.go

+ 0 - 25
integration-cli/docker_cli_kill_test.go

@@ -1,25 +0,0 @@
-package main
-
-import (
-	"strings"
-	"time"
-
-	"github.com/docker/docker/integration-cli/checker"
-	"github.com/docker/docker/integration-cli/cli"
-	"github.com/go-check/check"
-)
-
-func (s *DockerSuite) TestKillDifferentUserContainer(c *check.C) {
-	// TODO Windows: Windows does not yet support -u (Feb 2016).
-	testRequires(c, DaemonIsLinux)
-	out := cli.DockerCmd(c, "run", "-u", "daemon", "-d", "busybox", "top").Combined()
-	cleanedContainerID := strings.TrimSpace(out)
-	cli.WaitRun(c, cleanedContainerID)
-
-	cli.DockerCmd(c, "kill", cleanedContainerID)
-	cli.WaitExited(c, cleanedContainerID, 10*time.Second)
-
-	out = cli.DockerCmd(c, "ps", "-q").Combined()
-	c.Assert(out, checker.Not(checker.Contains), cleanedContainerID, check.Commentf("killed container is still running"))
-
-}

+ 18 - 0
integration/container/kill_test.go

@@ -175,3 +175,21 @@ func TestKillStoppedContainerAPIPre120(t *testing.T) {
 	err = client.ContainerKill(ctx, c.ID, "SIGKILL")
 	require.NoError(t, err)
 }
+
+func TestKillDifferentUserContainer(t *testing.T) {
+	// TODO Windows: Windows does not yet support -u (Feb 2016).
+	skip.If(t, testEnv.OSType != "linux", "User containers (container.Config.User) are not yet supported on %q platform", testEnv.OSType)
+
+	defer setupTest(t)()
+	ctx := context.Background()
+	client := request.NewAPIClient(t, client.WithVersion("1.19"))
+
+	cID := runSimpleContainer(ctx, t, client, "", func(config *container.Config, hostConfig *container.HostConfig, networkingConfig *network.NetworkingConfig) {
+		config.User = "daemon"
+	})
+	poll.WaitOn(t, containerIsInState(ctx, client, cID, "running"), poll.WithDelay(100*time.Millisecond))
+
+	err := client.ContainerKill(ctx, cID, "SIGKILL")
+	require.NoError(t, err)
+	poll.WaitOn(t, containerIsInState(ctx, client, cID, "exited"), poll.WithDelay(100*time.Millisecond))
+}