. $TEST_BASE_DIR/test-functions
test_setup() {
- create_empty_image
- mkdir -p $TESTDIR/root
- mount ${LOOPDEV}p1 $TESTDIR/root
+ create_empty_image_rootdir
# Create what will eventually be our root filesystem onto an overlay
(
setup_testsuite
)
setup_nspawn_root
-
- ddebug "umount $TESTDIR/root"
- umount $TESTDIR/root
}
do_test "$@"
test_setup() {
- create_empty_image
+ create_empty_image_rootdir
echo -n test >$TESTDIR/keyfile
cryptsetup -q luksFormat --pbkdf pbkdf2 --pbkdf-force-iterations 1000 ${LOOPDEV}p2 $TESTDIR/keyfile
cryptsetup luksOpen ${LOOPDEV}p2 varcrypt <$TESTDIR/keyfile
mkfs.ext4 -L var /dev/mapper/varcrypt
- mkdir -p $TESTDIR/root
- mount ${LOOPDEV}p1 $TESTDIR/root
mkdir -p $TESTDIR/root/var
mount /dev/mapper/varcrypt $TESTDIR/root/var
/dev/mapper/varcrypt /var ext4 defaults 0 1
EOF
)
+}
+cleanup_root_var() {
ddebug "umount $TESTDIR/root/var"
- umount $TESTDIR/root/var
- cryptsetup luksClose /dev/mapper/varcrypt
- ddebug "umount $TESTDIR/root"
- umount $TESTDIR/root
+ mountpoint $TESTDIR/root/var && umount $TESTDIR/root/var
+ [[ -b /dev/mapper/varcrypt ]] && cryptsetup luksClose /dev/mapper/varcrypt
}
test_cleanup() {
- [ -d $TESTDIR/root/var ] && mountpoint $TESTDIR/root/var && umount $TESTDIR/root/var
- [[ -b /dev/mapper/varcrypt ]] && cryptsetup luksClose /dev/mapper/varcrypt
- umount $TESTDIR/root 2>/dev/null || true
- [[ $LOOPDEV ]] && losetup -d $LOOPDEV
- return 0
+ cleanup_root_var
+ _test_cleanup
+}
+
+test_setup_cleanup() {
+ cleanup_root_var
+ _test_setup_cleanup
}
do_test "$@"
. $TEST_BASE_DIR/test-functions
test_setup() {
- create_empty_image
- mkdir -p $TESTDIR/root
- mount ${LOOPDEV}p1 $TESTDIR/root
+ create_empty_image_rootdir
# Create what will eventually be our root filesystem onto an overlay
(
setup_testsuite
)
setup_nspawn_root
-
- ddebug "umount $TESTDIR/root"
- umount $TESTDIR/root
}
do_test "$@"
. $TEST_BASE_DIR/test-functions
test_setup() {
- create_empty_image
- mkdir -p $TESTDIR/root
- mount ${LOOPDEV}p1 $TESTDIR/root
+ create_empty_image_rootdir
# Create what will eventually be our root filesystem onto an overlay
(
setup_testsuite
)
setup_nspawn_root
-
- ddebug "umount $TESTDIR/root"
- umount $TESTDIR/root
}
do_test "$@"
. $TEST_BASE_DIR/test-functions
test_setup() {
- create_empty_image
- mkdir -p $TESTDIR/root
- mount ${LOOPDEV}p1 $TESTDIR/root
+ create_empty_image_rootdir
# Create what will eventually be our root filesystem onto an overlay
(
setup_testsuite
)
setup_nspawn_root
-
- ddebug "umount $TESTDIR/root"
- umount $TESTDIR/root
}
do_test "$@"
KERNEL_APPEND="$KERNEL_APPEND selinux=1 security=selinux"
test_setup() {
- create_empty_image
- mkdir -p $TESTDIR/root
- mount ${LOOPDEV}p1 $TESTDIR/root
+ create_empty_image_rootdir
# Create what will eventually be our root filesystem onto an overlay
(
ln -s /dev/null $initdir/etc/systemd/system/systemd-networkd.service
ln -s /dev/null $initdir/etc/systemd/system/systemd-networkd.socket
ln -s /dev/null $initdir/etc/systemd/system/systemd-resolved.service
-
- ddebug "umount $TESTDIR/root"
- umount $TESTDIR/root
}
do_test "$@"
NSPAWN_TIMEOUT=30s
test_setup() {
- create_empty_image
- mkdir -p $TESTDIR/root
- mount ${LOOPDEV}p1 $TESTDIR/root
+ create_empty_image_rootdir
# Create what will eventually be our root filesystem onto an overlay
(
setup_testsuite
)
setup_nspawn_root
-
- ddebug "umount $TESTDIR/root"
- umount $TESTDIR/root
}
do_test "$@"
FSTYPE=ext4
test_setup() {
- create_empty_image
- mkdir -p $TESTDIR/root
- mount ${LOOPDEV}p1 $TESTDIR/root
+ create_empty_image_rootdir
# Create what will eventually be our root filesystem onto an overlay
(
ln -s /dev/null $initdir/etc/systemd/system/systemd-networkd.service
ln -s /dev/null $initdir/etc/systemd/system/systemd-networkd.socket
ln -s /dev/null $initdir/etc/systemd/system/systemd-resolved.service
-
- ddebug "umount $TESTDIR/root"
- umount $TESTDIR/root
}
do_test "$@"
QEMU_TIMEOUT=180
test_setup() {
- create_empty_image
- mkdir -p $TESTDIR/root
- mount ${LOOPDEV}p1 $TESTDIR/root
+ create_empty_image_rootdir
# Create what will eventually be our root filesystem onto an overlay
(
ln -s /dev/null $initdir/etc/systemd/system/systemd-networkd.service
ln -s /dev/null $initdir/etc/systemd/system/systemd-networkd.socket
ln -s /dev/null $initdir/etc/systemd/system/systemd-resolved.service
-
- ddebug "umount $TESTDIR/root"
- umount $TESTDIR/root
}
do_test "$@"
. $TEST_BASE_DIR/test-functions
test_setup() {
- create_empty_image
- mkdir -p $TESTDIR/root
- mount ${LOOPDEV}p1 $TESTDIR/root
+ create_empty_image_rootdir
# Create what will eventually be our root filesystem onto an overlay
(
ln -s /dev/null $initdir/etc/systemd/system/systemd-networkd.service
ln -s /dev/null $initdir/etc/systemd/system/systemd-networkd.socket
ln -s /dev/null $initdir/etc/systemd/system/systemd-resolved.service
-
- ddebug "umount $TESTDIR/root"
- umount $TESTDIR/root
}
do_test "$@"
. $TEST_BASE_DIR/test-functions
test_setup() {
- create_empty_image
- mkdir -p $TESTDIR/root
- mount ${LOOPDEV}p1 $TESTDIR/root
+ create_empty_image_rootdir
# Create what will eventually be our root filesystem onto an overlay
(
chmod 0755 $initdir/test-fail-on-restart.sh
setup_testsuite
)
-
- ddebug "umount $TESTDIR/root"
- umount $TESTDIR/root
}
do_test "$@"
. $TEST_BASE_DIR/test-functions
test_setup() {
- create_empty_image
- mkdir -p $TESTDIR/root
- mount ${LOOPDEV}p1 $TESTDIR/root
+ create_empty_image_rootdir
# Create what will eventually be our root filesystem onto an overlay
(
)
setup_nspawn_root
-
- ddebug "umount $TESTDIR/root"
- umount $TESTDIR/root
}
do_test "$@"
. $TEST_BASE_DIR/test-functions
test_setup() {
- create_empty_image
- mkdir -p $TESTDIR/root
- mount ${LOOPDEV}p1 $TESTDIR/root
+ create_empty_image_rootdir
# Create what will eventually be our root filesystem onto an overlay
(
chmod 0755 $initdir/test-nspawn.sh
setup_testsuite
)
-
- ddebug "umount $TESTDIR/root"
- umount $TESTDIR/root
}
do_test "$@"
. $TEST_BASE_DIR/test-functions
test_setup() {
- create_empty_image
- mkdir -p $TESTDIR/root
- mount ${LOOPDEV}p1 $TESTDIR/root
+ create_empty_image_rootdir
# Create what will eventually be our root filesystem onto an overlay
(
ln -s /dev/null $initdir/etc/systemd/system/systemd-networkd.service
ln -s /dev/null $initdir/etc/systemd/system/systemd-networkd.socket
ln -s /dev/null $initdir/etc/systemd/system/systemd-resolved.service
-
- ddebug "umount $TESTDIR/root"
- umount $TESTDIR/root
}
do_test "$@"
setup_nspawn_root
}
-test_cleanup() {
- return 0
-}
-
do_test "$@"
test_setup() {
create_empty_image
- mkdir -p $TESTDIR/root
- mount ${LOOPDEV}p1 $TESTDIR/root
# Create what will eventually be our root filesystem onto an overlay
(
ln -s /dev/null $initdir/etc/systemd/system/systemd-resolved.service
setup_nspawn_root
-
- ddebug "umount $TESTDIR/root"
- umount $TESTDIR/root
-}
-
-test_cleanup() {
- return 0
}
do_test "$@"
QEMU_TIMEOUT=300
test_setup() {
- create_empty_image
- mkdir -p $TESTDIR/root
- mount ${LOOPDEV}p1 $TESTDIR/root
+ create_empty_image_rootdir
(
LOG_LEVEL=5
setup_testsuite
)
-
- ddebug "umount $TESTDIR/root"
- umount $TESTDIR/root
}
do_test "$@"
QEMU_TIMEOUT=180
test_setup() {
- create_empty_image
- mkdir -p $TESTDIR/root
- mount ${LOOPDEV}p1 $TESTDIR/root
+ create_empty_image_rootdir
(
LOG_LEVEL=5
ln -s /dev/null $initdir/etc/systemd/system/systemd-networkd.service
ln -s /dev/null $initdir/etc/systemd/system/systemd-networkd.socket
ln -s /dev/null $initdir/etc/systemd/system/systemd-resolved.service
-
- ddebug "umount $TESTDIR/root"
- umount $TESTDIR/root
}
do_test "$@"
UNIFIED_CGROUP_HIERARCHY=yes
test_setup() {
- create_empty_image
- mkdir -p $TESTDIR/root
- mount ${LOOPDEV}p1 $TESTDIR/root
+ create_empty_image_rootdir
(
LOG_LEVEL=5
setup_testsuite
)
-
- ddebug "umount $TESTDIR/root"
- umount $TESTDIR/root
}
do_test "$@"
. $TEST_BASE_DIR/test-functions
test_setup() {
- create_empty_image
- mkdir -p $TESTDIR/root
- mount ${LOOPDEV}p1 $TESTDIR/root
+ create_empty_image_rootdir
(
LOG_LEVEL=5
setup_testsuite
)
setup_nspawn_root
-
- ddebug "umount $TESTDIR/root"
- umount $TESTDIR/root
}
do_test "$@"
. $TEST_BASE_DIR/test-functions
test_setup() {
- create_empty_image
- mkdir -p $TESTDIR/root
- mount ${LOOPDEV}p1 $TESTDIR/root
+ create_empty_image_rootdir
(
LOG_LEVEL=5
setup_testsuite
)
setup_nspawn_root
-
- ddebug "umount $TESTDIR/root"
- umount $TESTDIR/root
}
do_test "$@"
exit 1
fi
- create_empty_image
- mkdir -p $TESTDIR/root
- mount ${LOOPDEV}p1 $TESTDIR/root
+ create_empty_image_rootdir
# Create what will eventually be our root filesystem onto an overlay
(
ln -s /dev/null $initdir/etc/systemd/system/systemd-networkd.service
ln -s /dev/null $initdir/etc/systemd/system/systemd-networkd.socket
ln -s /dev/null $initdir/etc/systemd/system/systemd-resolved.service
-
- ddebug "umount $TESTDIR/root"
- umount $TESTDIR/root
}
do_test "$@"
. $TEST_BASE_DIR/test-functions
test_setup() {
- create_empty_image
- mkdir -p $TESTDIR/root
- mount ${LOOPDEV}p1 $TESTDIR/root
+ create_empty_image_rootdir
(
LOG_LEVEL=5
setup_testsuite
)
setup_nspawn_root
-
- ddebug "umount $TESTDIR/root"
- umount $TESTDIR/root
}
do_test "$@"
. $TEST_BASE_DIR/test-functions
test_setup() {
- create_empty_image
- mkdir -p $TESTDIR/root
- mount ${LOOPDEV}p1 $TESTDIR/root
+ create_empty_image_rootdir
(
LOG_LEVEL=5
setup_testsuite
)
setup_nspawn_root
-
- ddebug "umount $TESTDIR/root"
- umount $TESTDIR/root
}
do_test "$@"
. $TEST_BASE_DIR/test-functions
test_setup() {
- create_empty_image
- mkdir -p $TESTDIR/root
- mount ${LOOPDEV}p1 $TESTDIR/root
+ create_empty_image_rootdir
(
LOG_LEVEL=5
setup_testsuite
)
setup_nspawn_root
-
- ddebug "umount $TESTDIR/root"
- umount $TESTDIR/root
}
do_test "$@"
. $TEST_BASE_DIR/test-functions
test_setup() {
- create_empty_image
- mkdir -p $TESTDIR/root
- mount ${LOOPDEV}p1 $TESTDIR/root
+ create_empty_image_rootdir
# Create what will eventually be our root filesystem onto an overlay
(
ln -s /dev/null $initdir/etc/systemd/system/systemd-networkd.service
ln -s /dev/null $initdir/etc/systemd/system/systemd-networkd.socket
ln -s /dev/null $initdir/etc/systemd/system/systemd-resolved.service
-
- ddebug "umount $TESTDIR/root"
- umount $TESTDIR/root
}
do_test "$@"
QEMU_TIMEOUT=300
test_setup() {
- create_empty_image
- mkdir -p $TESTDIR/root
- mount ${LOOPDEV}p1 $TESTDIR/root
+ create_empty_image_rootdir
(
LOG_LEVEL=5
setup_testsuite
)
-
- ddebug "umount $TESTDIR/root"
- umount $TESTDIR/root
}
do_test "$@"
. $TEST_BASE_DIR/test-functions
test_setup() {
- create_empty_image
- mkdir -p $TESTDIR/root
- mount ${LOOPDEV}p1 $TESTDIR/root
+ create_empty_image_rootdir
(
LOG_LEVEL=5
setup_testsuite
)
-
- ddebug "umount $TESTDIR/root"
- umount $TESTDIR/root
}
do_test "$@"
QEMU_TIMEOUT=300
test_setup() {
- create_empty_image
- mkdir -p $TESTDIR/root
- mount ${LOOPDEV}p1 $TESTDIR/root
+ create_empty_image_rootdir
(
LOG_LEVEL=5
setup_testsuite
)
-
- ddebug "umount $TESTDIR/root"
- umount $TESTDIR/root
}
do_test "$@"
UNIFIED_CGROUP_HIERARCHY=yes
test_setup() {
- create_empty_image
- mkdir -p $TESTDIR/root
- mount ${LOOPDEV}p1 $TESTDIR/root
+ create_empty_image_rootdir
(
LOG_LEVEL=5
setup_testsuite
)
-
- ddebug "umount $TESTDIR/root"
- umount $TESTDIR/root
}
do_test "$@"
. $TEST_BASE_DIR/test-functions
test_setup() {
- create_empty_image
- mkdir -p $TESTDIR/root
- mount ${LOOPDEV}p1 $TESTDIR/root
+ create_empty_image_rootdir
(
LOG_LEVEL=5
setup_testsuite
)
setup_nspawn_root
-
- ddebug "umount $TESTDIR/root"
- umount $TESTDIR/root
}
do_test "$@"
fi
}
+create_empty_image_rootdir() {
+ create_empty_image
+ mkdir -p $TESTDIR/root
+ mount ${LOOPDEV}p1 $TESTDIR/root
+ TEST_SETUP_CLEANUP_ROOTDIR=1
+}
+
check_asan_reports() {
local ret=0
local root="$1"
inst_simple "/usr/lib/systemd/system/haveged.service"
}
+_test_setup_cleanup() {
+ # only umount if create_empty_image_rootdir() was called to mount it
+ if [[ $TEST_SETUP_CLEANUP_ROOTDIR ]]; then
+ ddebug "umount $TESTDIR/root"
+ umount $TESTDIR/root
+ fi
+}
+
+# can be overridden in specific test
+test_setup_cleanup() {
+ _test_setup_cleanup
+}
+
+_test_cleanup() {
+ if mountpoint $TESTDIR/root; then
+ ddebug "umount $TESTDIR/root"
+ umount $TESTDIR/root
+ fi
+ if [[ $LOOPDEV && -b $LOOPDEV ]]; then
+ ddebug "losetup -d $LOOPDEV"
+ losetup -d $LOOPDEV
+ fi
+}
+
# can be overridden in specific test
test_cleanup() {
- umount $TESTDIR/root 2>/dev/null || true
- [[ $LOOPDEV ]] && losetup -d $LOOPDEV || true
- return 0
+ _test_cleanup
}
test_run() {
--setup)
echo "TEST SETUP: $TEST_DESCRIPTION"
test_setup
+ test_setup_cleanup
;;
--clean)
echo "TEST CLEANUP: $TEST_DESCRIPTION"
ret=0
echo -n "TEST: $TEST_DESCRIPTION ";
(
- test_setup && test_run
+ test_setup
+ test_setup_cleanup
+ test_run
ret=$?
test_cleanup
rm -fr "$TESTDIR"