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