github.com/Prakhar-Agarwal-byte/moby@v0.0.0-20231027092010-a14e3e8ab87e/integration/container/inspect_test.go (about)

     1  package container // import "github.com/Prakhar-Agarwal-byte/moby/integration/container"
     2  
     3  import (
     4  	"encoding/json"
     5  	"strings"
     6  	"testing"
     7  	"time"
     8  
     9  	"github.com/Prakhar-Agarwal-byte/moby/client"
    10  	"github.com/Prakhar-Agarwal-byte/moby/integration/internal/container"
    11  	"github.com/Prakhar-Agarwal-byte/moby/testutil/request"
    12  	"gotest.tools/v3/assert"
    13  	is "gotest.tools/v3/assert/cmp"
    14  	"gotest.tools/v3/poll"
    15  	"gotest.tools/v3/skip"
    16  )
    17  
    18  func TestInspectCpusetInConfigPre120(t *testing.T) {
    19  	skip.If(t, testEnv.DaemonInfo.OSType == "windows" || !testEnv.DaemonInfo.CPUSet)
    20  
    21  	ctx := setupTest(t)
    22  	apiClient := request.NewAPIClient(t, client.WithVersion("1.19"))
    23  
    24  	name := strings.ToLower(t.Name())
    25  	// Create container with up to-date-API
    26  	container.Run(ctx, t, request.NewAPIClient(t), container.WithName(name),
    27  		container.WithCmd("true"),
    28  		func(c *container.TestContainerConfig) {
    29  			c.HostConfig.Resources.CpusetCpus = "0"
    30  		},
    31  	)
    32  	poll.WaitOn(t, container.IsInState(ctx, apiClient, name, "exited"), poll.WithDelay(100*time.Millisecond))
    33  
    34  	_, body, err := apiClient.ContainerInspectWithRaw(ctx, name, false)
    35  	assert.NilError(t, err)
    36  
    37  	var inspectJSON map[string]interface{}
    38  	err = json.Unmarshal(body, &inspectJSON)
    39  	assert.NilError(t, err, "unable to unmarshal body for version 1.19: %s", err)
    40  
    41  	config, ok := inspectJSON["Config"]
    42  	assert.Check(t, is.Equal(true, ok), "Unable to find 'Config'")
    43  
    44  	cfg := config.(map[string]interface{})
    45  	_, ok = cfg["Cpuset"]
    46  	assert.Check(t, is.Equal(true, ok), "API version 1.19 expected to include Cpuset in 'Config'")
    47  }
    48  
    49  func TestInspectAnnotations(t *testing.T) {
    50  	ctx := setupTest(t)
    51  	apiClient := request.NewAPIClient(t)
    52  
    53  	annotations := map[string]string{
    54  		"hello": "world",
    55  		"foo":   "bar",
    56  	}
    57  
    58  	name := strings.ToLower(t.Name())
    59  	id := container.Create(ctx, t, apiClient,
    60  		container.WithName(name),
    61  		container.WithCmd("true"),
    62  		func(c *container.TestContainerConfig) {
    63  			c.HostConfig.Annotations = annotations
    64  		},
    65  	)
    66  
    67  	inspect, err := apiClient.ContainerInspect(ctx, id)
    68  	assert.NilError(t, err)
    69  	assert.Check(t, is.DeepEqual(inspect.HostConfig.Annotations, annotations))
    70  }