summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/e2e/build_test.go10
-rw-r--r--test/e2e/generate_kube_test.go47
-rw-r--r--test/system/030-run.bats35
3 files changed, 76 insertions, 16 deletions
diff --git a/test/e2e/build_test.go b/test/e2e/build_test.go
index b4e400549..240ef1627 100644
--- a/test/e2e/build_test.go
+++ b/test/e2e/build_test.go
@@ -6,6 +6,7 @@ import (
"io/ioutil"
"os"
"path/filepath"
+ "runtime"
"strings"
. "github.com/containers/libpod/test/utils"
@@ -43,6 +44,15 @@ var _ = Describe("Podman build", func() {
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
+ iid := session.OutputToStringArray()[len(session.OutputToStringArray())-1]
+
+ // Verify that OS and Arch are being set
+ inspect := podmanTest.PodmanNoCache([]string{"inspect", iid})
+ inspect.WaitWithDefaultTimeout()
+ data := inspect.InspectImageJSON()
+ Expect(data[0].Os).To(Equal(runtime.GOOS))
+ Expect(data[0].Architecture).To(Equal(runtime.GOARCH))
+
session = podmanTest.PodmanNoCache([]string{"rmi", "alpine"})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
diff --git a/test/e2e/generate_kube_test.go b/test/e2e/generate_kube_test.go
index 603edbe6b..389f2c822 100644
--- a/test/e2e/generate_kube_test.go
+++ b/test/e2e/generate_kube_test.go
@@ -10,7 +10,7 @@ import (
"github.com/ghodss/yaml"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
- "k8s.io/api/core/v1"
+ v1 "k8s.io/api/core/v1"
)
var _ = Describe("Podman generate kube", func() {
@@ -69,6 +69,51 @@ var _ = Describe("Podman generate kube", func() {
Expect(numContainers).To(Equal(1))
})
+ It("podman generate service kube on container with --security-opt level", func() {
+ session := podmanTest.Podman([]string{"create", "--name", "test", "--security-opt", "label=level:s0:c100,c200", "alpine"})
+ session.WaitWithDefaultTimeout()
+ Expect(session.ExitCode()).To(Equal(0))
+
+ kube := podmanTest.Podman([]string{"generate", "kube", "test"})
+ kube.WaitWithDefaultTimeout()
+ Expect(kube.ExitCode()).To(Equal(0))
+
+ pod := new(v1.Pod)
+ err := yaml.Unmarshal(kube.Out.Contents(), pod)
+ Expect(err).To(BeNil())
+ Expect(kube.OutputToString()).To(ContainSubstring("level: s0:c100,c200"))
+ })
+
+ It("podman generate service kube on container with --security-opt disable", func() {
+ session := podmanTest.Podman([]string{"create", "--name", "test-disable", "--security-opt", "label=disable", "alpine"})
+ session.WaitWithDefaultTimeout()
+ Expect(session.ExitCode()).To(Equal(0))
+
+ kube := podmanTest.Podman([]string{"generate", "kube", "test-disable"})
+ kube.WaitWithDefaultTimeout()
+ Expect(kube.ExitCode()).To(Equal(0))
+
+ pod := new(v1.Pod)
+ err = yaml.Unmarshal(kube.Out.Contents(), pod)
+ Expect(err).To(BeNil())
+ Expect(kube.OutputToString()).To(ContainSubstring("type: spc_t"))
+ })
+
+ It("podman generate service kube on container with --security-opt type", func() {
+ session := podmanTest.Podman([]string{"create", "--name", "test", "--security-opt", "label=type:foo_bar_t", "alpine"})
+ session.WaitWithDefaultTimeout()
+ Expect(session.ExitCode()).To(Equal(0))
+
+ kube := podmanTest.Podman([]string{"generate", "kube", "test"})
+ kube.WaitWithDefaultTimeout()
+ Expect(kube.ExitCode()).To(Equal(0))
+
+ pod := new(v1.Pod)
+ err = yaml.Unmarshal(kube.Out.Contents(), pod)
+ Expect(err).To(BeNil())
+ Expect(kube.OutputToString()).To(ContainSubstring("type: foo_bar_t"))
+ })
+
It("podman generate service kube on container", func() {
session := podmanTest.RunTopContainer("top")
session.WaitWithDefaultTimeout()
diff --git a/test/system/030-run.bats b/test/system/030-run.bats
index b89c76981..98c65f788 100644
--- a/test/system/030-run.bats
+++ b/test/system/030-run.bats
@@ -136,21 +136,26 @@ echo $rand | 0 | $rand
run_podman rmi busybox
}
-# 'run --rmi' deletes the image in the end unless it's used by another container.
-@test "podman run --rmi - remove image" {
- skip_if_remote "podman-remote does not emit 'Trying to pull' msgs"
- run_podman 0 run --rmi --rm redis /bin/true
- run_podman 1 image exists redis
-}
-
-
-@test "podman run --rmi - not remove image" {
- skip_if_remote "podman-remote does not emit 'Trying to pull' msgs"
- run_podman run redis /bin/true
- run_podman images | grep redis
- run_podman run --rmi --rm redis /bin/true
- run_podman images | grep redis
- run_podman 0 rm -a
+# 'run --rmi' deletes the image in the end unless it's used by another container
+@test "podman run --rmi" {
+ skip_if_remote
+
+ # Name of a nonlocal image. It should be pulled in by the first 'run'
+ NONLOCAL_IMAGE=busybox
+ run_podman 1 image exists $NONLOCAL_IMAGE
+
+ # Run a container, without --rm; this should block subsequent --rmi
+ run_podman run --name keepme $NONLOCAL_IMAGE /bin/true
+ run_podman image exists $NONLOCAL_IMAGE
+
+ # Now try running with --rmi : it should succeed, but not remove the image
+ run_podman run --rmi --rm $NONLOCAL_IMAGE /bin/true
+ run_podman image exists $NONLOCAL_IMAGE
+
+ # Remove the stray container, and run one more time with --rmi.
+ run_podman rm keepme
+ run_podman run --rmi --rm $NONLOCAL_IMAGE /bin/true
+ run_podman 1 image exists $NONLOCAL_IMAGE
}
# vim: filetype=sh