integration-cli/docker_api_stats_unix_test.go
8ba8189e
 // +build !windows
 
 package main
 
 import (
 	"encoding/json"
 	"fmt"
 	"net/http"
 
91e197d6
 	"github.com/docker/docker/api/types"
33968e6c
 	"github.com/docker/docker/integration-cli/checker"
d69d4799
 	"github.com/docker/docker/integration-cli/request"
8ba8189e
 	"github.com/go-check/check"
 )
 
7fb7a477
 func (s *DockerSuite) TestAPIStatsContainerGetMemoryLimit(c *check.C) {
8ba8189e
 	testRequires(c, DaemonIsLinux, memoryLimitSupport)
 
b11ba123
 	resp, body, err := request.Get("/info", request.JSON)
8ba8189e
 	c.Assert(err, checker.IsNil)
 	c.Assert(resp.StatusCode, checker.Equals, http.StatusOK)
 	var info types.Info
 	err = json.NewDecoder(body).Decode(&info)
 	c.Assert(err, checker.IsNil)
 	body.Close()
 
 	// don't set a memory limit, the memory limit should be system memory
 	conName := "foo"
 	dockerCmd(c, "run", "-d", "--name", conName, "busybox", "top")
 	c.Assert(waitRun(conName), checker.IsNil)
 
b11ba123
 	resp, body, err = request.Get(fmt.Sprintf("/containers/%s/stats?stream=false", conName))
8ba8189e
 	c.Assert(err, checker.IsNil)
 	c.Assert(resp.StatusCode, checker.Equals, http.StatusOK)
 	c.Assert(resp.Header.Get("Content-Type"), checker.Equals, "application/json")
 
 	var v *types.Stats
 	err = json.NewDecoder(body).Decode(&v)
 	c.Assert(err, checker.IsNil)
 	body.Close()
 	c.Assert(fmt.Sprintf("%d", v.MemoryStats.Limit), checker.Equals, fmt.Sprintf("%d", info.MemTotal))
 }