docker_cli_pause_test.go 2.6 KB

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