summaryrefslogtreecommitdiff
path: root/test/system
diff options
context:
space:
mode:
authorEd Santiago <santiago@redhat.com>2019-08-07 14:24:23 -0600
committerEd Santiago <santiago@redhat.com>2019-08-08 11:44:55 -0600
commit5c108cdab4888c53fbe7d4cb546544cc5a4929aa (patch)
tree8959a746011ee94b552379da04f7749db096d160 /test/system
parent3959a357f7cefc9e3494042781fe0978e621cccc (diff)
downloadpodman-5c108cdab4888c53fbe7d4cb546544cc5a4929aa.tar.gz
podman-5c108cdab4888c53fbe7d4cb546544cc5a4929aa.tar.bz2
podman-5c108cdab4888c53fbe7d4cb546544cc5a4929aa.zip
implement 'make remotesystem'
podman-remote rm now works; that's the only thing we were waiting for to enable podman-remote (varlink) system tests. Add a (too-complicated, sorry) Makefile target that will define a random socket path, start the podman varlink server, and run the test suite using podman-remote. Also: add two convenience functions, is_rootless and is_remote, and use those in skip_if_rootless/if_remote and elsewhere Also: workarounds for broken tests: - basic version test: podman-remote emits an empty 'Client' line. Just ignore it. - looks like 'podman-remote pod' doesn't work; skip test. Also: minor documentation update Signed-off-by: Ed Santiago <santiago@redhat.com>
Diffstat (limited to 'test/system')
-rw-r--r--test/system/001-basic.bats8
-rw-r--r--test/system/070-build.bats6
-rw-r--r--test/system/200-pod-top.bats2
-rw-r--r--test/system/README.md2
-rw-r--r--test/system/helpers.bash21
5 files changed, 27 insertions, 12 deletions
diff --git a/test/system/001-basic.bats b/test/system/001-basic.bats
index 85b9bc1ca..5fc07acfb 100644
--- a/test/system/001-basic.bats
+++ b/test/system/001-basic.bats
@@ -13,6 +13,14 @@ function setup() {
@test "podman version emits reasonable output" {
run_podman version
+ # First line of podman-remote is "Client:<blank>".
+ # Just delete it (i.e. remove the first entry from the 'lines' array)
+ if is_remote; then
+ if expr "${lines[0]}" : "Client:" >/dev/null; then
+ lines=("${lines[@]:1}")
+ fi
+ fi
+
is "${lines[0]}" "Version:[ ]\+[1-9][0-9.]\+" "Version line 1"
is "$output" ".*Go Version: \+" "'Go Version' in output"
is "$output" ".*RemoteAPI Version: \+" "API version in output"
diff --git a/test/system/070-build.bats b/test/system/070-build.bats
index c1e7c7ec4..5ef84e9b8 100644
--- a/test/system/070-build.bats
+++ b/test/system/070-build.bats
@@ -6,10 +6,8 @@
load helpers
@test "podman build - basic test" {
- if [[ "$PODMAN" =~ -remote ]]; then
- if [ "$(id -u)" -ne 0 ]; then
- skip "unreliable with podman-remote and rootless; #2972"
- fi
+ if is_remote && is_rootless; then
+ skip "unreliable with podman-remote and rootless; #2972"
fi
rand_filename=$(random_string 20)
diff --git a/test/system/200-pod-top.bats b/test/system/200-pod-top.bats
index 10808ddb2..bba1e8d14 100644
--- a/test/system/200-pod-top.bats
+++ b/test/system/200-pod-top.bats
@@ -3,6 +3,8 @@
load helpers
@test "podman pod top - containers in different PID namespaces" {
+ skip_if_remote "podman-pod does not work with podman-remote"
+
# With infra=false, we don't get a /pause container (we also
# don't pull k8s.gcr.io/pause )
no_infra='--infra=false'
diff --git a/test/system/README.md b/test/system/README.md
index d98b1c0fe..fe6d1ed52 100644
--- a/test/system/README.md
+++ b/test/system/README.md
@@ -28,6 +28,8 @@ on failure.
* `skip_if_rootless` - if rootless, skip this test with a helpful message.
+* `skip_if_remote` - like the above, but skip if testing `podman-remote`
+
* `random_string` - returns a pseudorandom alphanumeric string
Test files are of the form `NNN-name.bats` where NNN is a three-digit
diff --git a/test/system/helpers.bash b/test/system/helpers.bash
index fe0a25b37..3d607f4bd 100644
--- a/test/system/helpers.bash
+++ b/test/system/helpers.bash
@@ -216,26 +216,31 @@ function wait_for_ready {
###############################################################################
# BEGIN miscellaneous tools
+# Shortcuts for common needs:
+function is_rootless() {
+ [ "$(id -u)" -ne 0 ]
+}
+
+function is_remote() {
+ [[ "$PODMAN" =~ -remote ]]
+}
+
######################
# skip_if_rootless # ...with an optional message
######################
function skip_if_rootless() {
- if [ "$(id -u)" -eq 0 ]; then
- return
+ if is_rootless; then
+ skip "${1:-not applicable under rootless podman}"
fi
-
- skip "${1:-not applicable under rootless podman}"
}
####################
# skip_if_remote # ...with an optional message
####################
function skip_if_remote() {
- if [[ ! "$PODMAN" =~ -remote ]]; then
- return
+ if is_remote; then
+ skip "${1:-test does not work with podman-remote}"
fi
-
- skip "${1:-test does not work with podman-remote}"
}
#########################