github.com/walkingsparrow/docker@v1.4.2-0.20151218153551-b708a2249bfa/integration-cli/docker_cli_pause_test.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "strings" 6 7 "github.com/docker/docker/pkg/integration/checker" 8 "github.com/go-check/check" 9 ) 10 11 func (s *DockerSuite) TestPause(c *check.C) { 12 testRequires(c, DaemonIsLinux) 13 defer unpauseAllContainers() 14 15 name := "testeventpause" 16 dockerCmd(c, "run", "-d", "--name", name, "busybox", "top") 17 18 dockerCmd(c, "pause", name) 19 pausedContainers, err := getSliceOfPausedContainers() 20 c.Assert(err, checker.IsNil) 21 c.Assert(len(pausedContainers), checker.Equals, 1) 22 23 dockerCmd(c, "unpause", name) 24 25 out, _ := dockerCmd(c, "events", "--since=0", fmt.Sprintf("--until=%d", daemonTime(c).Unix())) 26 events := strings.Split(out, "\n") 27 c.Assert(len(events) > 1, checker.Equals, true) 28 29 pauseEvent := strings.Fields(events[len(events)-3]) 30 unpauseEvent := strings.Fields(events[len(events)-2]) 31 32 c.Assert(pauseEvent[len(pauseEvent)-1], checker.Equals, "pause") 33 c.Assert(unpauseEvent[len(unpauseEvent)-1], checker.Equals, "unpause") 34 35 } 36 37 func (s *DockerSuite) TestPauseMultipleContainers(c *check.C) { 38 testRequires(c, DaemonIsLinux) 39 defer unpauseAllContainers() 40 41 containers := []string{ 42 "testpausewithmorecontainers1", 43 "testpausewithmorecontainers2", 44 } 45 for _, name := range containers { 46 dockerCmd(c, "run", "-d", "--name", name, "busybox", "top") 47 } 48 dockerCmd(c, append([]string{"pause"}, containers...)...) 49 pausedContainers, err := getSliceOfPausedContainers() 50 c.Assert(err, checker.IsNil) 51 c.Assert(len(pausedContainers), checker.Equals, len(containers)) 52 53 dockerCmd(c, append([]string{"unpause"}, containers...)...) 54 55 out, _ := dockerCmd(c, "events", "--since=0", fmt.Sprintf("--until=%d", daemonTime(c).Unix())) 56 events := strings.Split(out, "\n") 57 c.Assert(len(events) > len(containers)*3-2, checker.Equals, true) 58 59 pauseEvents := make([][]string, len(containers)) 60 unpauseEvents := make([][]string, len(containers)) 61 for i := range containers { 62 pauseEvents[i] = strings.Fields(events[len(events)-len(containers)*2-1+i]) 63 unpauseEvents[i] = strings.Fields(events[len(events)-len(containers)-1+i]) 64 } 65 66 for _, pauseEvent := range pauseEvents { 67 c.Assert(pauseEvent[len(pauseEvent)-1], checker.Equals, "pause") 68 } 69 for _, unpauseEvent := range unpauseEvents { 70 c.Assert(unpauseEvent[len(unpauseEvent)-1], checker.Equals, "unpause") 71 } 72 73 }