github.com/slene/docker@v1.8.0-rc1/integration-cli/docker_cli_stats_test.go (about)

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