aboutsummaryrefslogtreecommitdiff
path: root/test/system
diff options
context:
space:
mode:
Diffstat (limited to 'test/system')
-rw-r--r--test/system/010-images.bats15
-rw-r--r--test/system/030-run.bats14
-rw-r--r--test/system/070-build.bats23
-rw-r--r--test/system/450-interactive.bats13
-rw-r--r--test/system/500-networking.bats14
5 files changed, 65 insertions, 14 deletions
diff --git a/test/system/010-images.bats b/test/system/010-images.bats
index bda331e6b..16f1b04ef 100644
--- a/test/system/010-images.bats
+++ b/test/system/010-images.bats
@@ -19,21 +19,22 @@ load helpers
@test "podman images - custom formats" {
tests="
---format {{.ID}} | [0-9a-f]\\\{12\\\}
---format {{.ID}} --no-trunc | sha256:[0-9a-f]\\\{64\\\}
---format {{.Repository}}:{{.Tag}} | $PODMAN_TEST_IMAGE_FQN
---format {{.Labels.created_by}} | test/system/build-testimage
---format {{.Labels.created_at}} | 20[0-9-]\\\+T[0-9:]\\\+Z
+{{.ID}} | [0-9a-f]\\\{12\\\}
+{{.ID| upper}} | [0-9A-F]\\\{12\\\}
+{{.Repository}}:{{.Tag}} | $PODMAN_TEST_IMAGE_FQN
+{{.Labels.created_by}} | test/system/build-testimage
+{{.Labels.created_at}} | 20[0-9-]\\\+T[0-9:]\\\+Z
"
parse_table "$tests" | while read fmt expect; do
- run_podman images $fmt
+ run_podman images --format "$fmt"
is "$output" "$expect\$" "podman images $fmt"
done
+ run_podman images --format "{{.ID}}" --no-trunc
+ is "$output" "sha256:[0-9a-f]\\{64\\}\$" "podman images --no-trunc"
}
-
@test "podman images - json" {
# 'created': podman includes fractional seconds, podman-remote does not
tests="
diff --git a/test/system/030-run.bats b/test/system/030-run.bats
index 55392ea47..f0d541354 100644
--- a/test/system/030-run.bats
+++ b/test/system/030-run.bats
@@ -690,4 +690,18 @@ json-file | f
run_podman rm $cid
}
+@test "podman run no /etc/mtab " {
+ tmpdir=$PODMAN_TMPDIR/build-test
+ mkdir -p $tmpdir
+
+ cat >$tmpdir/Dockerfile <<EOF
+FROM $IMAGE
+RUN rm /etc/mtab
+EOF
+ expected="'/etc/mtab' -> '/proc/mounts'"
+ run_podman build -t nomtab $tmpdir
+ run_podman run --rm nomtab stat -c %N /etc/mtab
+ is "$output" "$expected" "/etc/mtab should be created"
+}
+
# vim: filetype=sh
diff --git a/test/system/070-build.bats b/test/system/070-build.bats
index 40622d6cc..6843e28a5 100644
--- a/test/system/070-build.bats
+++ b/test/system/070-build.bats
@@ -29,6 +29,29 @@ EOF
run_podman rmi -f build_test
}
+@test "podman build test -f -" {
+ rand_filename=$(random_string 20)
+ rand_content=$(random_string 50)
+
+ tmpdir=$PODMAN_TMPDIR/build-test
+ mkdir -p $tmpdir
+ containerfile=$PODMAN_TMPDIR/Containerfile
+ cat >$containerfile <<EOF
+FROM $IMAGE
+RUN apk add nginx
+RUN echo $rand_content > /$rand_filename
+EOF
+
+ # The 'apk' command can take a long time to fetch files; bump timeout
+ PODMAN_TIMEOUT=240 run_podman build -t build_test -f - --format=docker $tmpdir < $containerfile
+ is "$output" ".*STEP 4: COMMIT" "COMMIT seen in log"
+
+ run_podman run --rm build_test cat /$rand_filename
+ is "$output" "$rand_content" "reading generated file in image"
+
+ run_podman rmi -f build_test
+}
+
@test "podman build - global runtime flags test" {
skip_if_remote "--runtime-flag flag not supported for remote"
diff --git a/test/system/450-interactive.bats b/test/system/450-interactive.bats
index a2db39492..47bdff9ab 100644
--- a/test/system/450-interactive.bats
+++ b/test/system/450-interactive.bats
@@ -57,7 +57,18 @@ function teardown() {
# ...and make sure stty under podman reads that.
run_podman run -it --name mystty $IMAGE stty size <$PODMAN_TEST_PTY
- is "$output" "$rows $cols" "stty under podman reads the correct dimensions"
+ is "$output" "$rows $cols" "stty under podman run reads the correct dimensions"
+
+ run_podman rm -f mystty
+
+ # FIXME: the checks below are flaking a lot (see #10710).
+
+ # check that the same works for podman exec
+# run_podman run -d --name mystty $IMAGE top
+# run_podman exec -it mystty stty size <$PODMAN_TEST_PTY
+# is "$output" "$rows $cols" "stty under podman exec reads the correct dimensions"
+#
+# run_podman rm -f mystty
}
diff --git a/test/system/500-networking.bats b/test/system/500-networking.bats
index 55ec80bb2..d55a786f7 100644
--- a/test/system/500-networking.bats
+++ b/test/system/500-networking.bats
@@ -162,23 +162,25 @@ load helpers
done
}
-@test "podman run with slirp4ns assigns correct gateway address to host.containers.internal" {
+@test "podman run with slirp4ns assigns correct addresses to /etc/hosts" {
CIDR="$(random_rfc1918_subnet)"
- run_podman run --network slirp4netns:cidr="${CIDR}.0/24" \
- $IMAGE grep 'host.containers.internal' /etc/hosts
- is "$output" "${CIDR}.2 host.containers.internal" "host.containers.internal should be the cidr+2 address"
+ local conname=con-$(random_string 10)
+ run_podman run --rm --network slirp4netns:cidr="${CIDR}.0/24" \
+ --name $conname --hostname $conname $IMAGE cat /etc/hosts
+ is "$output" ".*${CIDR}.2 host.containers.internal" "host.containers.internal should be the cidr+2 address"
+ is "$output" ".*${CIDR}.100 $conname $conname" "$conname should be the cidr+100 address"
}
@test "podman run with slirp4ns adds correct dns address to resolv.conf" {
CIDR="$(random_rfc1918_subnet)"
- run_podman run --network slirp4netns:cidr="${CIDR}.0/24" \
+ run_podman run --rm --network slirp4netns:cidr="${CIDR}.0/24" \
$IMAGE grep "${CIDR}" /etc/resolv.conf
is "$output" "nameserver ${CIDR}.3" "resolv.conf should have slirp4netns cidr+3 as a nameserver"
}
@test "podman run with slirp4ns assigns correct ip address container" {
CIDR="$(random_rfc1918_subnet)"
- run_podman run --network slirp4netns:cidr="${CIDR}.0/24" \
+ run_podman run --rm --network slirp4netns:cidr="${CIDR}.0/24" \
$IMAGE sh -c "ip address | grep ${CIDR}"
is "$output" ".*inet ${CIDR}.100/24 \+" "container should have slirp4netns cidr+100 assigned to interface"
}