system tests: remove unhelpful assertions
Regular primitive bats uses assertions like '[ $foo = something ]'. These are worthless for debugging: when they fail, all you know is that foo is not "something" but you don't know what foo _is_. Find and replace those assertions with 'assert', which is more informative. Instances found via: $ ack '^ *\[' tests/*.bats There are many matches for 'test' (instead of '[') but those mostly look like file-existence ones, which are less evil than string-check tests. I'm leaving those be for now. Signed-off-by: Ed Santiago <santiago@redhat.com>
This commit is contained in:
parent
d1f2cc000c
commit
a75b263f75
|
@ -128,7 +128,7 @@ load helpers
|
||||||
run_buildah rmi containers-storage:other-new-image
|
run_buildah rmi containers-storage:other-new-image
|
||||||
run_buildah rmi another-new-image
|
run_buildah rmi another-new-image
|
||||||
run_buildah images -q
|
run_buildah images -q
|
||||||
[ "$output" != "" ]
|
assert "$output" != "" "images -q"
|
||||||
run_buildah rmi -a
|
run_buildah rmi -a
|
||||||
run_buildah images -q
|
run_buildah images -q
|
||||||
expect_output ""
|
expect_output ""
|
||||||
|
|
|
@ -2064,7 +2064,7 @@ function _test_http() {
|
||||||
root=$output
|
root=$output
|
||||||
test ! -s $root/vol/subvol/subvolfile
|
test ! -s $root/vol/subvol/subvolfile
|
||||||
run stat -c %f $root/vol/subvol
|
run stat -c %f $root/vol/subvol
|
||||||
[ "$status" -eq 0 ]
|
assert "$status" -eq 0 "status code from stat $root/vol/subvol"
|
||||||
expect_output "41ed" "stat($root/vol/subvol) [0x41ed = 040755]"
|
expect_output "41ed" "stat($root/vol/subvol) [0x41ed = 040755]"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2180,12 +2180,12 @@ function _test_http() {
|
||||||
run_buildah mount ${cid}
|
run_buildah mount ${cid}
|
||||||
root=$output
|
root=$output
|
||||||
run ls $root/data/log
|
run ls $root/data/log
|
||||||
[ "$status" -eq 0 ]
|
assert "$status" -eq 0 "status from ls $root/data/log"
|
||||||
expect_output --substring "test" "ls \$root/data/log"
|
expect_output --substring "test" "ls \$root/data/log"
|
||||||
expect_output --substring "blah.txt" "ls \$root/data/log"
|
expect_output --substring "blah.txt" "ls \$root/data/log"
|
||||||
|
|
||||||
run ls -al $root
|
run ls -al $root
|
||||||
[ "$status" -eq 0 ]
|
assert "$status" -eq 0 "status from ls -al $root"
|
||||||
expect_output --substring "test-log -> /data/log" "ls -l \$root/data/log"
|
expect_output --substring "test-log -> /data/log" "ls -l \$root/data/log"
|
||||||
expect_output --substring "blah -> /test-log" "ls -l \$root/data/log"
|
expect_output --substring "blah -> /test-log" "ls -l \$root/data/log"
|
||||||
}
|
}
|
||||||
|
@ -2199,11 +2199,11 @@ function _test_http() {
|
||||||
run_buildah mount ${cid}
|
run_buildah mount ${cid}
|
||||||
root=$output
|
root=$output
|
||||||
run ls $root/log
|
run ls $root/log
|
||||||
[ "$status" -eq 0 ]
|
assert "$status" -eq 0 "status from ls $root/log"
|
||||||
expect_output --substring "test" "ls \$root/log"
|
expect_output --substring "test" "ls \$root/log"
|
||||||
|
|
||||||
run ls -al $root
|
run ls -al $root
|
||||||
[ "$status" -eq 0 ]
|
assert "$status" -eq 0 "status from ls -al $root"
|
||||||
expect_output --substring "test-log -> ../log" "ls -l \$root/log"
|
expect_output --substring "test-log -> ../log" "ls -l \$root/log"
|
||||||
test -r $root/var/data/empty
|
test -r $root/var/data/empty
|
||||||
}
|
}
|
||||||
|
@ -2217,20 +2217,20 @@ function _test_http() {
|
||||||
run_buildah mount ${cid}
|
run_buildah mount ${cid}
|
||||||
root=$output
|
root=$output
|
||||||
run ls $root/data/log
|
run ls $root/data/log
|
||||||
[ "$status" -eq 0 ]
|
assert "$status" -eq 0 "status from ls $root/data/log"
|
||||||
expect_output --substring "bin" "ls \$root/data/log"
|
expect_output --substring "bin" "ls \$root/data/log"
|
||||||
expect_output --substring "blah.txt" "ls \$root/data/log"
|
expect_output --substring "blah.txt" "ls \$root/data/log"
|
||||||
|
|
||||||
run ls -al $root/myuser
|
run ls -al $root/myuser
|
||||||
[ "$status" -eq 0 ]
|
assert "$status" -eq 0 "status from ls -al $root/myuser"
|
||||||
expect_output --substring "log -> /test" "ls -al \$root/myuser"
|
expect_output --substring "log -> /test" "ls -al \$root/myuser"
|
||||||
|
|
||||||
run ls -al $root/test
|
run ls -al $root/test
|
||||||
[ "$status" -eq 0 ]
|
assert "$status" -eq 0 "status from ls -al $root/test"
|
||||||
expect_output --substring "bar -> /test-log" "ls -al \$root/test"
|
expect_output --substring "bar -> /test-log" "ls -al \$root/test"
|
||||||
|
|
||||||
run ls -al $root/test-log
|
run ls -al $root/test-log
|
||||||
[ "$status" -eq 0 ]
|
assert "$status" -eq 0 "status from ls -al $root/test-log"
|
||||||
expect_output --substring "foo -> /data/log" "ls -al \$root/test-log"
|
expect_output --substring "foo -> /data/log" "ls -al \$root/test-log"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2250,11 +2250,11 @@ function _test_http() {
|
||||||
run_buildah mount ${cid}
|
run_buildah mount ${cid}
|
||||||
root=$output
|
root=$output
|
||||||
run ls $root/bin
|
run ls $root/bin
|
||||||
[ "$status" -eq 0 ]
|
assert "$status" -eq 0 "status from ls $root/bin"
|
||||||
expect_output --substring "myexe" "ls \$root/bin"
|
expect_output --substring "myexe" "ls \$root/bin"
|
||||||
|
|
||||||
run cat $root/bin/myexe
|
run cat $root/bin/myexe
|
||||||
[ "$status" -eq 0 ]
|
assert "$status" -eq 0 "status from cat $root/bin/myexe"
|
||||||
expect_output "symlink-test" "cat \$root/bin/myexe"
|
expect_output "symlink-test" "cat \$root/bin/myexe"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2267,7 +2267,7 @@ function _test_http() {
|
||||||
run_buildah mount ${cid}
|
run_buildah mount ${cid}
|
||||||
root=$output
|
root=$output
|
||||||
run ls $root/data
|
run ls $root/data
|
||||||
[ "$status" -eq 0 ]
|
assert "$status" -eq 0 "status from ls $root/data"
|
||||||
expect_output --substring "myexe" "ls \$root/data"
|
expect_output --substring "myexe" "ls \$root/data"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -132,7 +132,7 @@ load helpers
|
||||||
config="$output"
|
config="$output"
|
||||||
run python3 -c 'import json, sys; config = json.load(sys.stdin); print(config["history"][len(config["history"])-1]["created_by"])' <<< "$config"
|
run python3 -c 'import json, sys; config = json.load(sys.stdin); print(config["history"][len(config["history"])-1]["created_by"])' <<< "$config"
|
||||||
echo "$output"
|
echo "$output"
|
||||||
[ "${status}" -eq 0 ]
|
assert "$status" -eq 0 "status from python command 1"
|
||||||
expect_output "untracked actions"
|
expect_output "untracked actions"
|
||||||
|
|
||||||
run_buildah config --created-by "" $cid
|
run_buildah config --created-by "" $cid
|
||||||
|
@ -141,7 +141,7 @@ load helpers
|
||||||
config="$output"
|
config="$output"
|
||||||
run python3 -c 'import json, sys; config = json.load(sys.stdin); print(config["history"][len(config["history"])-1]["created_by"])' <<< "$config"
|
run python3 -c 'import json, sys; config = json.load(sys.stdin); print(config["history"][len(config["history"])-1]["created_by"])' <<< "$config"
|
||||||
echo "$output"
|
echo "$output"
|
||||||
[ "${status}" -eq 0 ]
|
assert "$status" -eq 0 "status from python command 2"
|
||||||
expect_output "/bin/sh"
|
expect_output "/bin/sh"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -68,8 +68,8 @@ function check_help() {
|
||||||
|
|
||||||
# This can happen if the output of --help changes, such as between
|
# This can happen if the output of --help changes, such as between
|
||||||
# the old command parser and cobra.
|
# the old command parser and cobra.
|
||||||
[ $count -gt 0 ] || \
|
assert "$count" -gt 0 \
|
||||||
die "Internal error: no commands found in 'buildah help $@' list"
|
"Internal error: no commands found in 'buildah help $@' list"
|
||||||
|
|
||||||
# Sanity check: make sure the special loops above triggered at least once.
|
# Sanity check: make sure the special loops above triggered at least once.
|
||||||
# (We've had situations where a typo makes the conditional never run in podman)
|
# (We've had situations where a typo makes the conditional never run in podman)
|
||||||
|
@ -85,8 +85,8 @@ function check_help() {
|
||||||
|
|
||||||
# This can happen if the output of --help changes, such as between
|
# This can happen if the output of --help changes, such as between
|
||||||
# the old command parser and cobra.
|
# the old command parser and cobra.
|
||||||
[ $count -gt 0 ] || \
|
assert "$count" -gt 0 \
|
||||||
die "Internal error: no commands found in 'buildah help list"
|
"Internal error: no commands found in 'buildah help list"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -138,7 +138,7 @@ load helpers
|
||||||
|
|
||||||
run_buildah images --json
|
run_buildah images --json
|
||||||
run python3 -m json.tool <<< "$output"
|
run python3 -m json.tool <<< "$output"
|
||||||
[ "${status}" -eq 0 ]
|
assert "$status" -eq 0 "status from python json.tool"
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "specify an existing image" {
|
@test "specify an existing image" {
|
||||||
|
|
|
@ -81,8 +81,10 @@ IMAGE_LIST_S390X_INSTANCE_DIGEST=sha256:882a20ee0df7399a445285361d38b711c299ca09
|
||||||
expect_output --substring ${IMAGE_LIST_ARM_INSTANCE_DIGEST}
|
expect_output --substring ${IMAGE_LIST_ARM_INSTANCE_DIGEST}
|
||||||
expect_output --substring ${IMAGE_LIST_PPC64LE_INSTANCE_DIGEST}
|
expect_output --substring ${IMAGE_LIST_PPC64LE_INSTANCE_DIGEST}
|
||||||
expect_output --substring ${IMAGE_LIST_S390X_INSTANCE_DIGEST}
|
expect_output --substring ${IMAGE_LIST_S390X_INSTANCE_DIGEST}
|
||||||
run grep ${IMAGE_LIST_ARM64_INSTANCE_DIGEST} <<< "$output"
|
|
||||||
[ $status -ne 0 ]
|
# ARM64 should now be gone
|
||||||
|
arm64=$(grep ${IMAGE_LIST_ARM64_INSTANCE_DIGEST} <<< "$output" || true)
|
||||||
|
assert "$arm64" = "" "arm64 instance digest found in manifest list"
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "manifest-remove-not-found" {
|
@test "manifest-remove-not-found" {
|
||||||
|
@ -108,8 +110,9 @@ IMAGE_LIST_S390X_INSTANCE_DIGEST=sha256:882a20ee0df7399a445285361d38b711c299ca09
|
||||||
s390x) IMAGE_LIST_EXPECTED_INSTANCE_DIGEST=${IMAGE_LIST_S390X_INSTANCE_DIGEST} ;;
|
s390x) IMAGE_LIST_EXPECTED_INSTANCE_DIGEST=${IMAGE_LIST_S390X_INSTANCE_DIGEST} ;;
|
||||||
*) skip "current arch \"$(go env GOARCH 2> /dev/null)\" not present in manifest list" ;;
|
*) skip "current arch \"$(go env GOARCH 2> /dev/null)\" not present in manifest list" ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
run grep ${IMAGE_LIST_EXPECTED_INSTANCE_DIGEST##sha256} ${TEST_SCRATCH_DIR}/pushed/manifest.json
|
run grep ${IMAGE_LIST_EXPECTED_INSTANCE_DIGEST##sha256} ${TEST_SCRATCH_DIR}/pushed/manifest.json
|
||||||
[ $status -eq 0 ]
|
assert "$status" -eq 0 "status code of grep for expected instance digest"
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "manifest-push-all" {
|
@test "manifest-push-all" {
|
||||||
|
|
|
@ -84,7 +84,7 @@ idmapping_check_map() {
|
||||||
local _expect_idmap=$2
|
local _expect_idmap=$2
|
||||||
local _testname=$3
|
local _testname=$3
|
||||||
|
|
||||||
[ -n "$_output_idmap" ]
|
assert "$_output_idmap" != "" "Internal error: output_idmap is empty"
|
||||||
local _idmap=$(sed -E -e 's, +, ,g' -e 's,^ +,,g' <<< "${_output_idmap}")
|
local _idmap=$(sed -E -e 's, +, ,g' -e 's,^ +,,g' <<< "${_output_idmap}")
|
||||||
expect_output --from="$_idmap" "${_expect_idmap}" "$_testname"
|
expect_output --from="$_idmap" "${_expect_idmap}" "$_testname"
|
||||||
|
|
||||||
|
@ -190,13 +190,13 @@ idmapping_check_permission() {
|
||||||
local _output=$1
|
local _output=$1
|
||||||
local _testname=$2
|
local _testname=$2
|
||||||
|
|
||||||
[ "$_output" != "" ]
|
assert "$_output" != "" "Internal error: _output is empty"
|
||||||
if [ -z "${uidmapargs[$i]}${gidmapargs[$i]}" ]; then
|
if [ -z "${uidmapargs[$i]}${gidmapargs[$i]}" ]; then
|
||||||
if test "$BUILDAH_ISOLATION" != "chroot" -a "$BUILDAH_ISOLATION" != "rootless" ; then
|
if test "$BUILDAH_ISOLATION" != "chroot" -a "$BUILDAH_ISOLATION" != "rootless" ; then
|
||||||
expect_output --from="$_output" "$mynamespace" "/proc/self/ns/user ($_testname)"
|
expect_output --from="$_output" "$mynamespace" "/proc/self/ns/user ($_testname)"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
[ "$_output" != "$mynamespace" ]
|
assert "$_output" != "$mynamespace" "_output vs mynamespace"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -236,7 +236,7 @@ idmapping_check_permission() {
|
||||||
run_buildah mount "$ctr"
|
run_buildah mount "$ctr"
|
||||||
mnt="$output"
|
mnt="$output"
|
||||||
run stat -c '%u:%g %a' "$mnt"/somedir/someotherfile
|
run stat -c '%u:%g %a' "$mnt"/somedir/someotherfile
|
||||||
[ $status -eq 0 ]
|
assert "$status" -eq 0 "status of stat $mnt/somedir/someotherfile"
|
||||||
expect_output "$rootuid:$rootgid 4700"
|
expect_output "$rootuid:$rootgid 4700"
|
||||||
|
|
||||||
# Check that a container with mapped-layer can be committed.
|
# Check that a container with mapped-layer can be committed.
|
||||||
|
@ -299,15 +299,16 @@ general_namespace() {
|
||||||
for namespace in "${types[@]}" ; do
|
for namespace in "${types[@]}" ; do
|
||||||
# Specify the setting for this namespace for this container.
|
# Specify the setting for this namespace for this container.
|
||||||
run_buildah from $WITH_POLICY_JSON --quiet --"$nsflag"=$namespace alpine
|
run_buildah from $WITH_POLICY_JSON --quiet --"$nsflag"=$namespace alpine
|
||||||
[ "$output" != "" ]
|
assert "$output" != "" "Internal error: buildah-from produced no output"
|
||||||
ctr="$output"
|
ctr="$output"
|
||||||
|
|
||||||
# Check that, unless we override it, we get that setting in "run".
|
# Check that, unless we override it, we get that setting in "run".
|
||||||
run_buildah run $RUNOPTS "$ctr" readlink /proc/self/ns/"$nstype"
|
run_buildah run $RUNOPTS "$ctr" readlink /proc/self/ns/"$nstype"
|
||||||
[ "$output" != "" ]
|
assert "$output" != "" "readlink /proc/self/ns/$nstype must not be empty"
|
||||||
case "$namespace" in
|
case "$namespace" in
|
||||||
""|container|private)
|
""|container|private)
|
||||||
[ "$output" != "$mynamespace" ]
|
assert "$output" != "$mynamespace" \
|
||||||
|
"readlink /proc/self/ns/$nstype, with namespace=$namespace"
|
||||||
;;
|
;;
|
||||||
host)
|
host)
|
||||||
expect_output "$mynamespace"
|
expect_output "$mynamespace"
|
||||||
|
@ -321,11 +322,12 @@ general_namespace() {
|
||||||
if [ "$nsflag" != "userns" ]; then
|
if [ "$nsflag" != "userns" ]; then
|
||||||
for different in ${types[@]} ; do
|
for different in ${types[@]} ; do
|
||||||
# Check that, if we override it, we get what we specify for "run".
|
# Check that, if we override it, we get what we specify for "run".
|
||||||
run_buildah run $RUNOPTS --"$nsflag"=$different "$ctr" readlink /proc/self/ns/"$nstype"
|
run_buildah run $RUNOPTS --"$nsflag"=$different "$ctr" readlink /proc/self/ns/"$nstype"
|
||||||
[ "$output" != "" ]
|
assert "$output" != "" "readlink /proc/self/ns/$nstype must not be empty"
|
||||||
case "$different" in
|
case "$different" in
|
||||||
""|container|private)
|
""|container|private)
|
||||||
[ "$output" != "$mynamespace" ]
|
assert "$output" != "$mynamespace" \
|
||||||
|
"readlink /proc/self/ns/$nstype, with different=$different"
|
||||||
;;
|
;;
|
||||||
host)
|
host)
|
||||||
expect_output "$mynamespace"
|
expect_output "$mynamespace"
|
||||||
|
@ -346,7 +348,7 @@ _EOF
|
||||||
result=$(grep -A1 "TargetOutput" <<< "$output" | tail -n1)
|
result=$(grep -A1 "TargetOutput" <<< "$output" | tail -n1)
|
||||||
case "$namespace" in
|
case "$namespace" in
|
||||||
""|container|private)
|
""|container|private)
|
||||||
[ "$result" != "$mynamespace" ]
|
assert "$result" != "$mynamespace" "readlink /proc/self/ns/$nstype"
|
||||||
;;
|
;;
|
||||||
host)
|
host)
|
||||||
expect_output --from="$result" "$mynamespace"
|
expect_output --from="$result" "$mynamespace"
|
||||||
|
@ -422,14 +424,14 @@ _EOF
|
||||||
|
|
||||||
echo "buildah from $WITH_POLICY_JSON --ipc=$ipc --net=$net --pid=$pid --userns=$userns --uts=$uts --cgroupns=$cgroupns alpine"
|
echo "buildah from $WITH_POLICY_JSON --ipc=$ipc --net=$net --pid=$pid --userns=$userns --uts=$uts --cgroupns=$cgroupns alpine"
|
||||||
run_buildah from $WITH_POLICY_JSON --quiet --ipc=$ipc --net=$net --pid=$pid --userns=$userns --uts=$uts --cgroupns=$cgroupns alpine
|
run_buildah from $WITH_POLICY_JSON --quiet --ipc=$ipc --net=$net --pid=$pid --userns=$userns --uts=$uts --cgroupns=$cgroupns alpine
|
||||||
[ "$output" != "" ]
|
assert "$output" != "" "output from buildah-from"
|
||||||
ctr="$output"
|
ctr="$output"
|
||||||
run_buildah run $ctr pwd
|
run_buildah run $ctr pwd
|
||||||
[ "$output" != "" ]
|
assert "$output" != "" "output from pwd"
|
||||||
run_buildah run --tty=true $ctr pwd
|
run_buildah run --tty=true $ctr pwd
|
||||||
[ "$output" != "" ]
|
assert "$output" != "" "output from pwd, with --tty=true"
|
||||||
run_buildah run --terminal=false $ctr pwd
|
run_buildah run --terminal=false $ctr pwd
|
||||||
[ "$output" != "" ]
|
assert "$output" != "" "output from pwd, with --terminal=false"
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
|
@ -500,7 +502,7 @@ utsns = "$mode"
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
CONTAINERS_CONF="$containers_conf_file" run_buildah from $WITH_POLICY_JSON --quiet alpine
|
CONTAINERS_CONF="$containers_conf_file" run_buildah from $WITH_POLICY_JSON --quiet alpine
|
||||||
[ "$output" != "" ]
|
assert "$output" != "" "output from buildah-from"
|
||||||
ctr="$output"
|
ctr="$output"
|
||||||
|
|
||||||
local op="=="
|
local op="=="
|
||||||
|
|
|
@ -28,7 +28,7 @@ load helpers
|
||||||
|
|
||||||
# This should fail
|
# This should fail
|
||||||
run ls ${TEST_SCRATCH_DIR}/lower/bar
|
run ls ${TEST_SCRATCH_DIR}/lower/bar
|
||||||
[ "$status" -ne 0 ]
|
assert "$status" -ne 0 "status of ls ${TEST_SCRATCH_DIR}/lower/bar"
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "overlay source permissions and owners" {
|
@test "overlay source permissions and owners" {
|
||||||
|
@ -58,7 +58,7 @@ load helpers
|
||||||
|
|
||||||
# This should fail since /tmp/test was an overlay, not a bind mount
|
# This should fail since /tmp/test was an overlay, not a bind mount
|
||||||
run ls ${TEST_SCRATCH_DIR}/lower/bar
|
run ls ${TEST_SCRATCH_DIR}/lower/bar
|
||||||
[ "$status" -ne 0 ]
|
assert "$status" -ne 0 "status of ls ${TEST_SCRATCH_DIR}/lower/bar"
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "overlay path contains colon" {
|
@test "overlay path contains colon" {
|
||||||
|
@ -92,5 +92,5 @@ load helpers
|
||||||
|
|
||||||
# This should fail
|
# This should fail
|
||||||
run ls ${TEST_SCRATCH_DIR}/a:lower/bar
|
run ls ${TEST_SCRATCH_DIR}/a:lower/bar
|
||||||
[ "$status" -ne 0 ]
|
assert "$status" -ne 0 "status of ls ${TEST_SCRATCH_DIR}/a:lower/bar"
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@ load helpers
|
||||||
# force a failed pull and look at the error message which *must* include the
|
# force a failed pull and look at the error message which *must* include the
|
||||||
# the resolved image name (localhost/image:latest).
|
# the resolved image name (localhost/image:latest).
|
||||||
run_buildah 125 pull --policy=always image
|
run_buildah 125 pull --policy=always image
|
||||||
[[ "$output" == *"initializing source docker://localhost/image:latest"* ]]
|
assert "$output" =~ "initializing source docker://localhost/image:latest"
|
||||||
run_buildah rmi localhost/image ${iid}
|
run_buildah rmi localhost/image ${iid}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@ load helpers
|
||||||
run_buildah --retry pull --registries-conf ${TEST_SOURCES}/registries.conf $WITH_POLICY_JSON alpine@sha256:e9a2035f9d0d7cee1cdd445f5bfa0c5c646455ee26f14565dce23cf2d2de7570
|
run_buildah --retry pull --registries-conf ${TEST_SOURCES}/registries.conf $WITH_POLICY_JSON alpine@sha256:e9a2035f9d0d7cee1cdd445f5bfa0c5c646455ee26f14565dce23cf2d2de7570
|
||||||
run_buildah 125 pull --registries-conf ${TEST_SOURCES}/registries.conf $WITH_POLICY_JSON fakeimage/fortest
|
run_buildah 125 pull --registries-conf ${TEST_SOURCES}/registries.conf $WITH_POLICY_JSON fakeimage/fortest
|
||||||
run_buildah images --format "{{.Name}}:{{.Tag}}"
|
run_buildah images --format "{{.Name}}:{{.Tag}}"
|
||||||
[[ ! "$output" =~ "fakeimage/fortest" ]]
|
assert "$output" !~ "fakeimage/fortest" "fakeimage/fortest found in buildah images"
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "pull-from-docker-archive" {
|
@test "pull-from-docker-archive" {
|
||||||
|
@ -100,7 +100,7 @@ load helpers
|
||||||
|
|
||||||
run docker pull alpine
|
run docker pull alpine
|
||||||
echo "$output"
|
echo "$output"
|
||||||
[ "$status" -eq 0 ]
|
assert "$status" -eq 0 "status of docker (yes, docker) pull alpine"
|
||||||
run_buildah pull $WITH_POLICY_JSON docker-daemon:docker.io/library/alpine:latest
|
run_buildah pull $WITH_POLICY_JSON docker-daemon:docker.io/library/alpine:latest
|
||||||
run_buildah images --format "{{.Name}}:{{.Tag}}"
|
run_buildah images --format "{{.Name}}:{{.Tag}}"
|
||||||
expect_output --substring "alpine:latest"
|
expect_output --substring "alpine:latest"
|
||||||
|
|
|
@ -31,7 +31,7 @@ load helpers
|
||||||
cid3=$output
|
cid3=$output
|
||||||
run_buildah 125 rmi alpine busybox
|
run_buildah 125 rmi alpine busybox
|
||||||
run_buildah images -q
|
run_buildah images -q
|
||||||
[ "$output" != "" ]
|
assert "$output" != "" "images -q"
|
||||||
|
|
||||||
run_buildah rmi -f alpine busybox
|
run_buildah rmi -f alpine busybox
|
||||||
run_buildah images -q
|
run_buildah images -q
|
||||||
|
@ -66,7 +66,7 @@ load helpers
|
||||||
cid3=$output
|
cid3=$output
|
||||||
run_buildah 125 rmi --all
|
run_buildah 125 rmi --all
|
||||||
run_buildah images -q
|
run_buildah images -q
|
||||||
[ "$output" != "" ]
|
assert "$output" != "" "images -q"
|
||||||
|
|
||||||
run_buildah rmi --all --force
|
run_buildah rmi --all --force
|
||||||
run_buildah images -q
|
run_buildah images -q
|
||||||
|
|
|
@ -814,7 +814,7 @@ _EOF
|
||||||
found_runtime=y
|
found_runtime=y
|
||||||
run_buildah '?' run --runtime=runc --runtime-flag=debug $cid true
|
run_buildah '?' run --runtime=runc --runtime-flag=debug $cid true
|
||||||
if [ "$status" -eq 0 ]; then
|
if [ "$status" -eq 0 ]; then
|
||||||
[ -n "$output" ]
|
assert "$output" != "" "Output from running 'true' with --runtime-flag=debug"
|
||||||
else
|
else
|
||||||
# runc fully supports cgroup v2 (unified mode) since v1.0.0-rc93.
|
# runc fully supports cgroup v2 (unified mode) since v1.0.0-rc93.
|
||||||
# older runc doesn't work on cgroup v2.
|
# older runc doesn't work on cgroup v2.
|
||||||
|
@ -825,7 +825,7 @@ _EOF
|
||||||
if [ -n "$(command -v crun)" ]; then
|
if [ -n "$(command -v crun)" ]; then
|
||||||
found_runtime=y
|
found_runtime=y
|
||||||
run_buildah run --runtime=crun --runtime-flag=debug $cid true
|
run_buildah run --runtime=crun --runtime-flag=debug $cid true
|
||||||
[ -n "$output" ]
|
assert "$output" != "" "Output from running 'true' with --runtime-flag=debug"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "${found_runtime}" ]; then
|
if [ -z "${found_runtime}" ]; then
|
||||||
|
|
|
@ -16,7 +16,7 @@ load helpers
|
||||||
run_buildah from --quiet --quiet $WITH_POLICY_JSON $image
|
run_buildah from --quiet --quiet $WITH_POLICY_JSON $image
|
||||||
cid=$output
|
cid=$output
|
||||||
run_buildah run $cid sh -c 'tr \\0 \\n < /proc/self/attr/current'
|
run_buildah run $cid sh -c 'tr \\0 \\n < /proc/self/attr/current'
|
||||||
[ "$output" != "" ]
|
assert "$output" != "" "/proc/self/attr/current cannot be empty"
|
||||||
firstlabel="$output"
|
firstlabel="$output"
|
||||||
|
|
||||||
# Ensure that we label the same container consistently across multiple "run" instructions.
|
# Ensure that we label the same container consistently across multiple "run" instructions.
|
||||||
|
|
|
@ -16,7 +16,7 @@ load helpers
|
||||||
run jq -r .manifests[0].digest $srcdir/index.json
|
run jq -r .manifests[0].digest $srcdir/index.json
|
||||||
manifestDigest=${output//sha256:/} # strip off the sha256 prefix
|
manifestDigest=${output//sha256:/} # strip off the sha256 prefix
|
||||||
run stat $srcdir/blobs/sha256/$manifestDigest
|
run stat $srcdir/blobs/sha256/$manifestDigest
|
||||||
[ "$status" -eq 0 ]
|
assert "$status" -eq 0 "status of stat(manifestDigest)"
|
||||||
|
|
||||||
# Inspect the manifest
|
# Inspect the manifest
|
||||||
run jq -r .schemaVersion $srcdir/blobs/sha256/$manifestDigest
|
run jq -r .schemaVersion $srcdir/blobs/sha256/$manifestDigest
|
||||||
|
@ -28,19 +28,20 @@ load helpers
|
||||||
run jq -r .mediaType $srcdir/blobs/sha256/$manifestDigest
|
run jq -r .mediaType $srcdir/blobs/sha256/$manifestDigest
|
||||||
expect_output "application/vnd.oci.image.manifest.v1+json"
|
expect_output "application/vnd.oci.image.manifest.v1+json"
|
||||||
run jq -r .config.size $srcdir/blobs/sha256/$manifestDigest
|
run jq -r .config.size $srcdir/blobs/sha256/$manifestDigest
|
||||||
[ "$status" -eq 0 ] # let's not check the size (afraid of time-stamp impacts)
|
# let's not check the size (afraid of time-stamp impacts)
|
||||||
|
assert "$status" -eq 0 "status of jq .config.size"
|
||||||
# Digest of config
|
# Digest of config
|
||||||
run jq -r .config.digest $srcdir/blobs/sha256/$manifestDigest
|
run jq -r .config.digest $srcdir/blobs/sha256/$manifestDigest
|
||||||
configDigest=${output//sha256:/} # strip off the sha256 prefix
|
configDigest=${output//sha256:/} # strip off the sha256 prefix
|
||||||
run stat $srcdir/blobs/sha256/$configDigest
|
run stat $srcdir/blobs/sha256/$configDigest
|
||||||
[ "$status" -eq 0 ]
|
assert "$status" -eq 0 "status of stat(configDigest)"
|
||||||
|
|
||||||
# Inspect the config
|
# Inspect the config
|
||||||
run jq -r .created $srcdir/blobs/sha256/$configDigest
|
run jq -r .created $srcdir/blobs/sha256/$configDigest
|
||||||
[ "$status" -eq 0 ]
|
assert "$status" -eq 0 "status of jq .created on configDigest"
|
||||||
creatd=$output
|
creatd=$output
|
||||||
run date --date="$output"
|
run date --date="$output"
|
||||||
[ "$status" -eq 0 ]
|
assert "$status" -eq 0 "status of date (this should never ever fail)"
|
||||||
run jq -r .author $srcdir/blobs/sha256/$configDigest
|
run jq -r .author $srcdir/blobs/sha256/$configDigest
|
||||||
expect_output "Buildah authors"
|
expect_output "Buildah authors"
|
||||||
|
|
||||||
|
@ -59,7 +60,7 @@ load helpers
|
||||||
run jq -r .manifests[0].digest $srcdir/index.json
|
run jq -r .manifests[0].digest $srcdir/index.json
|
||||||
manifestDigestEmpty=${output//sha256:/} # strip off the sha256 prefix
|
manifestDigestEmpty=${output//sha256:/} # strip off the sha256 prefix
|
||||||
run stat $srcdir/blobs/sha256/$manifestDigestEmpty
|
run stat $srcdir/blobs/sha256/$manifestDigestEmpty
|
||||||
[ "$status" -eq 0 ]
|
assert "$status" -eq 0 "status of stat(manifestDigestEmpty)"
|
||||||
|
|
||||||
# Add layer 1
|
# Add layer 1
|
||||||
echo 111 > ${TEST_SCRATCH_DIR}/file1
|
echo 111 > ${TEST_SCRATCH_DIR}/file1
|
||||||
|
@ -67,7 +68,8 @@ load helpers
|
||||||
# Make sure the digest of the manifest changed
|
# Make sure the digest of the manifest changed
|
||||||
run jq -r .manifests[0].digest $srcdir/index.json
|
run jq -r .manifests[0].digest $srcdir/index.json
|
||||||
manifestDigestFile1=${output//sha256:/} # strip off the sha256 prefix
|
manifestDigestFile1=${output//sha256:/} # strip off the sha256 prefix
|
||||||
[ "$manifestDigestEmpty" != "$manifestDigestFile1" ]
|
assert "$manifestDigestEmpty" != "$manifestDigestFile1" \
|
||||||
|
"manifestDigestEmpty should differ from manifestDigestFile1"
|
||||||
|
|
||||||
# Inspect layer 1
|
# Inspect layer 1
|
||||||
run jq -r .layers[0].mediaType $srcdir/blobs/sha256/$manifestDigestFile1
|
run jq -r .layers[0].mediaType $srcdir/blobs/sha256/$manifestDigestFile1
|
||||||
|
@ -76,7 +78,7 @@ load helpers
|
||||||
layer1Digest=${output//sha256:/} # strip off the sha256 prefix
|
layer1Digest=${output//sha256:/} # strip off the sha256 prefix
|
||||||
# Now make sure the reported size matches the actual one
|
# Now make sure the reported size matches the actual one
|
||||||
run jq -r .layers[0].size $srcdir/blobs/sha256/$manifestDigestFile1
|
run jq -r .layers[0].size $srcdir/blobs/sha256/$manifestDigestFile1
|
||||||
[ "$status" -eq 0 ]
|
assert "$status" -eq 0 "status of jq .layers[0].size on manifestDigestFile1"
|
||||||
layer1Size=$output
|
layer1Size=$output
|
||||||
run du -b $srcdir/blobs/sha256/$layer1Digest
|
run du -b $srcdir/blobs/sha256/$layer1Digest
|
||||||
expect_output --substring "$layer1Size"
|
expect_output --substring "$layer1Size"
|
||||||
|
@ -87,8 +89,10 @@ load helpers
|
||||||
# Make sure the digest of the manifest changed
|
# Make sure the digest of the manifest changed
|
||||||
run jq -r .manifests[0].digest $srcdir/index.json
|
run jq -r .manifests[0].digest $srcdir/index.json
|
||||||
manifestDigestFile2=${output//sha256:/} # strip off the sha256 prefix
|
manifestDigestFile2=${output//sha256:/} # strip off the sha256 prefix
|
||||||
[ "$manifestDigestEmpty" != "$manifestDigestFile2" ]
|
assert "$manifestDigestEmpty" != "$manifestDigestFile2" \
|
||||||
[ "$manifestDigestFile1" != "$manifestDigestFile2" ]
|
"manifestDigestEmpty should differ from manifestDigestFile2"
|
||||||
|
assert "$manifestDigestFile1" != "$manifestDigestFile2" \
|
||||||
|
"manifestDigestFile1 should differ from manifestDigestFile2"
|
||||||
|
|
||||||
# Make sure layer 1 is still in the manifest and remains unchanged
|
# Make sure layer 1 is still in the manifest and remains unchanged
|
||||||
run jq -r .layers[0].digest $srcdir/blobs/sha256/$manifestDigestFile2
|
run jq -r .layers[0].digest $srcdir/blobs/sha256/$manifestDigestFile2
|
||||||
|
@ -103,14 +107,14 @@ load helpers
|
||||||
layer2Digest=${output//sha256:/} # strip off the sha256 prefix
|
layer2Digest=${output//sha256:/} # strip off the sha256 prefix
|
||||||
# Now make sure the reported size matches the actual one
|
# Now make sure the reported size matches the actual one
|
||||||
run jq -r .layers[1].size $srcdir/blobs/sha256/$manifestDigestFile2
|
run jq -r .layers[1].size $srcdir/blobs/sha256/$manifestDigestFile2
|
||||||
[ "$status" -eq 0 ]
|
assert "$status" -eq 0 "status of jq .layers[1].size on manifestDigestFile2"
|
||||||
layer2Size=$output
|
layer2Size=$output
|
||||||
run du -b $srcdir/blobs/sha256/$layer2Digest
|
run du -b $srcdir/blobs/sha256/$layer2Digest
|
||||||
expect_output --substring "$layer2Size"
|
expect_output --substring "$layer2Size"
|
||||||
|
|
||||||
# Last but not least, make sure the two layers differ
|
# Last but not least, make sure the two layers differ
|
||||||
[ "$layer1Digest" != "$layer2Digest" ]
|
assert "$layer1Digest" != "$layer2Digest" "layer1Digest vs layer2Digest"
|
||||||
[ "$layer1Size" != "$layer2Size" ]
|
assert "$layer1Size" != "$layer2Size" "layer1Size vs layer2Size"
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "source push/pull" {
|
@test "source push/pull" {
|
||||||
|
@ -145,7 +149,8 @@ load helpers
|
||||||
expect_output --substring "Copying config"
|
expect_output --substring "Copying config"
|
||||||
|
|
||||||
run diff -r $srcdir $pulldir
|
run diff -r $srcdir $pulldir
|
||||||
[ "$status" -eq 0 ]
|
# FIXME: if there's a nonzero chance of this failing, include actual diffs
|
||||||
|
assert "$status" -eq 0 "status from diff of srcdir vs pulldir"
|
||||||
|
|
||||||
stop_registry
|
stop_registry
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue