github.com/containers/libpod@v1.9.4-0.20220419124438-4284fd425507/test/e2e/pod_pod_namespaces.go (about)

     1  // +build !remoteclient
     2  
     3  package integration
     4  
     5  import (
     6  	"fmt"
     7  	"os"
     8  
     9  	. "github.com/containers/libpod/test/utils"
    10  	. "github.com/onsi/ginkgo"
    11  	. "github.com/onsi/gomega"
    12  )
    13  
    14  var _ = Describe("Podman pod create", func() {
    15  	var (
    16  		tempdir    string
    17  		err        error
    18  		podmanTest *PodmanTestIntegration
    19  	)
    20  
    21  	BeforeEach(func() {
    22  		tempdir, err = CreateTempDirInTempDir()
    23  		if err != nil {
    24  			os.Exit(1)
    25  		}
    26  		podmanTest = PodmanTestCreate(tempdir)
    27  		podmanTest.Setup()
    28  		podmanTest.SeedImages()
    29  	})
    30  
    31  	AfterEach(func() {
    32  		podmanTest.CleanupPod()
    33  		f := CurrentGinkgoTestDescription()
    34  		processTestResult(f)
    35  
    36  	})
    37  
    38  	It("podman pod container share Namespaces", func() {
    39  		session := podmanTest.Podman([]string{"pod", "create"})
    40  		session.WaitWithDefaultTimeout()
    41  		Expect(session.ExitCode()).To(Equal(0))
    42  		podID := session.OutputToString()
    43  
    44  		session = podmanTest.Podman([]string{"pod", "start", podID})
    45  		session.WaitWithDefaultTimeout()
    46  		Expect(session.ExitCode()).To(Equal(0))
    47  
    48  		session = podmanTest.Podman([]string{"run", "--pod", podID, "-d", ALPINE, "top"})
    49  		session.WaitWithDefaultTimeout()
    50  		Expect(session.ExitCode()).To(Equal(0))
    51  
    52  		check := podmanTest.Podman([]string{"ps", "-a", "--ns", "--format", "{{.IPC}} {{.UTS}} {{.NET}}"})
    53  		check.WaitWithDefaultTimeout()
    54  		Expect(check.ExitCode()).To(Equal(0))
    55  		outputArray := check.OutputToStringArray()
    56  		Expect(len(outputArray)).To(Equal(2))
    57  
    58  		NAMESPACE1 := outputArray[0]
    59  		fmt.Println("NAMESPACE1:", NAMESPACE1)
    60  		NAMESPACE2 := outputArray[1]
    61  		fmt.Println("NAMESPACE2:", NAMESPACE2)
    62  		Expect(NAMESPACE1).To(Equal(NAMESPACE2))
    63  	})
    64  
    65  	It("podman pod container dontshare PIDNS", func() {
    66  		session := podmanTest.Podman([]string{"pod", "create"})
    67  		session.WaitWithDefaultTimeout()
    68  		Expect(session.ExitCode()).To(Equal(0))
    69  		podID := session.OutputToString()
    70  
    71  		session = podmanTest.Podman([]string{"pod", "start", podID})
    72  		session.WaitWithDefaultTimeout()
    73  		Expect(session.ExitCode()).To(Equal(0))
    74  
    75  		session = podmanTest.Podman([]string{"run", "--pod", podID, "-d", ALPINE, "top"})
    76  		session.WaitWithDefaultTimeout()
    77  		Expect(session.ExitCode()).To(Equal(0))
    78  
    79  		check := podmanTest.Podman([]string{"ps", "-a", "--ns", "--format", "{{.PIDNS}}"})
    80  		check.WaitWithDefaultTimeout()
    81  		Expect(check.ExitCode()).To(Equal(0))
    82  		outputArray := check.OutputToStringArray()
    83  		Expect(len(outputArray)).To(Equal(2))
    84  
    85  		NAMESPACE1 := outputArray[0]
    86  		fmt.Println("NAMESPACE1:", NAMESPACE1)
    87  		NAMESPACE2 := outputArray[1]
    88  		fmt.Println("NAMESPACE2:", NAMESPACE2)
    89  		Expect(NAMESPACE1).To(Not(Equal(NAMESPACE2)))
    90  	})
    91  
    92  })