github.com/rita33cool1/iot-system-gateway@v0.0.0-20200911033302-e65bde238cc5/docker-engine/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 "github.com/docker/docker/integration/internal/request" 13 "github.com/gotestyourself/gotestyourself/assert" 14 is "github.com/gotestyourself/gotestyourself/assert/cmp" 15 "github.com/gotestyourself/gotestyourself/poll" 16 "github.com/gotestyourself/gotestyourself/skip" 17 ) 18 19 func TestStats(t *testing.T) { 20 skip.If(t, !testEnv.DaemonInfo.MemoryLimit) 21 22 defer setupTest(t)() 23 client := request.NewAPIClient(t) 24 ctx := context.Background() 25 26 info, err := client.Info(ctx) 27 assert.NilError(t, err) 28 29 cID := container.Run(t, ctx, client) 30 31 poll.WaitOn(t, container.IsInState(ctx, client, cID, "running"), poll.WithDelay(100*time.Millisecond)) 32 33 resp, err := client.ContainerStats(ctx, cID, false) 34 assert.NilError(t, err) 35 defer resp.Body.Close() 36 37 var v *types.Stats 38 err = json.NewDecoder(resp.Body).Decode(&v) 39 assert.NilError(t, err) 40 assert.Check(t, is.Equal(int64(v.MemoryStats.Limit), info.MemTotal)) 41 err = json.NewDecoder(resp.Body).Decode(&v) 42 assert.Assert(t, is.ErrorContains(err, ""), io.EOF) 43 }