github.com/goern/docker@v1.9.0-rc1/integration-cli/docker_cli_pause_test.go (about)

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