github.com/jiasir/docker@v1.3.3-0.20170609024000-252e610103e7/integration-cli/docker_cli_pause_test.go (about) 1 package main 2 3 import ( 4 "strings" 5 6 "github.com/docker/docker/integration-cli/checker" 7 "github.com/docker/docker/integration-cli/cli" 8 "github.com/go-check/check" 9 ) 10 11 func (s *DockerSuite) TestPause(c *check.C) { 12 testRequires(c, IsPausable) 13 14 name := "testeventpause" 15 runSleepingContainer(c, "-d", "--name", name) 16 17 cli.DockerCmd(c, "pause", name) 18 pausedContainers := strings.Fields( 19 cli.DockerCmd(c, "ps", "-f", "status=paused", "-q", "-a").Combined(), 20 ) 21 c.Assert(len(pausedContainers), checker.Equals, 1) 22 23 cli.DockerCmd(c, "unpause", name) 24 25 out := cli.DockerCmd(c, "events", "--since=0", "--until", daemonUnixTime(c)).Combined() 26 events := strings.Split(strings.TrimSpace(out), "\n") 27 actions := eventActionsByIDAndType(c, events, name, "container") 28 29 c.Assert(actions[len(actions)-2], checker.Equals, "pause") 30 c.Assert(actions[len(actions)-1], checker.Equals, "unpause") 31 } 32 33 func (s *DockerSuite) TestPauseMultipleContainers(c *check.C) { 34 testRequires(c, IsPausable) 35 36 containers := []string{ 37 "testpausewithmorecontainers1", 38 "testpausewithmorecontainers2", 39 } 40 for _, name := range containers { 41 runSleepingContainer(c, "-d", "--name", name) 42 } 43 cli.DockerCmd(c, append([]string{"pause"}, containers...)...) 44 pausedContainers := strings.Fields( 45 cli.DockerCmd(c, "ps", "-f", "status=paused", "-q", "-a").Combined(), 46 ) 47 c.Assert(len(pausedContainers), checker.Equals, len(containers)) 48 49 cli.DockerCmd(c, append([]string{"unpause"}, containers...)...) 50 51 out := cli.DockerCmd(c, "events", "--since=0", "--until", daemonUnixTime(c)).Combined() 52 events := strings.Split(strings.TrimSpace(out), "\n") 53 54 for _, name := range containers { 55 actions := eventActionsByIDAndType(c, events, name, "container") 56 57 c.Assert(actions[len(actions)-2], checker.Equals, "pause") 58 c.Assert(actions[len(actions)-1], checker.Equals, "unpause") 59 } 60 } 61 62 func (s *DockerSuite) TestPauseFailsOnWindowsServerContainers(c *check.C) { 63 testRequires(c, DaemonIsWindows, NotPausable) 64 runSleepingContainer(c, "-d", "--name=test") 65 out, _, _ := dockerCmdWithError("pause", "test") 66 c.Assert(out, checker.Contains, "cannot pause Windows Server Containers") 67 }