github.com/zhouyu0/docker-note@v0.0.0-20190722021225-b8d3825084db/integration/container/stats_test.go (about) 1 package container // import "github.com/docker/docker/integration/container" 2 3 import ( 4 "context" 5 "encoding/json" 6 "io" 7 "testing" 8 "time" 9 10 "github.com/docker/docker/api/types" 11 "github.com/docker/docker/integration/internal/container" 12 "gotest.tools/assert" 13 is "gotest.tools/assert/cmp" 14 "gotest.tools/poll" 15 "gotest.tools/skip" 16 ) 17 18 func TestStats(t *testing.T) { 19 skip.If(t, !testEnv.DaemonInfo.MemoryLimit) 20 21 defer setupTest(t)() 22 client := testEnv.APIClient() 23 ctx := context.Background() 24 25 info, err := client.Info(ctx) 26 assert.NilError(t, err) 27 28 cID := container.Run(t, ctx, client) 29 30 poll.WaitOn(t, container.IsInState(ctx, client, cID, "running"), poll.WithDelay(100*time.Millisecond)) 31 32 resp, err := client.ContainerStats(ctx, cID, false) 33 assert.NilError(t, err) 34 defer resp.Body.Close() 35 36 var v *types.Stats 37 err = json.NewDecoder(resp.Body).Decode(&v) 38 assert.NilError(t, err) 39 assert.Check(t, is.Equal(int64(v.MemoryStats.Limit), info.MemTotal)) 40 err = json.NewDecoder(resp.Body).Decode(&v) 41 assert.Assert(t, is.ErrorContains(err, ""), io.EOF) 42 }