summaryrefslogtreecommitdiff
path: root/test/e2e
diff options
context:
space:
mode:
authorDaniel J Walsh <dwalsh@redhat.com>2018-03-29 11:01:47 -0400
committerAtomic Bot <atomic-devel@projectatomic.io>2018-04-05 14:13:49 +0000
commitfdcf633a33bbbfbc99268965ef5da03a4770619b (patch)
tree59be1ab815261e106220a4691766830b58657ac0 /test/e2e
parentca3b2414516c04125f986775c0cbce27f0f1e505 (diff)
downloadpodman-fdcf633a33bbbfbc99268965ef5da03a4770619b.tar.gz
podman-fdcf633a33bbbfbc99268965ef5da03a4770619b.tar.bz2
podman-fdcf633a33bbbfbc99268965ef5da03a4770619b.zip
Add hooks support to podman
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com> Closes: #155 Approved by: mheon
Diffstat (limited to 'test/e2e')
-rw-r--r--test/e2e/hooks/checkhook.json5
-rwxr-xr-xtest/e2e/hooks/checkhook.sh4
-rw-r--r--test/e2e/libpod_suite_test.go3
-rw-r--r--test/e2e/run_test.go14
4 files changed, 26 insertions, 0 deletions
diff --git a/test/e2e/hooks/checkhook.json b/test/e2e/hooks/checkhook.json
new file mode 100644
index 000000000..5a9bc86d1
--- /dev/null
+++ b/test/e2e/hooks/checkhook.json
@@ -0,0 +1,5 @@
+{
+ "cmd" : [".*"],
+ "hook" : "/tmp/checkhook.sh",
+ "stage" : [ "prestart" ]
+}
diff --git a/test/e2e/hooks/checkhook.sh b/test/e2e/hooks/checkhook.sh
new file mode 100755
index 000000000..8b755cb40
--- /dev/null
+++ b/test/e2e/hooks/checkhook.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+echo $@ >> /run/hookscheck
+read line
+echo $line >> /run/hookscheck
diff --git a/test/e2e/libpod_suite_test.go b/test/e2e/libpod_suite_test.go
index 5bdc112fb..a902949ba 100644
--- a/test/e2e/libpod_suite_test.go
+++ b/test/e2e/libpod_suite_test.go
@@ -156,6 +156,9 @@ func (p *PodmanTest) MakeOptions() []string {
// Podman is the exec call to podman on the filesystem
func (p *PodmanTest) Podman(args []string) *PodmanSession {
podmanOptions := p.MakeOptions()
+ if os.Getenv("HOOK_OPTION") != "" {
+ podmanOptions = append(podmanOptions, os.Getenv("HOOK_OPTION"))
+ }
podmanOptions = append(podmanOptions, strings.Split(p.StorageOptions, " ")...)
podmanOptions = append(podmanOptions, args...)
fmt.Printf("Running: %s %s\n", p.PodmanBinary, strings.Join(podmanOptions, " "))
diff --git a/test/e2e/run_test.go b/test/e2e/run_test.go
index 16fae5898..21c577d9a 100644
--- a/test/e2e/run_test.go
+++ b/test/e2e/run_test.go
@@ -6,6 +6,7 @@ import (
"os"
"path/filepath"
+ "github.com/mrunalp/fileutils"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
)
@@ -217,6 +218,19 @@ var _ = Describe("Podman run", func() {
Expect(session.ExitCode()).To(Equal(0))
})
+ It("podman test hooks", func() {
+ hcheck := "/run/hookscheck"
+ hooksDir := "/tmp/hooks"
+ os.Mkdir(hooksDir, 0755)
+ fileutils.CopyFile("hooks/hooks.json", hooksDir)
+ os.Setenv("HOOK_OPTION", fmt.Sprintf("--hooks-dir-path=%s", hooksDir))
+ os.Remove(hcheck)
+ session := podmanTest.Podman([]string{"run", ALPINE, "ls"})
+ session.Wait(10)
+ os.Unsetenv("HOOK_OPTION")
+ Expect(session.ExitCode()).To(Equal(0))
+ })
+
It("podman run with secrets", func() {
containersDir := "/usr/share/containers"
err := os.MkdirAll(containersDir, 0755)