diff --git a/integration-cli/docker_cli_restart_test.go b/integration-cli/docker_cli_restart_test.go index b0f63d6e18..7b97c0725b 100644 --- a/integration-cli/docker_cli_restart_test.go +++ b/integration-cli/docker_cli_restart_test.go @@ -214,3 +214,33 @@ func TestRestartPolicyOnFailure(t *testing.T) { logDone("restart - recording restart policy name for --restart=on-failure") } + +// a good container with --restart=on-failure:3 +// MaximumRetryCount!=0; RestartCount=0 +func TestContainerRestartwithGoodContainer(t *testing.T) { + defer deleteAllContainers() + out, err := exec.Command(dockerBinary, "run", "-d", "--restart=on-failure:3", "busybox", "true").CombinedOutput() + if err != nil { + t.Fatal(string(out), err) + } + id := strings.TrimSpace(string(out)) + if err := waitInspect(id, "{{ .State.Restarting }} {{ .State.Running }}", "false false", 5); err != nil { + t.Fatal(err) + } + count, err := inspectField(id, "RestartCount") + if err != nil { + t.Fatal(err) + } + if count != "0" { + t.Fatalf("Container was restarted %s times, expected %d", count, 0) + } + MaximumRetryCount, err := inspectField(id, "HostConfig.RestartPolicy.MaximumRetryCount") + if err != nil { + t.Fatal(err) + } + if MaximumRetryCount != "3" { + t.Fatalf("Container Maximum Retry Count is %s, expected %s", MaximumRetryCount, "3") + } + + logDone("restart - for a good container with restart policy, MaximumRetryCount is not 0 and RestartCount is 0") +}