diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/e2e/common_test.go | 34 | ||||
-rw-r--r-- | test/e2e/info_test.go | 28 | ||||
-rw-r--r-- | test/e2e/play_kube_test.go | 8 | ||||
-rw-r--r-- | test/e2e/system_connection_test.go | 2 | ||||
-rw-r--r-- | test/e2e/system_reset_test.go | 7 | ||||
-rw-r--r-- | test/e2e/system_service_test.go | 18 | ||||
-rw-r--r-- | test/system/272-system-connection.bats | 7 | ||||
-rw-r--r-- | test/system/700-play.bats | 17 |
8 files changed, 81 insertions, 40 deletions
diff --git a/test/e2e/common_test.go b/test/e2e/common_test.go index a61ef8640..28991af7f 100644 --- a/test/e2e/common_test.go +++ b/test/e2e/common_test.go @@ -6,6 +6,7 @@ import ( "io/ioutil" "math/rand" "net" + "net/url" "os" "os/exec" "path/filepath" @@ -1063,3 +1064,36 @@ func digShort(container, lookupName string, matchNames []string, p *PodmanTestIn } Fail("dns is not responding") } + +// WaitForFile to be created in defaultWaitTimeout seconds, returns false if file not created +func WaitForFile(path string) (err error) { + until := time.Now().Add(time.Duration(defaultWaitTimeout) * time.Second) + for i := 1; time.Now().Before(until); i++ { + _, err = os.Stat(path) + switch { + case err == nil: + return nil + case errors.Is(err, os.ErrNotExist): + time.Sleep(time.Duration(i) * time.Second) + default: + return err + } + } + return err +} + +// WaitForService blocks, waiting for some service listening on given host:port +func WaitForService(address url.URL) { + // Wait for podman to be ready + var conn net.Conn + var err error + for i := 1; i <= 5; i++ { + conn, err = net.Dial("tcp", address.Host) + if err != nil { + // Podman not available yet... + time.Sleep(time.Duration(i) * time.Second) + } + } + Expect(err).ShouldNot(HaveOccurred()) + conn.Close() +} diff --git a/test/e2e/info_test.go b/test/e2e/info_test.go index f989a9d29..2c2c82cb6 100644 --- a/test/e2e/info_test.go +++ b/test/e2e/info_test.go @@ -119,33 +119,31 @@ var _ = Describe("Podman Info", func() { Expect(string(out)).To(Equal(expect)) }) - It("podman info check RemoteSocket", func() { + It("check RemoteSocket ", func() { session := podmanTest.Podman([]string{"info", "--format", "{{.Host.RemoteSocket.Path}}"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) Expect(session.OutputToString()).To(MatchRegexp("/run/.*podman.*sock")) - if IsRemote() { - session = podmanTest.Podman([]string{"info", "--format", "{{.Host.RemoteSocket.Exists}}"}) - session.WaitWithDefaultTimeout() - Expect(session).Should(Exit(0)) - Expect(session.OutputToString()).To(ContainSubstring("true")) + session = podmanTest.Podman([]string{"info", "--format", "{{.Host.ServiceIsRemote}}"}) + session.WaitWithDefaultTimeout() + Expect(session).Should(Exit(0)) + if podmanTest.RemoteTest { + Expect(session.OutputToString()).To(Equal("true")) + } else { + Expect(session.OutputToString()).To(Equal("false")) } - }) - It("verify ServiceIsRemote", func() { - session := podmanTest.Podman([]string{"info", "--format", "{{.Host.ServiceIsRemote}}"}) + session = podmanTest.Podman([]string{"info", "--format", "{{.Host.RemoteSocket.Exists}}"}) session.WaitWithDefaultTimeout() - Expect(session).To(Exit(0)) - - if podmanTest.RemoteTest { + Expect(session).Should(Exit(0)) + if IsRemote() { Expect(session.OutputToString()).To(ContainSubstring("true")) - } else { - Expect(session.OutputToString()).To(ContainSubstring("false")) } + }) - It("Podman info must contain cgroupControllers with ReleventControllers", func() { + It("Podman info must contain cgroupControllers with RelevantControllers", func() { SkipIfRootless("Hard to tell which controllers are going to be enabled for rootless") SkipIfRootlessCgroupsV1("Disable cgroups not supported on cgroupv1 for rootless users") session := podmanTest.Podman([]string{"info", "--format", "{{.Host.CgroupControllers}}"}) diff --git a/test/e2e/play_kube_test.go b/test/e2e/play_kube_test.go index 0e91db04c..45414ec04 100644 --- a/test/e2e/play_kube_test.go +++ b/test/e2e/play_kube_test.go @@ -3180,8 +3180,10 @@ invalid kube kind Expect(ls).Should(Exit(0)) Expect(ls.OutputToStringArray()).To(HaveLen(1)) - containerLen := podmanTest.Podman([]string{"pod", "inspect", pod.Name, "--format", "'{{len .Containers}}'"}) - + containerLen := podmanTest.Podman([]string{"pod", "inspect", pod.Name, "--format", "{{len .Containers}}"}) + containerLen.WaitWithDefaultTimeout() + Expect(containerLen).Should(Exit(0)) + Expect(containerLen.OutputToString()).To(Equal("2")) ctr01Name := "ctr01" ctr02Name := "ctr02" @@ -3199,7 +3201,7 @@ invalid kube kind replace.WaitWithDefaultTimeout() Expect(replace).Should(Exit(0)) - newContainerLen := podmanTest.Podman([]string{"pod", "inspect", newPod.Name, "--format", "'{{len .Containers}}'"}) + newContainerLen := podmanTest.Podman([]string{"pod", "inspect", newPod.Name, "--format", "{{len .Containers}}"}) newContainerLen.WaitWithDefaultTimeout() Expect(newContainerLen).Should(Exit(0)) Expect(newContainerLen.OutputToString()).NotTo(Equal(containerLen.OutputToString())) diff --git a/test/e2e/system_connection_test.go b/test/e2e/system_connection_test.go index 95920136e..2228c23b2 100644 --- a/test/e2e/system_connection_test.go +++ b/test/e2e/system_connection_test.go @@ -247,7 +247,7 @@ var _ = Describe("podman system connection", func() { // podman-remote commands will be executed by ginkgo directly. SkipIfContainerized("sshd is not available when running in a container") SkipIfRemote("connection heuristic requires both podman and podman-remote binaries") - SkipIfNotRootless("FIXME: setup ssh keys when root") + SkipIfNotRootless(fmt.Sprintf("FIXME: setup ssh keys when root. uid(%d) euid(%d)", os.Getuid(), os.Geteuid())) SkipIfSystemdNotRunning("cannot test connection heuristic if systemd is not running") SkipIfNotActive("sshd", "cannot test connection heuristic if sshd is not running") }) diff --git a/test/e2e/system_reset_test.go b/test/e2e/system_reset_test.go index ec94bb819..28f2e25ca 100644 --- a/test/e2e/system_reset_test.go +++ b/test/e2e/system_reset_test.go @@ -89,5 +89,12 @@ var _ = Describe("podman system reset", func() { Expect(session).Should(Exit(0)) // default network should exists Expect(session.OutputToStringArray()).To(HaveLen(1)) + + // TODO: machine tests currently don't run outside of the machine test pkg + // no machines are created here to cleanup + session = podmanTest.Podman([]string{"machine", "list", "-q"}) + session.WaitWithDefaultTimeout() + Expect(session).Should(Exit(0)) + Expect(session.OutputToStringArray()).To(BeEmpty()) }) }) diff --git a/test/e2e/system_service_test.go b/test/e2e/system_service_test.go index 2bc7756d6..398290426 100644 --- a/test/e2e/system_service_test.go +++ b/test/e2e/system_service_test.go @@ -20,7 +20,7 @@ var _ = Describe("podman system service", func() { // The timeout used to for the service to respond. As shown in #12167, // this may take some time on machines under high load. - var timeout = 20 + var timeout = 30 BeforeEach(func() { tempdir, err := CreateTempDirInTempDir() @@ -122,22 +122,6 @@ var _ = Describe("podman system service", func() { }) }) -// WaitForService blocks, waiting for some service listening on given host:port -func WaitForService(address url.URL) { - // Wait for podman to be ready - var conn net.Conn - var err error - for i := 1; i <= 5; i++ { - conn, err = net.Dial("tcp", address.Host) - if err != nil { - // Podman not available yet... - time.Sleep(time.Duration(i) * time.Second) - } - } - Expect(err).ShouldNot(HaveOccurred()) - conn.Close() -} - // randomPort leans on the go net library to find an available port... func randomPort() string { port, err := utils.GetRandomPort() diff --git a/test/system/272-system-connection.bats b/test/system/272-system-connection.bats index 7b70f60f4..e9e9a01ea 100644 --- a/test/system/272-system-connection.bats +++ b/test/system/272-system-connection.bats @@ -99,10 +99,9 @@ $c2[ ]\+tcp://localhost:54321[ ]\+true" \ _SERVICE_PID=$! wait_for_port localhost $_SERVICE_PORT - # FIXME: #12023, RemoteSocket is always /run/something -# run_podman info --format '{{.Host.RemoteSocket.Path}}' -# is "$output" "tcp:localhost:$_SERVICE_PORT" \ -# "podman info works, and talks to the correct server" + _run_podman_remote info --format '{{.Host.RemoteSocket.Path}}' + is "$output" "tcp:localhost:$_SERVICE_PORT" \ + "podman info works, and talks to the correct server" _run_podman_remote info --format '{{.Store.GraphRoot}}' is "$output" "${PODMAN_TMPDIR}/root" \ diff --git a/test/system/700-play.bats b/test/system/700-play.bats index b0624cbf2..7988b26a4 100644 --- a/test/system/700-play.bats +++ b/test/system/700-play.bats @@ -278,3 +278,20 @@ status: {} run_podman 125 play kube - < $PODMAN_TMPDIR/test.yaml assert "$output" =~ "invalid annotation \"test\"=\"$RANDOMSTRING\"" "Expected to fail with annotation length greater than 63" } + +@test "podman play kube - default log driver" { + TESTDIR=$PODMAN_TMPDIR/testdir + mkdir -p $TESTDIR + echo "$testYaml" | sed "s|TESTDIR|${TESTDIR}|g" > $PODMAN_TMPDIR/test.yaml + # Get the default log driver + run_podman info --format "{{.Host.LogDriver}}" + default_driver=$output + + # Make sure that the default log driver is used + run_podman play kube $PODMAN_TMPDIR/test.yaml + run_podman inspect --format "{{.HostConfig.LogConfig.Type}}" test_pod-test + is "$output" "$default_driver" "play kube uses default log driver" + + run_podman stop -a -t 0 + run_podman pod rm -t 0 -f test_pod +} |