38 lines
1.1 KiB
Bash
38 lines
1.1 KiB
Bash
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
if [[ "$ENGINE" == docker ]]; then
|
|
# docker doesn't support --rootfs
|
|
__skip
|
|
fi
|
|
|
|
"$UTIL_DIR/extract-vm-image.sh" "${TEST_IMAGES[fedora]}" "$TEMP_DIR/image"
|
|
|
|
# Usage: __run <crun_vm_option> [<extra_podman_options...>]
|
|
__run() {
|
|
__engine run --rm --detach --name "$TEST_ID" "${@:2}" --rootfs "$TEMP_DIR" "$1"
|
|
}
|
|
|
|
# Usage: __test <crun_vm_option> <condition>
|
|
__test() {
|
|
id=$( __run "$1" )
|
|
__engine exec "$TEST_ID" --as fedora "$2"
|
|
__engine stop "$TEST_ID"
|
|
|
|
if [[ "$ENGINE" != rootful-podman ]]; then
|
|
# ensure user that invoked `engine run` can delete crun-vm state
|
|
rm -r "$TEMP_DIR/crun-vm-$id"
|
|
fi
|
|
}
|
|
|
|
__test "" '[[ ! -e i-was-here ]] && touch i-was-here'
|
|
__test --persistent '[[ ! -e i-was-here ]] && touch i-was-here'
|
|
__test --persistent '[[ -e i-was-here ]]'
|
|
__test "" '[[ -e i-was-here ]]'
|
|
|
|
# ensure --persistent is rejected iff the rootfs is configured as read-only
|
|
|
|
! RUST_LIB_BACKTRACE=0 __run --persistent --read-only
|
|
|
|
__run "" --read-only
|
|
__engine exec "$TEST_ID" --as fedora
|