docker_cli_stats_test.go 701 B

123456789101112131415161718192021222324252627282930313233
  1. package main
  2. import (
  3. "os/exec"
  4. "strings"
  5. "time"
  6. "github.com/go-check/check"
  7. )
  8. func (s *DockerSuite) TestCliStatsNoStream(c *check.C) {
  9. out, _ := dockerCmd(c, "run", "-d", "busybox", "top")
  10. id := strings.TrimSpace(out)
  11. if err := waitRun(id); err != nil {
  12. c.Fatalf("error waiting for container to start: %v", err)
  13. }
  14. statsCmd := exec.Command(dockerBinary, "stats", "--no-stream", id)
  15. chErr := make(chan error)
  16. go func() {
  17. chErr <- statsCmd.Run()
  18. }()
  19. select {
  20. case err := <-chErr:
  21. if err != nil {
  22. c.Fatalf("Error running stats: %v", err)
  23. }
  24. case <-time.After(3 * time.Second):
  25. statsCmd.Process.Kill()
  26. c.Fatalf("stats did not return immediately when not streaming")
  27. }
  28. }