package container // import "github.com/docker/docker/integration/container" import ( "context" "os" "testing" "time" "github.com/docker/docker/integration/internal/container" "gotest.tools/v3/assert" "gotest.tools/v3/poll" "gotest.tools/v3/skip" ) func TestPidHost(t *testing.T) { skip.If(t, testEnv.DaemonInfo.OSType != "linux") skip.If(t, testEnv.IsRemoteDaemon()) hostPid, err := os.Readlink("/proc/1/ns/pid") assert.NilError(t, err) defer setupTest(t)() client := testEnv.APIClient() ctx := context.Background() cID := container.Run(ctx, t, client, func(c *container.TestContainerConfig) { c.HostConfig.PidMode = "host" }) poll.WaitOn(t, container.IsInState(ctx, client, cID, "running"), poll.WithDelay(100*time.Millisecond)) cPid := container.GetContainerNS(ctx, t, client, cID, "pid") assert.Assert(t, hostPid == cPid) cID = container.Run(ctx, t, client) poll.WaitOn(t, container.IsInState(ctx, client, cID, "running"), poll.WithDelay(100*time.Millisecond)) cPid = container.GetContainerNS(ctx, t, client, cID, "pid") assert.Assert(t, hostPid != cPid) }