diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/apiv2/rest_api/test_rest_v2_0_0.py | 14 | ||||
-rw-r--r-- | test/e2e/play_kube_test.go | 15 | ||||
-rw-r--r-- | test/e2e/pod_inspect_test.go | 19 | ||||
-rw-r--r-- | test/e2e/pod_pod_namespaces_test.go (renamed from test/e2e/pod_pod_namespaces.go) | 0 | ||||
-rw-r--r-- | test/e2e/run_networking_test.go | 41 | ||||
-rw-r--r-- | test/e2e/run_seccomp_test.go (renamed from test/e2e/run_seccomp.go) | 0 | ||||
-rw-r--r-- | test/e2e/run_security_labels_test.go (renamed from test/e2e/run_security_labels.go) | 0 | ||||
-rw-r--r-- | test/e2e/run_working_dir_test.go (renamed from test/e2e/run_working_dir.go) | 0 | ||||
-rw-r--r-- | test/e2e/search_test.go | 4 | ||||
-rw-r--r-- | test/e2e/stats_test.go | 41 | ||||
-rw-r--r-- | test/python/docker/test_containers.py | 10 |
11 files changed, 130 insertions, 14 deletions
diff --git a/test/apiv2/rest_api/test_rest_v2_0_0.py b/test/apiv2/rest_api/test_rest_v2_0_0.py index 7192347c7..49e18f063 100644 --- a/test/apiv2/rest_api/test_rest_v2_0_0.py +++ b/test/apiv2/rest_api/test_rest_v2_0_0.py @@ -187,12 +187,14 @@ class TestApi(unittest.TestCase): payload = json.loads(create.text) self.assertIsNotNone(payload["Id"]) - connect = requests.post( - PODMAN_URL + "/v1.40/networks/TestNetwork/connect", - json={"Container": payload["Id"]}, - ) - self.assertEqual(connect.status_code, 200, create.text) - self.assertEqual(connect.text, "OK\n") + # This cannot be done until full completion of the network connect + # stack and network disconnect stack are complete + # connect = requests.post( + # PODMAN_URL + "/v1.40/networks/TestNetwork/connect", + # json={"Container": payload["Id"]}, + # ) + # self.assertEqual(connect.status_code, 200, connect.text) + # self.assertEqual(connect.text, "OK\n") def test_commit(self): r = requests.post(_url(ctnr("/commit?container={}"))) diff --git a/test/e2e/play_kube_test.go b/test/e2e/play_kube_test.go index 7ae474c76..92e4544f9 100644 --- a/test/e2e/play_kube_test.go +++ b/test/e2e/play_kube_test.go @@ -1482,4 +1482,19 @@ MemoryReservation: {{ .HostConfig.MemoryReservation }}`}) Expect(inspect.ExitCode()).To(Equal(0)) Expect(inspect.OutputToString()).To(ContainSubstring("journald")) }) + + It("podman play kube test only creating the containers", func() { + pod := getPod() + err := generateKubeYaml("pod", pod, kubeYaml) + Expect(err).To(BeNil()) + + kube := podmanTest.Podman([]string{"play", "kube", "--start=false", kubeYaml}) + kube.WaitWithDefaultTimeout() + Expect(kube.ExitCode()).To(Equal(0)) + + inspect := podmanTest.Podman([]string{"inspect", getCtrNameInPod(pod), "--format", "{{ .State.Running }}"}) + inspect.WaitWithDefaultTimeout() + Expect(inspect.ExitCode()).To(Equal(0)) + Expect(inspect.OutputToString()).To(Equal("false")) + }) }) diff --git a/test/e2e/pod_inspect_test.go b/test/e2e/pod_inspect_test.go index ccdf0a423..25212991d 100644 --- a/test/e2e/pod_inspect_test.go +++ b/test/e2e/pod_inspect_test.go @@ -99,4 +99,23 @@ var _ = Describe("Podman pod inspect", func() { Expect(len(inspectJSON.InfraConfig.PortBindings["80/tcp"])).To(Equal(1)) Expect(inspectJSON.InfraConfig.PortBindings["80/tcp"][0].HostPort).To(Equal("8080")) }) + + It("podman pod inspect outputs show correct MAC", func() { + SkipIfRootless("--mac-address is not supported in rootless mode") + podName := "testPod" + macAddr := "42:43:44:00:00:01" + create := podmanTest.Podman([]string{"pod", "create", "--name", podName, "--mac-address", macAddr}) + create.WaitWithDefaultTimeout() + Expect(create.ExitCode()).To(Equal(0)) + + create = podmanTest.Podman([]string{"run", "-d", "--pod", podName, ALPINE, "top"}) + create.WaitWithDefaultTimeout() + Expect(create.ExitCode()).To(Equal(0)) + + inspectOut := podmanTest.Podman([]string{"pod", "inspect", podName}) + inspectOut.WaitWithDefaultTimeout() + Expect(inspectOut.ExitCode()).To(Equal(0)) + + Expect(inspectOut.OutputToString()).To(ContainSubstring(macAddr)) + }) }) diff --git a/test/e2e/pod_pod_namespaces.go b/test/e2e/pod_pod_namespaces_test.go index 20b8bdb39..20b8bdb39 100644 --- a/test/e2e/pod_pod_namespaces.go +++ b/test/e2e/pod_pod_namespaces_test.go diff --git a/test/e2e/run_networking_test.go b/test/e2e/run_networking_test.go index e9c1bab21..3e80e953e 100644 --- a/test/e2e/run_networking_test.go +++ b/test/e2e/run_networking_test.go @@ -551,6 +551,10 @@ var _ = Describe("Podman run networking", func() { run.WaitWithDefaultTimeout() Expect(run.ExitCode()).To(BeZero()) Expect(run.OutputToString()).To(ContainSubstring(ipAddr)) + + create = podmanTest.Podman([]string{"network", "rm", netName}) + create.WaitWithDefaultTimeout() + Expect(create.ExitCode()).To(BeZero()) }) It("podman run with new:pod and static-ip", func() { @@ -588,7 +592,7 @@ var _ = Describe("Podman run networking", func() { Expect(strings.Contains(run.OutputToString(), hostname)).To(BeTrue()) }) - It("podman run with --net=none adds hostname to /etc/hosts", func() { + It("podman run with --net=none sets hostname", func() { hostname := "testctr" run := podmanTest.Podman([]string{"run", "--net=none", "--hostname", hostname, ALPINE, "hostname"}) run.WaitWithDefaultTimeout() @@ -596,6 +600,37 @@ var _ = Describe("Podman run networking", func() { Expect(strings.Contains(run.OutputToString(), hostname)).To(BeTrue()) }) + It("podman run with --net=none adds hostname to /etc/hosts", func() { + hostname := "testctr" + run := podmanTest.Podman([]string{"run", "--net=none", "--hostname", hostname, ALPINE, "cat", "/etc/hosts"}) + run.WaitWithDefaultTimeout() + Expect(run.ExitCode()).To(BeZero()) + Expect(strings.Contains(run.OutputToString(), hostname)).To(BeTrue()) + }) + + ping_test := func(netns string) { + hostname := "testctr" + run := podmanTest.Podman([]string{"run", netns, "--hostname", hostname, ALPINE, "ping", "-c", "1", hostname}) + run.WaitWithDefaultTimeout() + Expect(run.ExitCode()).To(BeZero()) + + run = podmanTest.Podman([]string{"run", netns, "--hostname", hostname, "--name", "test", ALPINE, "ping", "-c", "1", "test"}) + run.WaitWithDefaultTimeout() + Expect(run.ExitCode()).To(BeZero()) + } + + It("podman attempt to ping container name and hostname --net=none", func() { + ping_test("--net=none") + }) + + It("podman attempt to ping container name and hostname --net=host", func() { + ping_test("--net=host") + }) + + It("podman attempt to ping container name and hostname --net=private", func() { + ping_test("--net=private") + }) + It("podman run check dnsname plugin", func() { pod := "testpod" session := podmanTest.Podman([]string{"pod", "create", "--name", pod}) @@ -621,10 +656,10 @@ var _ = Describe("Podman run networking", func() { session.WaitWithDefaultTimeout() Expect(session.ExitCode()).To(BeZero()) - session = podmanTest.Podman([]string{"run", "--name", "con3", "--pod", pod2, ALPINE, "nslookup", "con3"}) + session = podmanTest.Podman([]string{"run", "--name", "con3", "--pod", pod2, ALPINE, "nslookup", "con1"}) session.WaitWithDefaultTimeout() Expect(session.ExitCode()).To(Equal(1)) - Expect(session.ErrorToString()).To(ContainSubstring("can't resolve 'con3'")) + Expect(session.ErrorToString()).To(ContainSubstring("can't resolve 'con1'")) session = podmanTest.Podman([]string{"run", "--name", "con4", "--network", net, ALPINE, "nslookup", pod2}) session.WaitWithDefaultTimeout() diff --git a/test/e2e/run_seccomp.go b/test/e2e/run_seccomp_test.go index 7d04cc60a..7d04cc60a 100644 --- a/test/e2e/run_seccomp.go +++ b/test/e2e/run_seccomp_test.go diff --git a/test/e2e/run_security_labels.go b/test/e2e/run_security_labels_test.go index 0c5621e3f..0c5621e3f 100644 --- a/test/e2e/run_security_labels.go +++ b/test/e2e/run_security_labels_test.go diff --git a/test/e2e/run_working_dir.go b/test/e2e/run_working_dir_test.go index 7d8db361c..7d8db361c 100644 --- a/test/e2e/run_working_dir.go +++ b/test/e2e/run_working_dir_test.go diff --git a/test/e2e/search_test.go b/test/e2e/search_test.go index 7747cdd0e..5c3c69fd4 100644 --- a/test/e2e/search_test.go +++ b/test/e2e/search_test.go @@ -93,10 +93,10 @@ registries = ['{{.Host}}:{{.Port}}']` }) It("podman search single registry flag", func() { - search := podmanTest.Podman([]string{"search", "quay.io/libpod/gate:latest"}) + search := podmanTest.Podman([]string{"search", "quay.io/skopeo/stable:latest"}) search.WaitWithDefaultTimeout() Expect(search.ExitCode()).To(Equal(0)) - Expect(search.LineInOutputContains("quay.io/libpod/gate")).To(BeTrue()) + Expect(search.LineInOutputContains("quay.io/skopeo/stable")).To(BeTrue()) }) It("podman search image with description", func() { diff --git a/test/e2e/stats_test.go b/test/e2e/stats_test.go index c8f5efa9d..5e8a7a3d0 100644 --- a/test/e2e/stats_test.go +++ b/test/e2e/stats_test.go @@ -5,6 +5,7 @@ package integration import ( "fmt" "os" + "strconv" "time" . "github.com/containers/podman/v2/test/utils" @@ -126,4 +127,44 @@ var _ = Describe("Podman stats", func() { session.WaitWithDefaultTimeout() Expect(session.ExitCode()).To(Equal(0)) }) + + // Regression test for #8265 + It("podman stats with custom memory limits", func() { + // Run thre containers. One with a memory limit. Make sure + // that the limits are different and the limited one has a + // lower limit. + ctrNoLimit0 := "no-limit-0" + ctrNoLimit1 := "no-limit-1" + ctrWithLimit := "with-limit" + + session := podmanTest.Podman([]string{"run", "-d", "--name", ctrNoLimit0, ALPINE, "top"}) + session.WaitWithDefaultTimeout() + Expect(session.ExitCode()).To(Equal(0)) + + session = podmanTest.Podman([]string{"run", "-d", "--name", ctrNoLimit1, ALPINE, "top"}) + session.WaitWithDefaultTimeout() + Expect(session.ExitCode()).To(Equal(0)) + + session = podmanTest.Podman([]string{"run", "-d", "--name", ctrWithLimit, "--memory", "50m", ALPINE, "top"}) + session.WaitWithDefaultTimeout() + Expect(session.ExitCode()).To(Equal(0)) + + session = podmanTest.Podman([]string{"stats", "--no-stream", "--format", "{{.MemLimit}}", ctrNoLimit0, ctrNoLimit1, ctrWithLimit}) + session.WaitWithDefaultTimeout() + Expect(session.ExitCode()).To(Equal(0)) + + // We have three containers. The unlimited ones need to have + // the same limit, the limited one a lower one. + limits := session.OutputToStringArray() + Expect(len(limits)).To(BeNumerically("==", 3)) + Expect(limits[0]).To(Equal(limits[1])) + Expect(limits[0]).ToNot(Equal(limits[2])) + + defaultLimit, err := strconv.Atoi(limits[0]) + Expect(err).To(BeNil()) + customLimit, err := strconv.Atoi(limits[2]) + Expect(err).To(BeNil()) + + Expect(customLimit).To(BeNumerically("<", defaultLimit)) + }) }) diff --git a/test/python/docker/test_containers.py b/test/python/docker/test_containers.py index 5fb340fd4..0fd419d9d 100644 --- a/test/python/docker/test_containers.py +++ b/test/python/docker/test_containers.py @@ -60,10 +60,14 @@ class TestContainers(unittest.TestCase): def test_create_network(self): net = self.client.networks.create("testNetwork", driver="bridge") ctnr = self.client.containers.create(image="alpine", detach=True) - net.connect(ctnr) - nets = self.client.networks.list(greedy=True) - self.assertGreaterEqual(len(nets), 1) + # TODO fix when ready + # This test will not work until all connect|disconnect + # code is fixed. + # net.connect(ctnr) + + # nets = self.client.networks.list(greedy=True) + # self.assertGreaterEqual(len(nets), 1) # TODO fix endpoint to include containers # for n in nets: |