docker_cli_stats_test.go 669 B

1234567891011121314151617181920212223242526272829303132
  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. testRequires(c, DaemonIsLinux)
  10. out, _ := dockerCmd(c, "run", "-d", "busybox", "top")
  11. id := strings.TrimSpace(out)
  12. c.Assert(waitRun(id), check.IsNil)
  13. statsCmd := exec.Command(dockerBinary, "stats", "--no-stream", id)
  14. chErr := make(chan error)
  15. go func() {
  16. chErr <- statsCmd.Run()
  17. }()
  18. select {
  19. case err := <-chErr:
  20. if err != nil {
  21. c.Fatalf("Error running stats: %v", err)
  22. }
  23. case <-time.After(3 * time.Second):
  24. statsCmd.Process.Kill()
  25. c.Fatalf("stats did not return immediately when not streaming")
  26. }
  27. }