docker kill should return error if container is not running.

Assuming that docker kill is trying to actually kill the container
is a mistake.  If the container is not running we should report it
back to the caller as a error.

Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
Docker-DCO-1.1-Signed-off-by: Regan McCooey <rmccooey27@aol.com> (github: rmccooey27)

Docker-DCO-1.1-Signed-off-by: Regan McCooey <rmccooey27@aol.com> (github: rhatdan)
This commit is contained in:
Regan McCooey
2015-04-14 00:17:07 +09:00
committed by Dan Walsh
parent 300a12f9aa
commit c92377e300
3 changed files with 24 additions and 2 deletions

View File

@@ -40,6 +40,28 @@ func (s *DockerSuite) TestKillContainer(c *check.C) {
}
func (s *DockerSuite) TestKillofStoppedContainer(c *check.C) {
runCmd := exec.Command(dockerBinary, "run", "-d", "busybox", "top")
out, _, err := runCommandWithOutput(runCmd)
if err != nil {
c.Fatal(out, err)
}
cleanedContainerID := strings.TrimSpace(out)
stopCmd := exec.Command(dockerBinary, "stop", cleanedContainerID)
if out, _, err = runCommandWithOutput(stopCmd); err != nil {
c.Fatalf("failed to stop container: %s, %v", out, err)
}
killCmd := exec.Command(dockerBinary, "kill", "-s", "30", cleanedContainerID)
if _, _, err = runCommandWithOutput(killCmd); err == nil {
c.Fatalf("kill succeeded on a stopped container")
}
deleteContainer(cleanedContainerID)
}
func (s *DockerSuite) TestKillDifferentUserContainer(c *check.C) {
runCmd := exec.Command(dockerBinary, "run", "-u", "daemon", "-d", "busybox", "top")
out, _, err := runCommandWithOutput(runCmd)