mirror of
https://github.com/containers/podman.git
synced 2025-05-21 00:56:36 +08:00
test/e2e/run_userns_test.go: new file
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com> Closes: #690 Approved by: mheon
This commit is contained in:

committed by
Atomic Bot

parent
522a7197a8
commit
769f8f2d72
2
.papr.sh
2
.papr.sh
@ -30,5 +30,5 @@ make TAGS="${TAGS}" install PREFIX=/usr ETCDIR=/etc
|
|||||||
make TAGS="${TAGS}" test-binaries
|
make TAGS="${TAGS}" test-binaries
|
||||||
|
|
||||||
# Run the ginkgo integration tests
|
# Run the ginkgo integration tests
|
||||||
GOPATH=/go make localintegration
|
SKIP_USERNS=1 GOPATH=/go make localintegration
|
||||||
exit 0
|
exit 0
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
language: go
|
language: go
|
||||||
|
|
||||||
sudo: required
|
sudo: required
|
||||||
|
dist: trusty
|
||||||
|
|
||||||
services:
|
services:
|
||||||
- docker
|
- docker
|
||||||
|
@ -52,7 +52,7 @@ RUN mkdir -p /usr/src/criu \
|
|||||||
&& rm -rf /usr/src/criu
|
&& rm -rf /usr/src/criu
|
||||||
|
|
||||||
# Install runc
|
# Install runc
|
||||||
ENV RUNC_COMMIT 84a082bfef6f932de921437815355186db37aeb1
|
ENV RUNC_COMMIT 0cbfd8392fff2462701507296081e835b3b0b99a
|
||||||
RUN set -x \
|
RUN set -x \
|
||||||
&& export GOPATH="$(mktemp -d)" \
|
&& export GOPATH="$(mktemp -d)" \
|
||||||
&& git clone https://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc" \
|
&& git clone https://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc" \
|
||||||
|
60
test/e2e/run_userns_test.go
Normal file
60
test/e2e/run_userns_test.go
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
package integration
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os"
|
||||||
|
|
||||||
|
. "github.com/onsi/ginkgo"
|
||||||
|
. "github.com/onsi/gomega"
|
||||||
|
)
|
||||||
|
|
||||||
|
var _ = Describe("Podman UserNS support", func() {
|
||||||
|
var (
|
||||||
|
tempdir string
|
||||||
|
err error
|
||||||
|
podmanTest PodmanTest
|
||||||
|
)
|
||||||
|
|
||||||
|
BeforeEach(func() {
|
||||||
|
tempdir, err = CreateTempDirInTempDir()
|
||||||
|
if err != nil {
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
podmanTest = PodmanCreate(tempdir)
|
||||||
|
podmanTest.RestoreAllArtifacts()
|
||||||
|
})
|
||||||
|
|
||||||
|
AfterEach(func() {
|
||||||
|
podmanTest.Cleanup()
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
It("podman uidmapping and gidmapping", func() {
|
||||||
|
if os.Getenv("SKIP_USERNS") != "" {
|
||||||
|
Skip("Skip userns tests.")
|
||||||
|
}
|
||||||
|
if _, err := os.Stat("/proc/self/uid_map"); err != nil {
|
||||||
|
Skip("User namespaces not supported.")
|
||||||
|
}
|
||||||
|
|
||||||
|
session := podmanTest.Podman([]string{"run", "--uidmap=0:1:70000", "--gidmap=0:20000:70000", "busybox", "echo", "hello"})
|
||||||
|
session.WaitWithDefaultTimeout()
|
||||||
|
Expect(session.ExitCode()).To(Equal(0))
|
||||||
|
ok, _ := session.GrepString("hello")
|
||||||
|
Expect(ok).To(BeTrue())
|
||||||
|
})
|
||||||
|
|
||||||
|
It("podman uidmapping and gidmapping --net=host", func() {
|
||||||
|
if os.Getenv("SKIP_USERNS") != "" {
|
||||||
|
Skip("Skip userns tests.")
|
||||||
|
}
|
||||||
|
if _, err := os.Stat("/proc/self/uid_map"); err != nil {
|
||||||
|
Skip("User namespaces not supported.")
|
||||||
|
}
|
||||||
|
session := podmanTest.Podman([]string{"run", "--net=host", "--uidmap=0:1:70000", "--gidmap=0:20000:70000", "busybox", "echo", "hello"})
|
||||||
|
session.WaitWithDefaultTimeout()
|
||||||
|
Expect(session.ExitCode()).To(Equal(0))
|
||||||
|
ok, _ := session.GrepString("hello")
|
||||||
|
Expect(ok).To(BeTrue())
|
||||||
|
})
|
||||||
|
|
||||||
|
})
|
Reference in New Issue
Block a user