github.com/Prakhar-Agarwal-byte/moby@v0.0.0-20231027092010-a14e3e8ab87e/integration/container/links_linux_test.go (about) 1 package container // import "github.com/Prakhar-Agarwal-byte/moby/integration/container" 2 3 import ( 4 "os" 5 "testing" 6 7 containertypes "github.com/Prakhar-Agarwal-byte/moby/api/types/container" 8 "github.com/Prakhar-Agarwal-byte/moby/api/types/filters" 9 "github.com/Prakhar-Agarwal-byte/moby/integration/internal/container" 10 "gotest.tools/v3/assert" 11 is "gotest.tools/v3/assert/cmp" 12 "gotest.tools/v3/skip" 13 ) 14 15 func TestLinksEtcHostsContentMatch(t *testing.T) { 16 skip.If(t, testEnv.IsRemoteDaemon) 17 skip.If(t, testEnv.IsRootless, "rootless mode has different view of /etc/hosts") 18 19 hosts, err := os.ReadFile("/etc/hosts") 20 skip.If(t, os.IsNotExist(err)) 21 22 ctx := setupTest(t) 23 24 apiClient := testEnv.APIClient() 25 26 cID := container.Run(ctx, t, apiClient, container.WithNetworkMode("host")) 27 res, err := container.Exec(ctx, apiClient, cID, []string{"cat", "/etc/hosts"}) 28 assert.NilError(t, err) 29 assert.Assert(t, is.Len(res.Stderr(), 0)) 30 assert.Equal(t, 0, res.ExitCode) 31 32 assert.Check(t, is.Equal(string(hosts), res.Stdout())) 33 } 34 35 func TestLinksContainerNames(t *testing.T) { 36 skip.If(t, testEnv.DaemonInfo.OSType == "windows") 37 38 ctx := setupTest(t) 39 apiClient := testEnv.APIClient() 40 41 containerA := "first_" + t.Name() 42 containerB := "second_" + t.Name() 43 container.Run(ctx, t, apiClient, container.WithName(containerA)) 44 container.Run(ctx, t, apiClient, container.WithName(containerB), container.WithLinks(containerA+":"+containerA)) 45 46 containers, err := apiClient.ContainerList(ctx, containertypes.ListOptions{ 47 Filters: filters.NewArgs(filters.Arg("name", containerA)), 48 }) 49 assert.NilError(t, err) 50 assert.Check(t, is.Equal(1, len(containers))) 51 assert.Check(t, is.DeepEqual([]string{"/" + containerA, "/" + containerB + "/" + containerA}, containers[0].Names)) 52 }