github.com/jogo/docker@v1.7.0-rc1/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  
    36  func (s *DockerSuite) TestKillDifferentUserContainer(c *check.C) {
    37  	runCmd := exec.Command(dockerBinary, "run", "-u", "daemon", "-d", "busybox", "top")
    38  	out, _, err := runCommandWithOutput(runCmd)
    39  	if err != nil {
    40  		c.Fatal(out, err)
    41  	}
    42  
    43  	cleanedContainerID := strings.TrimSpace(out)
    44  	c.Assert(waitRun(cleanedContainerID), check.IsNil)
    45  
    46  	killCmd := exec.Command(dockerBinary, "kill", cleanedContainerID)
    47  	if out, _, err = runCommandWithOutput(killCmd); err != nil {
    48  		c.Fatalf("failed to kill container: %s, %v", out, err)
    49  	}
    50  
    51  	listRunningContainersCmd := exec.Command(dockerBinary, "ps", "-q")
    52  	out, _, err = runCommandWithOutput(listRunningContainersCmd)
    53  	if err != nil {
    54  		c.Fatalf("failed to list running containers: %s, %v", out, err)
    55  	}
    56  
    57  	if strings.Contains(out, cleanedContainerID) {
    58  		c.Fatal("killed container is still running")
    59  	}
    60  }