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