github.com/squaremo/docker@v1.3.2-0.20150516120342-42cfc9554972/integration-cli/docker_cli_pause_test.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "os/exec" 6 "strings" 7 8 "github.com/go-check/check" 9 ) 10 11 func (s *DockerSuite) TestPause(c *check.C) { 12 defer unpauseAllContainers() 13 14 name := "testeventpause" 15 out, _ := dockerCmd(c, "images", "-q") 16 image := strings.Split(out, "\n")[0] 17 dockerCmd(c, "run", "-d", "--name", name, image, "top") 18 19 dockerCmd(c, "pause", name) 20 pausedContainers, err := getSliceOfPausedContainers() 21 if err != nil { 22 c.Fatalf("error thrown while checking if containers were paused: %v", err) 23 } 24 if len(pausedContainers) != 1 { 25 c.Fatalf("there should be one paused container and not %d", len(pausedContainers)) 26 } 27 28 dockerCmd(c, "unpause", name) 29 30 eventsCmd := exec.Command(dockerBinary, "events", "--since=0", fmt.Sprintf("--until=%d", daemonTime(c).Unix())) 31 out, _, _ = runCommandWithOutput(eventsCmd) 32 events := strings.Split(out, "\n") 33 if len(events) <= 1 { 34 c.Fatalf("Missing expected event") 35 } 36 37 pauseEvent := strings.Fields(events[len(events)-3]) 38 unpauseEvent := strings.Fields(events[len(events)-2]) 39 40 if pauseEvent[len(pauseEvent)-1] != "pause" { 41 c.Fatalf("event should be pause, not %#v", pauseEvent) 42 } 43 if unpauseEvent[len(unpauseEvent)-1] != "unpause" { 44 c.Fatalf("event should be unpause, not %#v", unpauseEvent) 45 } 46 47 } 48 49 func (s *DockerSuite) TestPauseMultipleContainers(c *check.C) { 50 defer unpauseAllContainers() 51 52 containers := []string{ 53 "testpausewithmorecontainers1", 54 "testpausewithmorecontainers2", 55 } 56 out, _ := dockerCmd(c, "images", "-q") 57 image := strings.Split(out, "\n")[0] 58 for _, name := range containers { 59 dockerCmd(c, "run", "-d", "--name", name, image, "top") 60 } 61 dockerCmd(c, append([]string{"pause"}, containers...)...) 62 pausedContainers, err := getSliceOfPausedContainers() 63 if err != nil { 64 c.Fatalf("error thrown while checking if containers were paused: %v", err) 65 } 66 if len(pausedContainers) != len(containers) { 67 c.Fatalf("there should be %d paused container and not %d", len(containers), len(pausedContainers)) 68 } 69 70 dockerCmd(c, append([]string{"unpause"}, containers...)...) 71 72 eventsCmd := exec.Command(dockerBinary, "events", "--since=0", fmt.Sprintf("--until=%d", daemonTime(c).Unix())) 73 out, _, _ = runCommandWithOutput(eventsCmd) 74 events := strings.Split(out, "\n") 75 if len(events) <= len(containers)*3-2 { 76 c.Fatalf("Missing expected event") 77 } 78 79 pauseEvents := make([][]string, len(containers)) 80 unpauseEvents := make([][]string, len(containers)) 81 for i := range containers { 82 pauseEvents[i] = strings.Fields(events[len(events)-len(containers)*2-1+i]) 83 unpauseEvents[i] = strings.Fields(events[len(events)-len(containers)-1+i]) 84 } 85 86 for _, pauseEvent := range pauseEvents { 87 if pauseEvent[len(pauseEvent)-1] != "pause" { 88 c.Fatalf("event should be pause, not %#v", pauseEvent) 89 } 90 } 91 for _, unpauseEvent := range unpauseEvents { 92 if unpauseEvent[len(unpauseEvent)-1] != "unpause" { 93 c.Fatalf("event should be unpause, not %#v", unpauseEvent) 94 } 95 } 96 97 }