summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/apiv2/01-basic.at14
-rw-r--r--test/e2e/common_test.go20
-rw-r--r--test/e2e/config.go4
-rw-r--r--test/e2e/container_inspect_test.go2
-rw-r--r--test/e2e/create_test.go18
-rw-r--r--test/e2e/events_test.go15
-rw-r--r--test/e2e/exec_test.go1
-rw-r--r--test/e2e/export_test.go2
-rw-r--r--test/e2e/healthcheck_run_test.go4
-rw-r--r--test/e2e/images_test.go1
-rw-r--r--test/e2e/info_test.go1
-rw-r--r--test/e2e/init_test.go3
-rw-r--r--test/e2e/inspect_test.go10
-rw-r--r--test/e2e/kill_test.go1
-rw-r--r--test/e2e/libpod_suite_remote_test.go214
-rw-r--r--test/e2e/libpod_suite_test.go6
-rw-r--r--test/e2e/libpod_suite_varlink_test.go (renamed from test/e2e/libpod_suite_remoteclient_test.go)29
-rw-r--r--test/e2e/logs_test.go19
-rw-r--r--test/e2e/manifest_test.go1
-rw-r--r--test/e2e/pause_test.go4
-rw-r--r--test/e2e/pod_create_test.go2
-rw-r--r--test/e2e/pod_infra_container_test.go2
-rw-r--r--test/e2e/pod_inspect_test.go2
-rw-r--r--test/e2e/pod_kill_test.go3
-rw-r--r--test/e2e/pod_pause_test.go2
-rw-r--r--test/e2e/pod_pod_namespaces.go2
-rw-r--r--test/e2e/pod_prune_test.go2
-rw-r--r--test/e2e/pod_ps_test.go3
-rw-r--r--test/e2e/pod_restart_test.go3
-rw-r--r--test/e2e/pod_rm_test.go3
-rw-r--r--test/e2e/pod_start_test.go3
-rw-r--r--test/e2e/pod_stats_test.go2
-rw-r--r--test/e2e/pod_stop_test.go3
-rw-r--r--test/e2e/pod_top_test.go2
-rw-r--r--test/e2e/prune_test.go5
-rw-r--r--test/e2e/ps_test.go1
-rw-r--r--test/e2e/restart_test.go1
-rw-r--r--test/e2e/rm_test.go2
-rw-r--r--test/e2e/rmi_test.go2
-rw-r--r--test/e2e/run_exit_test.go1
-rw-r--r--test/e2e/save_test.go1
-rw-r--r--test/e2e/start_test.go5
-rw-r--r--test/e2e/stop_test.go3
-rw-r--r--test/e2e/system_reset_test.go3
-rw-r--r--test/e2e/untag_test.go1
-rw-r--r--test/endpoint/endpoint.go2
-rw-r--r--test/system/030-run.bats4
-rw-r--r--test/system/160-volumes.bats13
-rw-r--r--test/system/250-systemd.bats7
-rw-r--r--test/utils/utils.go11
50 files changed, 380 insertions, 85 deletions
diff --git a/test/apiv2/01-basic.at b/test/apiv2/01-basic.at
index 0e94ddb7a..18ec9bbe8 100644
--- a/test/apiv2/01-basic.at
+++ b/test/apiv2/01-basic.at
@@ -10,13 +10,13 @@ t HEAD /_ping 200
t GET /libpod/_ping 200 OK
for i in /version version; do
- t GET $i 200 \
- .Components[0].Name="Podman Engine" \
- .Components[0].Details.APIVersion=1.40 \
- .Components[0].Details.MinAPIVersion=1.24 \
- .Components[0].Details.Os=linux \
- .ApiVersion=1.40 \
- .MinAPIVersion=1.24 \
+ t GET $i 200 \
+ .Components[0].Name="Podman Engine" \
+ .Components[0].Details.APIVersion=1.0.0 \
+ .Components[0].Details.MinAPIVersion=1.0.0 \
+ .Components[0].Details.Os=linux \
+ .ApiVersion=1.0.0 \
+ .MinAPIVersion=1.0.0 \
.Os=linux
done
diff --git a/test/e2e/common_test.go b/test/e2e/common_test.go
index 68f733b41..6d6f1762d 100644
--- a/test/e2e/common_test.go
+++ b/test/e2e/common_test.go
@@ -53,6 +53,7 @@ type PodmanTestIntegration struct {
Host HostOS
Timings []string
TmpDir string
+ RemoteStartErr error
}
var LockTmpDir string
@@ -259,12 +260,12 @@ func PodmanTestCreateUtil(tempDir string, remote bool) *PodmanTestIntegration {
p.PodmanTest.RemotePodmanBinary = podmanRemoteBinary
uuid := stringid.GenerateNonCryptoID()
if !rootless.IsRootless() {
- p.VarlinkEndpoint = fmt.Sprintf("unix:/run/podman/io.podman-%s", uuid)
+ p.RemoteSocket = fmt.Sprintf("unix:/run/podman/podman-%s.sock", uuid)
} else {
runtimeDir := os.Getenv("XDG_RUNTIME_DIR")
- socket := fmt.Sprintf("io.podman-%s", uuid)
+ socket := fmt.Sprintf("podman-%s.sock", uuid)
fqpath := filepath.Join(runtimeDir, socket)
- p.VarlinkEndpoint = fmt.Sprintf("unix:%s", fqpath)
+ p.RemoteSocket = fmt.Sprintf("unix:%s", fqpath)
}
}
@@ -441,7 +442,7 @@ func (p *PodmanTestIntegration) Cleanup() {
session := p.Podman([]string{"rm", "-fa"})
session.Wait(90)
- p.StopVarlink()
+ p.StopRemoteService()
// Nuke tempdir
if err := os.RemoveAll(p.TempDir); err != nil {
fmt.Printf("%q\n", err)
@@ -451,17 +452,6 @@ func (p *PodmanTestIntegration) Cleanup() {
resetRegistriesConfigEnv()
}
-// CleanupPod cleans up the temporary store
-func (p *PodmanTestIntegration) CleanupPod() {
- // Remove all containers
- session := p.Podman([]string{"pod", "rm", "-fa"})
- session.Wait(90)
- // Nuke tempdir
- if err := os.RemoveAll(p.TempDir); err != nil {
- fmt.Printf("%q\n", err)
- }
-}
-
// CleanupVolume cleans up the temporary store
func (p *PodmanTestIntegration) CleanupVolume() {
// Remove all containers
diff --git a/test/e2e/config.go b/test/e2e/config.go
index 0e1850614..71c4dee31 100644
--- a/test/e2e/config.go
+++ b/test/e2e/config.go
@@ -27,4 +27,8 @@ var (
// v2fail is a temporary variable to help us track
// tests that fail in v2
v2fail = "does not pass integration tests with v2 podman"
+
+ // v2remotefail is a temporary variable to help us track
+ // tests that fail in v2 remote
+ v2remotefail = "does not pass integration tests with v2 podman remote"
)
diff --git a/test/e2e/container_inspect_test.go b/test/e2e/container_inspect_test.go
index 91c025197..9cbcbbc7c 100644
--- a/test/e2e/container_inspect_test.go
+++ b/test/e2e/container_inspect_test.go
@@ -27,7 +27,7 @@ var _ = Describe("Podman container inspect", func() {
})
AfterEach(func() {
- podmanTest.CleanupPod()
+ podmanTest.Cleanup()
f := CurrentGinkgoTestDescription()
processTestResult(f)
})
diff --git a/test/e2e/create_test.go b/test/e2e/create_test.go
index 1041b30bb..9cdbe6287 100644
--- a/test/e2e/create_test.go
+++ b/test/e2e/create_test.go
@@ -35,13 +35,13 @@ var _ = Describe("Podman create", func() {
})
It("podman create container based on a local image", func() {
- session := podmanTest.Podman([]string{"create", ALPINE, "ls"})
+ session := podmanTest.Podman([]string{"create", "--name", "local_image_test", ALPINE, "ls"})
session.WaitWithDefaultTimeout()
cid := session.OutputToString()
Expect(session.ExitCode()).To(Equal(0))
Expect(podmanTest.NumberOfContainers()).To(Equal(1))
- check := podmanTest.Podman([]string{"inspect", "-l"})
+ check := podmanTest.Podman([]string{"inspect", "local_image_test"})
check.WaitWithDefaultTimeout()
data := check.InspectContainerToJSON()
Expect(data[0].ID).To(ContainSubstring(cid))
@@ -80,12 +80,12 @@ var _ = Describe("Podman create", func() {
})
It("podman create adds annotation", func() {
- session := podmanTest.Podman([]string{"create", "--annotation", "HELLO=WORLD", ALPINE, "ls"})
+ session := podmanTest.Podman([]string{"create", "--annotation", "HELLO=WORLD", "--name", "annotate_test", ALPINE, "ls"})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
Expect(podmanTest.NumberOfContainers()).To(Equal(1))
- check := podmanTest.Podman([]string{"inspect", "-l"})
+ check := podmanTest.Podman([]string{"inspect", "annotate_test"})
check.WaitWithDefaultTimeout()
data := check.InspectContainerToJSON()
value, ok := data[0].Config.Annotations["HELLO"]
@@ -94,12 +94,12 @@ var _ = Describe("Podman create", func() {
})
It("podman create --entrypoint command", func() {
- session := podmanTest.Podman([]string{"create", "--entrypoint", "/bin/foobar", ALPINE})
+ session := podmanTest.Podman([]string{"create", "--name", "entrypoint_test", "--entrypoint", "/bin/foobar", ALPINE})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
Expect(podmanTest.NumberOfContainers()).To(Equal(1))
- result := podmanTest.Podman([]string{"inspect", "-l", "--format", "{{.Config.Entrypoint}}"})
+ result := podmanTest.Podman([]string{"inspect", "entrypoint_test", "--format", "{{.Config.Entrypoint}}"})
result.WaitWithDefaultTimeout()
Expect(result.ExitCode()).To(Equal(0))
Expect(result.OutputToString()).To(Equal("/bin/foobar"))
@@ -119,18 +119,19 @@ var _ = Describe("Podman create", func() {
It("podman create --entrypoint json", func() {
jsonString := `[ "/bin/foo", "-c"]`
- session := podmanTest.Podman([]string{"create", "--entrypoint", jsonString, ALPINE})
+ session := podmanTest.Podman([]string{"create", "--name", "entrypoint_json", "--entrypoint", jsonString, ALPINE})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
Expect(podmanTest.NumberOfContainers()).To(Equal(1))
- result := podmanTest.Podman([]string{"inspect", "-l", "--format", "{{.Config.Entrypoint}}"})
+ result := podmanTest.Podman([]string{"inspect", "entrypoint_json", "--format", "{{.Config.Entrypoint}}"})
result.WaitWithDefaultTimeout()
Expect(result.ExitCode()).To(Equal(0))
Expect(result.OutputToString()).To(Equal("/bin/foo -c"))
})
It("podman create --mount flag with multiple mounts", func() {
+ Skip(v2remotefail)
vol1 := filepath.Join(podmanTest.TempDir, "vol-test1")
err := os.MkdirAll(vol1, 0755)
Expect(err).To(BeNil())
@@ -156,6 +157,7 @@ var _ = Describe("Podman create", func() {
if podmanTest.Host.Arch == "ppc64le" {
Skip("skip failing test on ppc64le")
}
+ Skip(v2remotefail)
mountPath := filepath.Join(podmanTest.TempDir, "secrets")
os.Mkdir(mountPath, 0755)
session := podmanTest.Podman([]string{"create", "--name", "test", "--mount", fmt.Sprintf("type=bind,src=%s,target=/create/test", mountPath), ALPINE, "grep", "/create/test", "/proc/self/mountinfo"})
diff --git a/test/e2e/events_test.go b/test/e2e/events_test.go
index 0636af74c..460554b77 100644
--- a/test/e2e/events_test.go
+++ b/test/e2e/events_test.go
@@ -118,6 +118,7 @@ var _ = Describe("Podman events", func() {
})
It("podman events format", func() {
+ Skip(v2remotefail)
info := GetHostDistributionInfo()
if info.Distribution != "fedora" {
Skip("need to verify images have correct packages for journald")
@@ -137,5 +138,19 @@ var _ = Describe("Podman events", func() {
_, exist := eventsMap["Status"]
Expect(exist).To(BeTrue())
Expect(test.ExitCode()).To(BeZero())
+
+ test = podmanTest.Podman([]string{"events", "--stream=false", "--format", "{{json.}}"})
+ test.WaitWithDefaultTimeout()
+ fmt.Println(test.OutputToStringArray())
+ jsonArr = test.OutputToStringArray()
+ Expect(len(jsonArr)).To(Not(BeZero()))
+ eventsMap = make(map[string]string)
+ err = json.Unmarshal([]byte(jsonArr[0]), &eventsMap)
+ if err != nil {
+ os.Exit(1)
+ }
+ _, exist = eventsMap["Status"]
+ Expect(exist).To(BeTrue())
+ Expect(test.ExitCode()).To(BeZero())
})
})
diff --git a/test/e2e/exec_test.go b/test/e2e/exec_test.go
index 8b95794d2..da80bba47 100644
--- a/test/e2e/exec_test.go
+++ b/test/e2e/exec_test.go
@@ -18,6 +18,7 @@ var _ = Describe("Podman exec", func() {
)
BeforeEach(func() {
+ Skip(v2remotefail)
tempdir, err = CreateTempDirInTempDir()
if err != nil {
os.Exit(1)
diff --git a/test/e2e/export_test.go b/test/e2e/export_test.go
index 1c84c6f4d..fb2582796 100644
--- a/test/e2e/export_test.go
+++ b/test/e2e/export_test.go
@@ -34,7 +34,6 @@ var _ = Describe("Podman export", func() {
})
It("podman export output flag", func() {
- SkipIfRemote()
_, ec, cid := podmanTest.RunLsContainer("")
Expect(ec).To(Equal(0))
@@ -50,7 +49,6 @@ var _ = Describe("Podman export", func() {
})
It("podman container export output flag", func() {
- SkipIfRemote()
_, ec, cid := podmanTest.RunLsContainer("")
Expect(ec).To(Equal(0))
diff --git a/test/e2e/healthcheck_run_test.go b/test/e2e/healthcheck_run_test.go
index 19a8658ac..f434836d3 100644
--- a/test/e2e/healthcheck_run_test.go
+++ b/test/e2e/healthcheck_run_test.go
@@ -83,6 +83,7 @@ var _ = Describe("Podman healthcheck run", func() {
})
It("podman healthcheck that should fail", func() {
+ Skip(v2remotefail)
session := podmanTest.Podman([]string{"run", "-dt", "--name", "hc", "docker.io/libpod/badhealthcheck:latest"})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
@@ -121,6 +122,7 @@ var _ = Describe("Podman healthcheck run", func() {
})
It("podman healthcheck failed checks in start-period should not change status", func() {
+ Skip(v2remotefail)
session := podmanTest.Podman([]string{"run", "-dt", "--name", "hc", "--health-start-period", "2m", "--health-retries", "2", "--health-cmd", "ls /foo || exit 1", ALPINE, "top"})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
@@ -142,6 +144,7 @@ var _ = Describe("Podman healthcheck run", func() {
})
It("podman healthcheck failed checks must reach retries before unhealthy ", func() {
+ Skip(v2remotefail)
session := podmanTest.Podman([]string{"run", "-dt", "--name", "hc", "--health-retries", "2", "--health-cmd", "ls /foo || exit 1", ALPINE, "top"})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
@@ -176,6 +179,7 @@ var _ = Describe("Podman healthcheck run", func() {
})
It("podman healthcheck single healthy result changes failed to healthy", func() {
+ Skip(v2remotefail)
session := podmanTest.Podman([]string{"run", "-dt", "--name", "hc", "--health-retries", "2", "--health-cmd", "ls /foo || exit 1", ALPINE, "top"})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
diff --git a/test/e2e/images_test.go b/test/e2e/images_test.go
index d7295b67a..542f7f1e1 100644
--- a/test/e2e/images_test.go
+++ b/test/e2e/images_test.go
@@ -131,6 +131,7 @@ var _ = Describe("Podman images", func() {
})
It("podman images filter by image name", func() {
+ Skip(v2remotefail)
podmanTest.RestoreAllArtifacts()
session := podmanTest.PodmanNoCache([]string{"images", "-q", ALPINE})
session.WaitWithDefaultTimeout()
diff --git a/test/e2e/info_test.go b/test/e2e/info_test.go
index 7cb299e0f..dbdaa05a7 100644
--- a/test/e2e/info_test.go
+++ b/test/e2e/info_test.go
@@ -33,7 +33,6 @@ var _ = Describe("Podman Info", func() {
podmanTest.Cleanup()
f := CurrentGinkgoTestDescription()
processTestResult(f)
-
})
It("podman info json output", func() {
diff --git a/test/e2e/init_test.go b/test/e2e/init_test.go
index 919fe4abf..349487b03 100644
--- a/test/e2e/init_test.go
+++ b/test/e2e/init_test.go
@@ -75,6 +75,7 @@ var _ = Describe("Podman init", func() {
})
It("podman init latest container", func() {
+ SkipIfRemote()
session := podmanTest.Podman([]string{"create", "-d", ALPINE, "ls"})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
@@ -89,6 +90,7 @@ var _ = Describe("Podman init", func() {
})
It("podman init all three containers, one running", func() {
+ Skip(v2remotefail)
session := podmanTest.Podman([]string{"create", "--name", "test1", "-d", ALPINE, "ls"})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
@@ -119,6 +121,7 @@ var _ = Describe("Podman init", func() {
})
It("podman init running container errors", func() {
+ Skip(v2remotefail)
session := podmanTest.Podman([]string{"run", "-d", ALPINE, "top"})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
diff --git a/test/e2e/inspect_test.go b/test/e2e/inspect_test.go
index ebac087ac..77cfe4fd3 100644
--- a/test/e2e/inspect_test.go
+++ b/test/e2e/inspect_test.go
@@ -43,7 +43,6 @@ var _ = Describe("Podman inspect", func() {
})
It("podman inspect bogus container", func() {
- SkipIfRemote()
session := podmanTest.Podman([]string{"inspect", "foobar4321"})
session.WaitWithDefaultTimeout()
Expect(session).To(ExitWithError())
@@ -67,7 +66,6 @@ var _ = Describe("Podman inspect", func() {
})
It("podman inspect container with GO format for ConmonPidFile", func() {
- SkipIfRemote()
session, ec, _ := podmanTest.RunLsContainer("test1")
Expect(ec).To(Equal(0))
@@ -77,11 +75,10 @@ var _ = Describe("Podman inspect", func() {
})
It("podman inspect container with size", func() {
- SkipIfRemote()
- _, ec, _ := podmanTest.RunLsContainer("")
+ _, ec, _ := podmanTest.RunLsContainer("sizetest")
Expect(ec).To(Equal(0))
- result := podmanTest.Podman([]string{"inspect", "--size", "-l"})
+ result := podmanTest.Podman([]string{"inspect", "--size", "sizetest"})
result.WaitWithDefaultTimeout()
Expect(result.ExitCode()).To(Equal(0))
conData := result.InspectContainerToJSON()
@@ -90,7 +87,6 @@ var _ = Describe("Podman inspect", func() {
})
It("podman inspect container and image", func() {
- SkipIfRemote()
ls, ec, _ := podmanTest.RunLsContainer("")
Expect(ec).To(Equal(0))
cid := ls.OutputToString()
@@ -102,7 +98,6 @@ var _ = Describe("Podman inspect", func() {
})
It("podman inspect container and filter for Image{ID}", func() {
- SkipIfRemote()
ls, ec, _ := podmanTest.RunLsContainer("")
Expect(ec).To(Equal(0))
cid := ls.OutputToString()
@@ -119,7 +114,6 @@ var _ = Describe("Podman inspect", func() {
})
It("podman inspect container and filter for CreateCommand", func() {
- SkipIfRemote()
ls, ec, _ := podmanTest.RunLsContainer("")
Expect(ec).To(Equal(0))
cid := ls.OutputToString()
diff --git a/test/e2e/kill_test.go b/test/e2e/kill_test.go
index 834f86b77..b0f9cd900 100644
--- a/test/e2e/kill_test.go
+++ b/test/e2e/kill_test.go
@@ -100,6 +100,7 @@ var _ = Describe("Podman kill", func() {
})
It("podman kill latest container", func() {
+ Skip(v2remotefail)
session := podmanTest.RunTopContainer("")
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
diff --git a/test/e2e/libpod_suite_remote_test.go b/test/e2e/libpod_suite_remote_test.go
new file mode 100644
index 000000000..79d18115c
--- /dev/null
+++ b/test/e2e/libpod_suite_remote_test.go
@@ -0,0 +1,214 @@
+// +build remoteclient
+
+package integration
+
+import (
+ "bytes"
+ "errors"
+ "fmt"
+ "io/ioutil"
+ "os"
+ "os/exec"
+ "path/filepath"
+ "strconv"
+ "strings"
+ "syscall"
+ "time"
+
+ "github.com/containers/libpod/pkg/rootless"
+ "github.com/onsi/ginkgo"
+)
+
+func SkipIfRemote() {
+ ginkgo.Skip("This function is not enabled for remote podman")
+}
+
+func SkipIfRootless() {
+ if os.Geteuid() != 0 {
+ ginkgo.Skip("This function is not enabled for rootless podman")
+ }
+}
+func SkipIfRootlessV2() {
+ if os.Geteuid() != 0 {
+ ginkgo.Skip("This function is not enabled for v2 rootless podman")
+ }
+}
+
+// Podman is the exec call to podman on the filesystem
+func (p *PodmanTestIntegration) Podman(args []string) *PodmanSessionIntegration {
+ var remoteArgs = []string{"--remote", p.RemoteSocket}
+ remoteArgs = append(remoteArgs, args...)
+ podmanSession := p.PodmanBase(remoteArgs, false, false)
+ return &PodmanSessionIntegration{podmanSession}
+}
+
+// PodmanExtraFiles is the exec call to podman on the filesystem and passes down extra files
+func (p *PodmanTestIntegration) PodmanExtraFiles(args []string, extraFiles []*os.File) *PodmanSessionIntegration {
+ var remoteArgs = []string{"--remote", p.RemoteSocket}
+ remoteArgs = append(remoteArgs, args...)
+ podmanSession := p.PodmanAsUserBase(remoteArgs, 0, 0, "", nil, false, false, extraFiles)
+ return &PodmanSessionIntegration{podmanSession}
+}
+
+// PodmanNoCache calls podman with out adding the imagecache
+func (p *PodmanTestIntegration) PodmanNoCache(args []string) *PodmanSessionIntegration {
+ var remoteArgs = []string{"--remote", p.RemoteSocket}
+ remoteArgs = append(remoteArgs, args...)
+ podmanSession := p.PodmanBase(remoteArgs, false, true)
+ return &PodmanSessionIntegration{podmanSession}
+}
+
+// PodmanNoEvents calls the Podman command without an imagecache and without an
+// events backend. It is used mostly for caching and uncaching images.
+func (p *PodmanTestIntegration) PodmanNoEvents(args []string) *PodmanSessionIntegration {
+ podmanSession := p.PodmanBase(args, true, true)
+ return &PodmanSessionIntegration{podmanSession}
+}
+
+func (p *PodmanTestIntegration) setDefaultRegistriesConfigEnv() {
+ defaultFile := filepath.Join(INTEGRATION_ROOT, "test/registries.conf")
+ os.Setenv("REGISTRIES_CONFIG_PATH", defaultFile)
+}
+
+func (p *PodmanTestIntegration) setRegistriesConfigEnv(b []byte) {
+ outfile := filepath.Join(p.TempDir, "registries.conf")
+ os.Setenv("REGISTRIES_CONFIG_PATH", outfile)
+ ioutil.WriteFile(outfile, b, 0644)
+}
+
+func resetRegistriesConfigEnv() {
+ os.Setenv("REGISTRIES_CONFIG_PATH", "")
+}
+func PodmanTestCreate(tempDir string) *PodmanTestIntegration {
+ pti := PodmanTestCreateUtil(tempDir, true)
+ pti.StartRemoteService()
+ return pti
+}
+
+func (p *PodmanTestIntegration) StartRemoteService() {
+ if os.Geteuid() == 0 {
+ os.MkdirAll("/run/podman", 0755)
+ }
+ remoteSocket := p.RemoteSocket
+ args := []string{"system", "service", "--timeout", "0", remoteSocket}
+ podmanOptions := getRemoteOptions(p, args)
+ command := exec.Command(p.PodmanBinary, podmanOptions...)
+ fmt.Printf("Running: %s %s\n", p.PodmanBinary, strings.Join(podmanOptions, " "))
+ command.Start()
+ command.SysProcAttr = &syscall.SysProcAttr{Setpgid: true}
+ p.RemoteCommand = command
+ p.RemoteSession = command.Process
+ err := p.DelayForService()
+ p.RemoteStartErr = err
+}
+
+func (p *PodmanTestIntegration) StopRemoteService() {
+ var out bytes.Buffer
+ var pids []int
+ remoteSession := p.RemoteSession
+
+ if !rootless.IsRootless() {
+ if err := remoteSession.Kill(); err != nil {
+ fmt.Fprintf(os.Stderr, "error on remote stop-kill %q", err)
+ }
+ if _, err := remoteSession.Wait(); err != nil {
+ fmt.Fprintf(os.Stderr, "error on remote stop-wait %q", err)
+ }
+
+ } else {
+ //p.ResetVarlinkAddress()
+ parentPid := fmt.Sprintf("%d", p.RemoteSession.Pid)
+ pgrep := exec.Command("pgrep", "-P", parentPid)
+ fmt.Printf("running: pgrep %s\n", parentPid)
+ pgrep.Stdout = &out
+ err := pgrep.Run()
+ if err != nil {
+ fmt.Fprint(os.Stderr, "unable to find remote pid")
+ }
+
+ for _, s := range strings.Split(out.String(), "\n") {
+ if len(s) == 0 {
+ continue
+ }
+ p, err := strconv.Atoi(s)
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "unable to convert %s to int", s)
+ }
+ if p != 0 {
+ pids = append(pids, p)
+ }
+ }
+
+ pids = append(pids, p.RemoteSession.Pid)
+ for _, pid := range pids {
+ syscall.Kill(pid, syscall.SIGKILL)
+ }
+ }
+ socket := strings.Split(p.RemoteSocket, ":")[1]
+ if err := os.Remove(socket); err != nil {
+ fmt.Println(err)
+ }
+}
+
+//MakeOptions assembles all the podman main options
+func (p *PodmanTestIntegration) makeOptions(args []string, noEvents, noCache bool) []string {
+ return args
+}
+
+//MakeOptions assembles all the podman main options
+func getRemoteOptions(p *PodmanTestIntegration, args []string) []string {
+ podmanOptions := strings.Split(fmt.Sprintf("--root %s --runroot %s --runtime %s --conmon %s --cni-config-dir %s --cgroup-manager %s",
+ p.CrioRoot, p.RunRoot, p.OCIRuntime, p.ConmonBinary, p.CNIConfigDir, p.CgroupManager), " ")
+ if os.Getenv("HOOK_OPTION") != "" {
+ podmanOptions = append(podmanOptions, os.Getenv("HOOK_OPTION"))
+ }
+ podmanOptions = append(podmanOptions, strings.Split(p.StorageOptions, " ")...)
+ podmanOptions = append(podmanOptions, args...)
+ return podmanOptions
+}
+
+func (p *PodmanTestIntegration) RestoreArtifactToCache(image string) error {
+ fmt.Printf("Restoring %s...\n", image)
+ dest := strings.Split(image, "/")
+ destName := fmt.Sprintf("/tmp/%s.tar", strings.Replace(strings.Join(strings.Split(dest[len(dest)-1], "/"), ""), ":", "-", -1))
+ p.CrioRoot = p.ImageCacheDir
+ restore := p.PodmanNoEvents([]string{"load", "-q", "-i", destName})
+ restore.WaitWithDefaultTimeout()
+ return nil
+}
+
+// SeedImages restores all the artifacts into the main store for remote tests
+func (p *PodmanTestIntegration) SeedImages() error {
+ return p.RestoreAllArtifacts()
+}
+
+// RestoreArtifact puts the cached image into our test store
+func (p *PodmanTestIntegration) RestoreArtifact(image string) error {
+ fmt.Printf("Restoring %s...\n", image)
+ dest := strings.Split(image, "/")
+ destName := fmt.Sprintf("/tmp/%s.tar", strings.Replace(strings.Join(strings.Split(dest[len(dest)-1], "/"), ""), ":", "-", -1))
+ args := []string{"load", "-q", "-i", destName}
+ podmanOptions := getRemoteOptions(p, args)
+ command := exec.Command(p.PodmanBinary, podmanOptions...)
+ fmt.Printf("Running: %s %s\n", p.PodmanBinary, strings.Join(podmanOptions, " "))
+ command.Start()
+ command.Wait()
+ return nil
+}
+
+func (p *PodmanTestIntegration) DelayForService() error {
+ for i := 0; i < 5; i++ {
+ session := p.Podman([]string{"info"})
+ session.WaitWithDefaultTimeout()
+ if session.ExitCode() == 0 {
+ return nil
+ } else if i == 4 {
+ break
+ }
+ time.Sleep(2 * time.Second)
+ }
+ return errors.New("Service not detected")
+}
+
+func populateCache(podman *PodmanTestIntegration) {}
+func removeCache() {}
diff --git a/test/e2e/libpod_suite_test.go b/test/e2e/libpod_suite_test.go
index d26f5784d..009f70914 100644
--- a/test/e2e/libpod_suite_test.go
+++ b/test/e2e/libpod_suite_test.go
@@ -127,8 +127,8 @@ func (p *PodmanTestIntegration) RestoreArtifactToCache(image string) error {
return nil
}
-func (p *PodmanTestIntegration) StopVarlink() {}
-func (p *PodmanTestIntegration) DelayForVarlink() {}
+func (p *PodmanTestIntegration) StopRemoteService() {}
+func (p *PodmanTestIntegration) DelayForVarlink() {}
func populateCache(podman *PodmanTestIntegration) {
for _, image := range CACHE_IMAGES {
@@ -151,5 +151,5 @@ func (p *PodmanTestIntegration) SeedImages() error {
}
// We don't support running Varlink when local
-func (p *PodmanTestIntegration) StartVarlink() {
+func (p *PodmanTestIntegration) StartRemoteService() {
}
diff --git a/test/e2e/libpod_suite_remoteclient_test.go b/test/e2e/libpod_suite_varlink_test.go
index b5da041ab..cbaed71cc 100644
--- a/test/e2e/libpod_suite_remoteclient_test.go
+++ b/test/e2e/libpod_suite_varlink_test.go
@@ -1,11 +1,10 @@
-// +build remoteclient
+// +build remoteclientvarlink
package integration
import (
"bytes"
"fmt"
- "github.com/containers/libpod/pkg/rootless"
"io/ioutil"
"os"
"os/exec"
@@ -15,6 +14,8 @@ import (
"syscall"
"time"
+ "github.com/containers/libpod/pkg/rootless"
+
"github.com/onsi/ginkgo"
)
@@ -69,24 +70,24 @@ func resetRegistriesConfigEnv() {
}
func PodmanTestCreate(tempDir string) *PodmanTestIntegration {
pti := PodmanTestCreateUtil(tempDir, true)
- pti.StartVarlink()
+ pti.StartRemoteService()
return pti
}
func (p *PodmanTestIntegration) ResetVarlinkAddress() {
- os.Unsetenv("PODMAN_VARLINK_ADDRESS")
+ //os.Unsetenv("PODMAN_VARLINK_ADDRESS")
}
func (p *PodmanTestIntegration) SetVarlinkAddress(addr string) {
- os.Setenv("PODMAN_VARLINK_ADDRESS", addr)
+ //os.Setenv("PODMAN_VARLINK_ADDRESS", addr)
}
func (p *PodmanTestIntegration) StartVarlink() {
if os.Geteuid() == 0 {
os.MkdirAll("/run/podman", 0755)
}
- varlinkEndpoint := p.VarlinkEndpoint
- p.SetVarlinkAddress(p.VarlinkEndpoint)
+ varlinkEndpoint := p.RemoteSocket
+ p.SetVarlinkAddress(p.RemoteSocket)
args := []string{"varlink", "--timeout", "0", varlinkEndpoint}
podmanOptions := getVarlinkOptions(p, args)
@@ -94,15 +95,15 @@ func (p *PodmanTestIntegration) StartVarlink() {
fmt.Printf("Running: %s %s\n", p.PodmanBinary, strings.Join(podmanOptions, " "))
command.Start()
command.SysProcAttr = &syscall.SysProcAttr{Setpgid: true}
- p.VarlinkCommand = command
- p.VarlinkSession = command.Process
- p.DelayForVarlink()
+ p.RemoteCommand = command
+ p.RemoteSession = command.Process
+ p.DelayForService()
}
func (p *PodmanTestIntegration) StopVarlink() {
var out bytes.Buffer
var pids []int
- varlinkSession := p.VarlinkSession
+ varlinkSession := p.RemoteSession
if !rootless.IsRootless() {
if err := varlinkSession.Kill(); err != nil {
@@ -114,7 +115,7 @@ func (p *PodmanTestIntegration) StopVarlink() {
} else {
p.ResetVarlinkAddress()
- parentPid := fmt.Sprintf("%d", p.VarlinkSession.Pid)
+ parentPid := fmt.Sprintf("%d", p.RemoteSession.Pid)
pgrep := exec.Command("pgrep", "-P", parentPid)
fmt.Printf("running: pgrep %s\n", parentPid)
pgrep.Stdout = &out
@@ -136,12 +137,12 @@ func (p *PodmanTestIntegration) StopVarlink() {
}
}
- pids = append(pids, p.VarlinkSession.Pid)
+ pids = append(pids, p.RemoteSession.Pid)
for _, pid := range pids {
syscall.Kill(pid, syscall.SIGKILL)
}
}
- socket := strings.Split(p.VarlinkEndpoint, ":")[1]
+ socket := strings.Split(p.RemoteSocket, ":")[1]
if err := os.Remove(socket); err != nil {
fmt.Println(err)
}
diff --git a/test/e2e/logs_test.go b/test/e2e/logs_test.go
index 0438a31cb..8924db670 100644
--- a/test/e2e/logs_test.go
+++ b/test/e2e/logs_test.go
@@ -19,6 +19,7 @@ var _ = Describe("Podman logs", func() {
)
BeforeEach(func() {
+ SkipIfRemote() // v2remotefail
tempdir, err = CreateTempDirInTempDir()
if err != nil {
os.Exit(1)
@@ -172,6 +173,24 @@ var _ = Describe("Podman logs", func() {
Expect(string(out)).To(ContainSubstring("alpine"))
})
+ It("podman journald logs for container name", func() {
+ Skip("need to verify images have correct packages for journald")
+ containerName := "inside-journal"
+ logc := podmanTest.Podman([]string{"run", "--log-driver", "journald", "-d", "--name", containerName, ALPINE, "sh", "-c", "echo podman; sleep 0.1; echo podman; sleep 0.1; echo podman"})
+ logc.WaitWithDefaultTimeout()
+ Expect(logc.ExitCode()).To(Equal(0))
+ cid := logc.OutputToString()
+
+ wait := podmanTest.Podman([]string{"wait", "-l"})
+ wait.WaitWithDefaultTimeout()
+ Expect(wait.ExitCode()).To(BeZero())
+
+ cmd := exec.Command("journalctl", "--no-pager", "-o", "json", "--output-fields=CONTAINER_NAME", "-u", fmt.Sprintf("libpod-conmon-%s.scope", cid))
+ out, err := cmd.CombinedOutput()
+ Expect(err).To(BeNil())
+ Expect(string(out)).To(ContainSubstring(containerName))
+ })
+
It("podman journald logs for container", func() {
Skip("need to verify images have correct packages for journald")
logc := podmanTest.Podman([]string{"run", "--log-driver", "journald", "-dt", ALPINE, "sh", "-c", "echo podman; echo podman; echo podman"})
diff --git a/test/e2e/manifest_test.go b/test/e2e/manifest_test.go
index f622bf042..a1decde7d 100644
--- a/test/e2e/manifest_test.go
+++ b/test/e2e/manifest_test.go
@@ -28,6 +28,7 @@ var _ = Describe("Podman manifest", func() {
)
BeforeEach(func() {
+ Skip(v2remotefail)
tempdir, err = CreateTempDirInTempDir()
if err != nil {
os.Exit(1)
diff --git a/test/e2e/pause_test.go b/test/e2e/pause_test.go
index 149a2e28a..162138a43 100644
--- a/test/e2e/pause_test.go
+++ b/test/e2e/pause_test.go
@@ -132,6 +132,7 @@ var _ = Describe("Podman pause", func() {
})
It("podman remove a paused container by id without force", func() {
+ Skip(v2remotefail)
session := podmanTest.RunTopContainer("")
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
@@ -174,6 +175,7 @@ var _ = Describe("Podman pause", func() {
})
It("podman stop a paused container by id", func() {
+ Skip(v2remotefail)
session := podmanTest.RunTopContainer("")
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
@@ -270,6 +272,7 @@ var _ = Describe("Podman pause", func() {
})
It("Pause a bunch of running containers", func() {
+ Skip(v2remotefail)
for i := 0; i < 3; i++ {
name := fmt.Sprintf("test%d", i)
run := podmanTest.Podman([]string{"run", "-dt", "--name", name, nginx})
@@ -297,6 +300,7 @@ var _ = Describe("Podman pause", func() {
})
It("Unpause a bunch of running containers", func() {
+ Skip(v2remotefail)
for i := 0; i < 3; i++ {
name := fmt.Sprintf("test%d", i)
run := podmanTest.Podman([]string{"run", "-dt", "--name", name, nginx})
diff --git a/test/e2e/pod_create_test.go b/test/e2e/pod_create_test.go
index e0a10c202..24bfa69ce 100644
--- a/test/e2e/pod_create_test.go
+++ b/test/e2e/pod_create_test.go
@@ -28,7 +28,7 @@ var _ = Describe("Podman pod create", func() {
})
AfterEach(func() {
- podmanTest.CleanupPod()
+ podmanTest.Cleanup()
f := CurrentGinkgoTestDescription()
processTestResult(f)
diff --git a/test/e2e/pod_infra_container_test.go b/test/e2e/pod_infra_container_test.go
index 3cc6fa9e8..9b6f9b657 100644
--- a/test/e2e/pod_infra_container_test.go
+++ b/test/e2e/pod_infra_container_test.go
@@ -29,7 +29,7 @@ var _ = Describe("Podman pod create", func() {
})
AfterEach(func() {
- podmanTest.CleanupPod()
+ podmanTest.Cleanup()
f := CurrentGinkgoTestDescription()
processTestResult(f)
diff --git a/test/e2e/pod_inspect_test.go b/test/e2e/pod_inspect_test.go
index f87bbe047..8040adf1e 100644
--- a/test/e2e/pod_inspect_test.go
+++ b/test/e2e/pod_inspect_test.go
@@ -26,7 +26,7 @@ var _ = Describe("Podman pod inspect", func() {
})
AfterEach(func() {
- podmanTest.CleanupPod()
+ podmanTest.Cleanup()
f := CurrentGinkgoTestDescription()
processTestResult(f)
diff --git a/test/e2e/pod_kill_test.go b/test/e2e/pod_kill_test.go
index a3efec46c..af3d2af73 100644
--- a/test/e2e/pod_kill_test.go
+++ b/test/e2e/pod_kill_test.go
@@ -27,7 +27,7 @@ var _ = Describe("Podman pod kill", func() {
})
AfterEach(func() {
- podmanTest.CleanupPod()
+ podmanTest.Cleanup()
f := CurrentGinkgoTestDescription()
processTestResult(f)
@@ -100,6 +100,7 @@ var _ = Describe("Podman pod kill", func() {
})
It("podman pod kill latest pod", func() {
+ SkipIfRemote()
_, ec, podid := podmanTest.CreatePod("")
Expect(ec).To(Equal(0))
diff --git a/test/e2e/pod_pause_test.go b/test/e2e/pod_pause_test.go
index 7067c9a87..df6e5482e 100644
--- a/test/e2e/pod_pause_test.go
+++ b/test/e2e/pod_pause_test.go
@@ -29,7 +29,7 @@ var _ = Describe("Podman pod pause", func() {
})
AfterEach(func() {
- podmanTest.CleanupPod()
+ podmanTest.Cleanup()
f := CurrentGinkgoTestDescription()
processTestResult(f)
diff --git a/test/e2e/pod_pod_namespaces.go b/test/e2e/pod_pod_namespaces.go
index 09f716806..806ec3884 100644
--- a/test/e2e/pod_pod_namespaces.go
+++ b/test/e2e/pod_pod_namespaces.go
@@ -29,7 +29,7 @@ var _ = Describe("Podman pod create", func() {
})
AfterEach(func() {
- podmanTest.CleanupPod()
+ podmanTest.Cleanup()
f := CurrentGinkgoTestDescription()
processTestResult(f)
diff --git a/test/e2e/pod_prune_test.go b/test/e2e/pod_prune_test.go
index d98383331..1711b55d4 100644
--- a/test/e2e/pod_prune_test.go
+++ b/test/e2e/pod_prune_test.go
@@ -26,7 +26,7 @@ var _ = Describe("Podman pod prune", func() {
})
AfterEach(func() {
- podmanTest.CleanupPod()
+ podmanTest.Cleanup()
f := CurrentGinkgoTestDescription()
processTestResult(f)
diff --git a/test/e2e/pod_ps_test.go b/test/e2e/pod_ps_test.go
index 5f8712a7a..81d97b72d 100644
--- a/test/e2e/pod_ps_test.go
+++ b/test/e2e/pod_ps_test.go
@@ -28,7 +28,7 @@ var _ = Describe("Podman ps", func() {
})
AfterEach(func() {
- podmanTest.CleanupPod()
+ podmanTest.Cleanup()
f := CurrentGinkgoTestDescription()
processTestResult(f)
@@ -83,6 +83,7 @@ var _ = Describe("Podman ps", func() {
})
It("podman pod ps latest", func() {
+ SkipIfRemote()
_, ec, podid1 := podmanTest.CreatePod("")
Expect(ec).To(Equal(0))
diff --git a/test/e2e/pod_restart_test.go b/test/e2e/pod_restart_test.go
index 691fe5f0c..72e804353 100644
--- a/test/e2e/pod_restart_test.go
+++ b/test/e2e/pod_restart_test.go
@@ -26,7 +26,7 @@ var _ = Describe("Podman pod restart", func() {
})
AfterEach(func() {
- podmanTest.CleanupPod()
+ podmanTest.Cleanup()
f := CurrentGinkgoTestDescription()
processTestResult(f)
@@ -134,6 +134,7 @@ var _ = Describe("Podman pod restart", func() {
})
It("podman pod restart latest pod", func() {
+ SkipIfRemote()
_, ec, _ := podmanTest.CreatePod("foobar99")
Expect(ec).To(Equal(0))
diff --git a/test/e2e/pod_rm_test.go b/test/e2e/pod_rm_test.go
index 90f178be6..e10b3c98f 100644
--- a/test/e2e/pod_rm_test.go
+++ b/test/e2e/pod_rm_test.go
@@ -29,7 +29,7 @@ var _ = Describe("Podman pod rm", func() {
})
AfterEach(func() {
- podmanTest.CleanupPod()
+ podmanTest.Cleanup()
f := CurrentGinkgoTestDescription()
processTestResult(f)
@@ -60,6 +60,7 @@ var _ = Describe("Podman pod rm", func() {
})
It("podman pod rm latest pod", func() {
+ SkipIfRemote()
_, ec, podid := podmanTest.CreatePod("")
Expect(ec).To(Equal(0))
diff --git a/test/e2e/pod_start_test.go b/test/e2e/pod_start_test.go
index 2722cb5b3..8e78cadfd 100644
--- a/test/e2e/pod_start_test.go
+++ b/test/e2e/pod_start_test.go
@@ -26,7 +26,7 @@ var _ = Describe("Podman pod start", func() {
})
AfterEach(func() {
- podmanTest.CleanupPod()
+ podmanTest.Cleanup()
f := CurrentGinkgoTestDescription()
processTestResult(f)
@@ -103,6 +103,7 @@ var _ = Describe("Podman pod start", func() {
})
It("podman pod start latest pod", func() {
+ SkipIfRemote()
_, ec, _ := podmanTest.CreatePod("foobar99")
Expect(ec).To(Equal(0))
diff --git a/test/e2e/pod_stats_test.go b/test/e2e/pod_stats_test.go
index 347f33e62..9bba59073 100644
--- a/test/e2e/pod_stats_test.go
+++ b/test/e2e/pod_stats_test.go
@@ -35,7 +35,7 @@ var _ = Describe("Podman pod stats", func() {
})
AfterEach(func() {
- podmanTest.CleanupPod()
+ podmanTest.Cleanup()
f := CurrentGinkgoTestDescription()
processTestResult(f)
diff --git a/test/e2e/pod_stop_test.go b/test/e2e/pod_stop_test.go
index a61917adb..298f3da2f 100644
--- a/test/e2e/pod_stop_test.go
+++ b/test/e2e/pod_stop_test.go
@@ -26,7 +26,7 @@ var _ = Describe("Podman pod stop", func() {
})
AfterEach(func() {
- podmanTest.CleanupPod()
+ podmanTest.Cleanup()
f := CurrentGinkgoTestDescription()
processTestResult(f)
@@ -144,6 +144,7 @@ var _ = Describe("Podman pod stop", func() {
})
It("podman pod stop latest pod", func() {
+ SkipIfRemote()
_, ec, _ := podmanTest.CreatePod("foobar99")
Expect(ec).To(Equal(0))
diff --git a/test/e2e/pod_top_test.go b/test/e2e/pod_top_test.go
index c313b0675..de011eda7 100644
--- a/test/e2e/pod_top_test.go
+++ b/test/e2e/pod_top_test.go
@@ -30,7 +30,7 @@ var _ = Describe("Podman top", func() {
})
AfterEach(func() {
- podmanTest.CleanupPod()
+ podmanTest.Cleanup()
f := CurrentGinkgoTestDescription()
processTestResult(f)
diff --git a/test/e2e/prune_test.go b/test/e2e/prune_test.go
index a09b6f37a..ccd322dd2 100644
--- a/test/e2e/prune_test.go
+++ b/test/e2e/prune_test.go
@@ -161,6 +161,7 @@ var _ = Describe("Podman prune", func() {
})
It("podman system prune pods", func() {
+ Skip(v2remotefail)
session := podmanTest.Podman([]string{"pod", "create"})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
@@ -193,6 +194,7 @@ var _ = Describe("Podman prune", func() {
})
It("podman system prune - pod,container stopped", func() {
+ Skip(v2remotefail)
session := podmanTest.Podman([]string{"pod", "create"})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
@@ -224,7 +226,7 @@ var _ = Describe("Podman prune", func() {
})
It("podman system prune with running, exited pod and volume prune set true", func() {
-
+ Skip(v2remotefail)
// Start and stop a pod to get it in exited state.
session := podmanTest.Podman([]string{"pod", "create"})
session.WaitWithDefaultTimeout()
@@ -299,6 +301,7 @@ var _ = Describe("Podman prune", func() {
})
It("podman system prune - with dangling images true", func() {
+ Skip(v2remotefail)
session := podmanTest.Podman([]string{"pod", "create"})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
diff --git a/test/e2e/ps_test.go b/test/e2e/ps_test.go
index b987c3ff4..8965ce297 100644
--- a/test/e2e/ps_test.go
+++ b/test/e2e/ps_test.go
@@ -101,6 +101,7 @@ var _ = Describe("Podman ps", func() {
})
It("podman ps latest flag", func() {
+ SkipIfRemote()
_, ec, _ := podmanTest.RunLsContainer("")
Expect(ec).To(Equal(0))
diff --git a/test/e2e/restart_test.go b/test/e2e/restart_test.go
index 2b515f53b..e72a20f2d 100644
--- a/test/e2e/restart_test.go
+++ b/test/e2e/restart_test.go
@@ -122,6 +122,7 @@ var _ = Describe("Podman restart", func() {
})
It("Podman restart the latest container", func() {
+ SkipIfRemote()
_, exitCode, _ := podmanTest.RunLsContainer("test1")
Expect(exitCode).To(Equal(0))
diff --git a/test/e2e/rm_test.go b/test/e2e/rm_test.go
index 4eb568879..552683d8c 100644
--- a/test/e2e/rm_test.go
+++ b/test/e2e/rm_test.go
@@ -43,6 +43,7 @@ var _ = Describe("Podman rm", func() {
})
It("podman rm refuse to remove a running container", func() {
+ Skip(v2remotefail)
session := podmanTest.RunTopContainer("")
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
@@ -123,6 +124,7 @@ var _ = Describe("Podman rm", func() {
})
It("podman rm the latest container", func() {
+ SkipIfRemote()
session := podmanTest.Podman([]string{"create", ALPINE, "ls"})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
diff --git a/test/e2e/rmi_test.go b/test/e2e/rmi_test.go
index 6c0b01bd5..150726ce4 100644
--- a/test/e2e/rmi_test.go
+++ b/test/e2e/rmi_test.go
@@ -75,6 +75,7 @@ var _ = Describe("Podman rmi", func() {
})
It("podman rmi tagged image", func() {
+ Skip(v2remotefail)
setup := podmanTest.PodmanNoCache([]string{"images", "-q", ALPINE})
setup.WaitWithDefaultTimeout()
Expect(setup).Should(Exit(0))
@@ -91,6 +92,7 @@ var _ = Describe("Podman rmi", func() {
})
It("podman rmi image with tags by ID cannot be done without force", func() {
+ Skip(v2remotefail)
setup := podmanTest.PodmanNoCache([]string{"images", "-q", ALPINE})
setup.WaitWithDefaultTimeout()
Expect(setup).Should(Exit(0))
diff --git a/test/e2e/run_exit_test.go b/test/e2e/run_exit_test.go
index 40731142e..d4b44ff23 100644
--- a/test/e2e/run_exit_test.go
+++ b/test/e2e/run_exit_test.go
@@ -62,6 +62,7 @@ var _ = Describe("Podman run exit", func() {
})
It("podman run exit 50", func() {
+ Skip(v2remotefail)
result := podmanTest.Podman([]string{"run", ALPINE, "sh", "-c", "exit 50"})
result.WaitWithDefaultTimeout()
Expect(result.ExitCode()).To(Equal(50))
diff --git a/test/e2e/save_test.go b/test/e2e/save_test.go
index aaa5ae180..69454f6a9 100644
--- a/test/e2e/save_test.go
+++ b/test/e2e/save_test.go
@@ -68,6 +68,7 @@ var _ = Describe("Podman save", func() {
})
It("podman save bogus image", func() {
+ Skip(v2remotefail)
outfile := filepath.Join(podmanTest.TempDir, "alpine.tar")
save := podmanTest.PodmanNoCache([]string{"save", "-o", outfile, "FOOBAR"})
diff --git a/test/e2e/start_test.go b/test/e2e/start_test.go
index 6af0b7068..a7a9e7fdb 100644
--- a/test/e2e/start_test.go
+++ b/test/e2e/start_test.go
@@ -40,6 +40,7 @@ var _ = Describe("Podman start", func() {
})
It("podman start single container by id", func() {
+ Skip(v2remotefail)
session := podmanTest.Podman([]string{"create", "-d", ALPINE, "ls"})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
@@ -50,6 +51,7 @@ var _ = Describe("Podman start", func() {
})
It("podman container start single container by id", func() {
+ Skip(v2remotefail)
session := podmanTest.Podman([]string{"container", "create", "-d", ALPINE, "ls"})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
@@ -61,6 +63,7 @@ var _ = Describe("Podman start", func() {
})
It("podman container start single container by short id", func() {
+ Skip(v2remotefail)
session := podmanTest.Podman([]string{"container", "create", "-d", ALPINE, "ls"})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
@@ -120,6 +123,7 @@ var _ = Describe("Podman start", func() {
})
It("podman failed to start with --rm should delete the container", func() {
+ SkipIfRemote()
session := podmanTest.Podman([]string{"create", "-it", "--rm", ALPINE, "foo"})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
@@ -132,6 +136,7 @@ var _ = Describe("Podman start", func() {
})
It("podman failed to start without --rm should NOT delete the container", func() {
+ SkipIfRemote()
session := podmanTest.Podman([]string{"create", "-it", ALPINE, "foo"})
session.WaitWithDefaultTimeout()
Expect(session).Should(Exit(0))
diff --git a/test/e2e/stop_test.go b/test/e2e/stop_test.go
index 54c64d66b..8c845e90a 100644
--- a/test/e2e/stop_test.go
+++ b/test/e2e/stop_test.go
@@ -184,6 +184,7 @@ var _ = Describe("Podman stop", func() {
})
It("podman stop latest containers", func() {
+ SkipIfRemote()
session := podmanTest.RunTopContainer("test1")
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
@@ -197,6 +198,7 @@ var _ = Describe("Podman stop", func() {
})
It("podman stop all containers with one stopped", func() {
+ Skip(v2remotefail)
session := podmanTest.RunTopContainer("test1")
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
@@ -216,6 +218,7 @@ var _ = Describe("Podman stop", func() {
})
It("podman stop all containers with one created", func() {
+ Skip(v2remotefail)
session := podmanTest.RunTopContainer("test1")
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
diff --git a/test/e2e/system_reset_test.go b/test/e2e/system_reset_test.go
index e5ce69739..f45ff0c5f 100644
--- a/test/e2e/system_reset_test.go
+++ b/test/e2e/system_reset_test.go
@@ -34,6 +34,7 @@ var _ = Describe("podman system reset", func() {
})
It("podman system reset", func() {
+ Skip(v2remotefail)
// system reset will not remove additional store images, so need to grab length
session := podmanTest.Podman([]string{"rmi", "--force", "--all"})
@@ -63,7 +64,7 @@ var _ = Describe("podman system reset", func() {
// If remote then the varlink service should have exited
// On local tests this is a noop
- podmanTest.StartVarlink()
+ podmanTest.StartRemoteService()
session = podmanTest.Podman([]string{"images", "-n"})
session.WaitWithDefaultTimeout()
diff --git a/test/e2e/untag_test.go b/test/e2e/untag_test.go
index 17171cd41..c61f57a9c 100644
--- a/test/e2e/untag_test.go
+++ b/test/e2e/untag_test.go
@@ -40,6 +40,7 @@ var _ = Describe("Podman untag", func() {
})
It("podman untag all", func() {
+ Skip(v2remotefail)
session := podmanTest.PodmanNoCache([]string{"untag", ALPINE})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
diff --git a/test/endpoint/endpoint.go b/test/endpoint/endpoint.go
index f1677ec5f..284f0d79c 100644
--- a/test/endpoint/endpoint.go
+++ b/test/endpoint/endpoint.go
@@ -71,7 +71,7 @@ func (p *EndpointTestIntegration) startVarlink(useImageCache bool) {
os.MkdirAll("/run/podman", 0755)
}
varlinkEndpoint := p.VarlinkEndpoint
- //p.SetVarlinkAddress(p.VarlinkEndpoint)
+ //p.SetVarlinkAddress(p.RemoteSocket)
args := []string{"varlink", "--timeout", "0", varlinkEndpoint}
podmanOptions := getVarlinkOptions(p, args)
diff --git a/test/system/030-run.bats b/test/system/030-run.bats
index ae2e39d6b..1bcf3896f 100644
--- a/test/system/030-run.bats
+++ b/test/system/030-run.bats
@@ -8,8 +8,8 @@ load helpers
# 2019-09 Fedora 31 and rawhide (32) are switching from runc to crun
# because of cgroups v2; crun emits different error messages.
# Default to runc:
- err_no_such_cmd="Error: .*: starting container process caused .*exec:.*stat /no/such/command: no such file or directory"
- err_no_exec_dir="Error: .*: starting container process caused .*exec:.* permission denied"
+ err_no_such_cmd="Error: .*: starting container process caused.*exec:.*stat /no/such/command: no such file or directory"
+ err_no_exec_dir="Error: .*: starting container process caused.*exec:.* permission denied"
# ...but check the configured runtime engine, and switch to crun as needed
run_podman info --format '{{ .Host.OCIRuntime.Path }}'
diff --git a/test/system/160-volumes.bats b/test/system/160-volumes.bats
index cd9f3c8ad..5d65a950f 100644
--- a/test/system/160-volumes.bats
+++ b/test/system/160-volumes.bats
@@ -116,8 +116,17 @@ EOF
chmod 755 $mountpoint/myscript
# By default, volumes are mounted noexec. This should fail.
- run_podman 126 run --rm --volume $myvolume:/vol:z $IMAGE /vol/myscript
- is "$output" ".* OCI runtime permission denied.*" "run on volume, noexec"
+ # ARGH. Unfortunately, runc (used for cgroups v1) produces a different error
+ local expect_rc=126
+ local expect_msg='.* OCI runtime permission denied.*'
+ run_podman info --format '{{ .Host.OCIRuntime.Path }}'
+ if expr "$output" : ".*/runc"; then
+ expect_rc=1
+ expect_msg='.* exec user process caused.*permission denied'
+ fi
+
+ run_podman ${expect_rc} run --rm --volume $myvolume:/vol:z $IMAGE /vol/myscript
+ is "$output" "$expect_msg" "run on volume, noexec"
# With exec, it should pass
run_podman run --rm -v $myvolume:/vol:z,exec $IMAGE /vol/myscript
diff --git a/test/system/250-systemd.bats b/test/system/250-systemd.bats
index cdac43c1c..4bee13414 100644
--- a/test/system/250-systemd.bats
+++ b/test/system/250-systemd.bats
@@ -33,6 +33,13 @@ function teardown() {
# This test can fail in dev. environment because of SELinux.
# quick fix: chcon -t container_runtime_exec_t ./bin/podman
@test "podman generate - systemd - basic" {
+ # podman initializes this if unset, but systemctl doesn't
+ if is_rootless; then
+ if [ -z "$XDG_RUNTIME_DIR" ]; then
+ export XDG_RUNTIME_DIR=/run/user/$(id -u)
+ fi
+ fi
+
cname=$(random_string)
run_podman create --name $cname --detach $IMAGE top
diff --git a/test/utils/utils.go b/test/utils/utils.go
index 0131e023d..1d59e5468 100644
--- a/test/utils/utils.go
+++ b/test/utils/utils.go
@@ -39,9 +39,9 @@ type PodmanTest struct {
TempDir string
RemoteTest bool
RemotePodmanBinary string
- VarlinkSession *os.Process
- VarlinkEndpoint string
- VarlinkCommand *exec.Cmd
+ RemoteSession *os.Process
+ RemoteSocket string
+ RemoteCommand *exec.Cmd
ImageCacheDir string
ImageCacheFS string
}
@@ -71,9 +71,10 @@ func (p *PodmanTest) PodmanAsUserBase(args []string, uid, gid uint32, cwd string
podmanBinary := p.PodmanBinary
if p.RemoteTest {
podmanBinary = p.RemotePodmanBinary
- env = append(env, fmt.Sprintf("PODMAN_VARLINK_ADDRESS=%s", p.VarlinkEndpoint))
}
-
+ if p.RemoteTest {
+ podmanOptions = append([]string{"--remote", p.RemoteSocket}, podmanOptions...)
+ }
if env == nil {
fmt.Printf("Running: %s %s\n", podmanBinary, strings.Join(podmanOptions, " "))
} else {