github.com/rumpl/bof@v23.0.0-rc.2+incompatible/integration/container/inspect_test.go (about)

     1  package container // import "github.com/docker/docker/integration/container"
     2  
     3  import (
     4  	"context"
     5  	"encoding/json"
     6  	"strings"
     7  	"testing"
     8  	"time"
     9  
    10  	"github.com/docker/docker/client"
    11  	"github.com/docker/docker/integration/internal/container"
    12  	"github.com/docker/docker/testutil/request"
    13  	"gotest.tools/v3/assert"
    14  	is "gotest.tools/v3/assert/cmp"
    15  	"gotest.tools/v3/poll"
    16  	"gotest.tools/v3/skip"
    17  )
    18  
    19  func TestInspectCpusetInConfigPre120(t *testing.T) {
    20  	skip.If(t, testEnv.DaemonInfo.OSType == "windows" || !testEnv.DaemonInfo.CPUSet)
    21  
    22  	defer setupTest(t)()
    23  	client := request.NewAPIClient(t, client.WithVersion("1.19"))
    24  	ctx := context.Background()
    25  
    26  	name := strings.ToLower(t.Name())
    27  	// Create container with up to-date-API
    28  	container.Run(ctx, t, request.NewAPIClient(t), container.WithName(name),
    29  		container.WithCmd("true"),
    30  		func(c *container.TestContainerConfig) {
    31  			c.HostConfig.Resources.CpusetCpus = "0"
    32  		},
    33  	)
    34  	poll.WaitOn(t, container.IsInState(ctx, client, name, "exited"), poll.WithDelay(100*time.Millisecond))
    35  
    36  	_, body, err := client.ContainerInspectWithRaw(ctx, name, false)
    37  	assert.NilError(t, err)
    38  
    39  	var inspectJSON map[string]interface{}
    40  	err = json.Unmarshal(body, &inspectJSON)
    41  	assert.NilError(t, err, "unable to unmarshal body for version 1.19: %s", err)
    42  
    43  	config, ok := inspectJSON["Config"]
    44  	assert.Check(t, is.Equal(true, ok), "Unable to find 'Config'")
    45  
    46  	cfg := config.(map[string]interface{})
    47  	_, ok = cfg["Cpuset"]
    48  	assert.Check(t, is.Equal(true, ok), "API version 1.19 expected to include Cpuset in 'Config'")
    49  }