summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorPaul Holzinger <pholzing@redhat.com>2022-04-27 18:44:02 +0200
committerMatthew Heon <matthew.heon@pm.me>2022-05-03 13:44:39 -0400
commitc441a1756bc4dbad074f36690e79cd40480dc2a6 (patch)
tree8d0517927609c2fc5cf8fd14f8f9ef1edbd6686d /test
parentfb14171cba46f331fd9b25efed36c25b6b7ebcea (diff)
downloadpodman-c441a1756bc4dbad074f36690e79cd40480dc2a6.tar.gz
podman-c441a1756bc4dbad074f36690e79cd40480dc2a6.tar.bz2
podman-c441a1756bc4dbad074f36690e79cd40480dc2a6.zip
fix broken hooks-dir test
The test has been broken since it was added 4 years ago. Instead of using hardcoded paths we should use tmp files. Signed-off-by: Paul Holzinger <pholzing@redhat.com>
Diffstat (limited to 'test')
-rw-r--r--test/e2e/common_test.go3
-rw-r--r--test/e2e/hooks/checkhook.json5
-rwxr-xr-xtest/e2e/hooks/checkhook.sh4
-rw-r--r--test/e2e/libpod_suite_remote_test.go3
-rw-r--r--test/e2e/run_test.go33
-rw-r--r--test/utils/podmantest_test.go12
6 files changed, 26 insertions, 34 deletions
diff --git a/test/e2e/common_test.go b/test/e2e/common_test.go
index 59252fcb0..a61ef8640 100644
--- a/test/e2e/common_test.go
+++ b/test/e2e/common_test.go
@@ -861,9 +861,6 @@ func (p *PodmanTestIntegration) makeOptions(args []string, noEvents, noCache boo
podmanOptions := strings.Split(fmt.Sprintf("%s--root %s --runroot %s --runtime %s --conmon %s --network-config-dir %s --cgroup-manager %s --tmpdir %s --events-backend %s",
debug, p.Root, p.RunRoot, p.OCIRuntime, p.ConmonBinary, p.NetworkConfigDir, p.CgroupManager, p.TmpDir, eventsType), " ")
- if os.Getenv("HOOK_OPTION") != "" {
- podmanOptions = append(podmanOptions, os.Getenv("HOOK_OPTION"))
- }
if !p.RemoteTest {
podmanOptions = append(podmanOptions, "--network-backend", p.NetworkBackend.ToString())
diff --git a/test/e2e/hooks/checkhook.json b/test/e2e/hooks/checkhook.json
deleted file mode 100644
index 5a9bc86d1..000000000
--- a/test/e2e/hooks/checkhook.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "cmd" : [".*"],
- "hook" : "/tmp/checkhook.sh",
- "stage" : [ "prestart" ]
-}
diff --git a/test/e2e/hooks/checkhook.sh b/test/e2e/hooks/checkhook.sh
deleted file mode 100755
index 8b755cb40..000000000
--- a/test/e2e/hooks/checkhook.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-echo $@ >> /run/hookscheck
-read line
-echo $line >> /run/hookscheck
diff --git a/test/e2e/libpod_suite_remote_test.go b/test/e2e/libpod_suite_remote_test.go
index 8357246a5..19affbc6d 100644
--- a/test/e2e/libpod_suite_remote_test.go
+++ b/test/e2e/libpod_suite_remote_test.go
@@ -138,9 +138,6 @@ func getRemoteOptions(p *PodmanTestIntegration, args []string) []string {
networkDir := p.NetworkConfigDir
podmanOptions := strings.Split(fmt.Sprintf("--root %s --runroot %s --runtime %s --conmon %s --network-config-dir %s --cgroup-manager %s",
p.Root, p.RunRoot, p.OCIRuntime, p.ConmonBinary, networkDir, p.CgroupManager), " ")
- if os.Getenv("HOOK_OPTION") != "" {
- podmanOptions = append(podmanOptions, os.Getenv("HOOK_OPTION"))
- }
if p.NetworkBackend.ToString() == "netavark" {
podmanOptions = append(podmanOptions, "--network-backend", "netavark")
}
diff --git a/test/e2e/run_test.go b/test/e2e/run_test.go
index afcca6ff0..182ae1888 100644
--- a/test/e2e/run_test.go
+++ b/test/e2e/run_test.go
@@ -16,7 +16,6 @@ import (
"github.com/containers/podman/v4/pkg/rootless"
. "github.com/containers/podman/v4/test/utils"
"github.com/containers/storage/pkg/stringid"
- "github.com/mrunalp/fileutils"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
. "github.com/onsi/gomega/gexec"
@@ -811,18 +810,38 @@ USER bin`, BB)
})
It("podman test hooks", func() {
- hcheck := "/run/hookscheck"
+ SkipIfRemote("--hooks-dir does not work with remote")
hooksDir := tempdir + "/hooks"
err := os.Mkdir(hooksDir, 0755)
Expect(err).ToNot(HaveOccurred())
- err = fileutils.CopyFile("hooks/hooks.json", hooksDir)
+ hookJSONPath := filepath.Join(hooksDir, "checkhooks.json")
+ hookScriptPath := filepath.Join(hooksDir, "checkhooks.sh")
+ targetFile := filepath.Join(hooksDir, "target")
+
+ hookJSON := fmt.Sprintf(`{
+ "cmd" : [".*"],
+ "hook" : "%s",
+ "stage" : [ "prestart" ]
+}
+`, hookScriptPath)
+ err = ioutil.WriteFile(hookJSONPath, []byte(hookJSON), 0644)
Expect(err).ToNot(HaveOccurred())
- os.Setenv("HOOK_OPTION", fmt.Sprintf("--hooks-dir=%s", hooksDir))
- os.Remove(hcheck)
- session := podmanTest.Podman([]string{"run", ALPINE, "ls"})
+
+ random := stringid.GenerateNonCryptoID()
+
+ hookScript := fmt.Sprintf(`#!/bin/sh
+echo -n %s >%s
+`, random, targetFile)
+ err = ioutil.WriteFile(hookScriptPath, []byte(hookScript), 0755)
+ Expect(err).ToNot(HaveOccurred())
+
+ session := podmanTest.Podman([]string{"--hooks-dir", hooksDir, "run", ALPINE, "ls"})
session.Wait(10)
- os.Unsetenv("HOOK_OPTION")
Expect(session).Should(Exit(0))
+
+ b, err := ioutil.ReadFile(targetFile)
+ Expect(err).ToNot(HaveOccurred())
+ Expect(string(b)).To(Equal(random))
})
It("podman run with subscription secrets", func() {
diff --git a/test/utils/podmantest_test.go b/test/utils/podmantest_test.go
index a9b5aef1f..26d359d38 100644
--- a/test/utils/podmantest_test.go
+++ b/test/utils/podmantest_test.go
@@ -1,8 +1,6 @@
package utils_test
import (
- "os"
-
. "github.com/containers/podman/v4/test/utils"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
@@ -19,16 +17,6 @@ var _ = Describe("PodmanTest test", func() {
FakeOutputs = make(map[string][]string)
})
- It("Test PodmanAsUserBase", func() {
- FakeOutputs["check"] = []string{"check"}
- os.Setenv("HOOK_OPTION", "hook_option")
- env := os.Environ()
- session := podmanTest.PodmanAsUserBase([]string{"check"}, 1000, 1000, "", env, true, false, nil, nil)
- os.Unsetenv("HOOK_OPTION")
- session.WaitWithDefaultTimeout()
- Expect(session.Command.Process).ShouldNot(BeNil())
- })
-
It("Test NumberOfContainersRunning", func() {
FakeOutputs["ps -q"] = []string{"one", "two"}
Expect(podmanTest.NumberOfContainersRunning()).To(Equal(2))