github.com/jiasir/docker@v1.3.3-0.20170609024000-252e610103e7/integration-cli/docker_cli_update_test.go (about) 1 package main 2 3 import ( 4 "strings" 5 "time" 6 7 "github.com/docker/docker/integration-cli/checker" 8 "github.com/docker/docker/integration-cli/cli" 9 icmd "github.com/docker/docker/pkg/testutil/cmd" 10 "github.com/go-check/check" 11 ) 12 13 func (s *DockerSuite) TestUpdateRestartPolicy(c *check.C) { 14 out := cli.DockerCmd(c, "run", "-d", "--restart=on-failure:3", "busybox", "sh", "-c", "sleep 1 && false").Combined() 15 timeout := 60 * time.Second 16 if testEnv.DaemonPlatform() == "windows" { 17 timeout = 180 * time.Second 18 } 19 20 id := strings.TrimSpace(string(out)) 21 22 // update restart policy to on-failure:5 23 cli.DockerCmd(c, "update", "--restart=on-failure:5", id) 24 25 cli.WaitExited(c, id, timeout) 26 27 count := inspectField(c, id, "RestartCount") 28 c.Assert(count, checker.Equals, "5") 29 30 maximumRetryCount := inspectField(c, id, "HostConfig.RestartPolicy.MaximumRetryCount") 31 c.Assert(maximumRetryCount, checker.Equals, "5") 32 } 33 34 func (s *DockerSuite) TestUpdateRestartWithAutoRemoveFlag(c *check.C) { 35 out := runSleepingContainer(c, "--rm") 36 id := strings.TrimSpace(out) 37 38 // update restart policy for an AutoRemove container 39 cli.Docker(cli.Args("update", "--restart=always", id)).Assert(c, icmd.Expected{ 40 ExitCode: 1, 41 Err: "Restart policy cannot be updated because AutoRemove is enabled for the container", 42 }) 43 }