github.com/codemac/docker@v1.2.1-0.20150518222241-6a18412d5b9c/integration-cli/docker_cli_kill_test.go (about)

     1  package main
     2  
     3  import (
     4  	"os/exec"
     5  	"strings"
     6  
     7  	"github.com/go-check/check"
     8  )
     9  
    10  func (s *DockerSuite) TestKillContainer(c *check.C) {
    11  	runCmd := exec.Command(dockerBinary, "run", "-d", "busybox", "top")
    12  	out, _, err := runCommandWithOutput(runCmd)
    13  	if err != nil {
    14  		c.Fatal(out, err)
    15  	}
    16  
    17  	cleanedContainerID := strings.TrimSpace(out)
    18  	c.Assert(waitRun(cleanedContainerID), check.IsNil)
    19  
    20  	killCmd := exec.Command(dockerBinary, "kill", cleanedContainerID)
    21  	if out, _, err = runCommandWithOutput(killCmd); err != nil {
    22  		c.Fatalf("failed to kill container: %s, %v", out, err)
    23  	}
    24  
    25  	listRunningContainersCmd := exec.Command(dockerBinary, "ps", "-q")
    26  	out, _, err = runCommandWithOutput(listRunningContainersCmd)
    27  	if err != nil {
    28  		c.Fatalf("failed to list running containers: %s, %v", out, err)
    29  	}
    30  
    31  	if strings.Contains(out, cleanedContainerID) {
    32  		c.Fatal("killed container is still running")
    33  	}
    34  
    35  	deleteContainer(cleanedContainerID)
    36  
    37  }
    38  
    39  func (s *DockerSuite) TestKillDifferentUserContainer(c *check.C) {
    40  	runCmd := exec.Command(dockerBinary, "run", "-u", "daemon", "-d", "busybox", "top")
    41  	out, _, err := runCommandWithOutput(runCmd)
    42  	if err != nil {
    43  		c.Fatal(out, err)
    44  	}
    45  
    46  	cleanedContainerID := strings.TrimSpace(out)
    47  	c.Assert(waitRun(cleanedContainerID), check.IsNil)
    48  
    49  	killCmd := exec.Command(dockerBinary, "kill", cleanedContainerID)
    50  	if out, _, err = runCommandWithOutput(killCmd); err != nil {
    51  		c.Fatalf("failed to kill container: %s, %v", out, err)
    52  	}
    53  
    54  	listRunningContainersCmd := exec.Command(dockerBinary, "ps", "-q")
    55  	out, _, err = runCommandWithOutput(listRunningContainersCmd)
    56  	if err != nil {
    57  		c.Fatalf("failed to list running containers: %s, %v", out, err)
    58  	}
    59  
    60  	if strings.Contains(out, cleanedContainerID) {
    61  		c.Fatal("killed container is still running")
    62  	}
    63  
    64  	deleteContainer(cleanedContainerID)
    65  
    66  }