mirror of
https://github.com/systemd/systemd.git
synced 2024-12-22 17:35:35 +03:00
af153e36ae
Rebuilding the integration test every time is very slow. Let's introduce a way to iterate on an integration test without rebuilding the image every time. By making a btrfs snapshot before we run the integration test, we can then systemctl soft-reboot after running the test to restore the rootfs to a pristine state before running the test again. As /run/nextroot will get nuked on reboot or soft-reboot, we introduce a tmpfiles snippet to make sure it is recreated every (soft-)reboot and adapt the existing tests to deal with this new symlink.
30 lines
692 B
Bash
Executable File
30 lines
692 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
set -eux
|
|
set -o pipefail
|
|
|
|
export NUM_REBOOT=4
|
|
|
|
# shellcheck source=test/units/test-control.sh
|
|
. "$(dirname "$0")"/test-control.sh
|
|
|
|
# shellcheck source=test/units/util.sh
|
|
. "$(dirname "$0")"/util.sh
|
|
|
|
systemd-cat echo "Reboot count: $REBOOT_COUNT"
|
|
systemd-cat journalctl --list-boots
|
|
|
|
run_subtests
|
|
|
|
if [[ "$REBOOT_COUNT" -lt "$NUM_REBOOT" ]]; then
|
|
SYSTEMCTL_SKIP_AUTO_SOFT_REBOOT=1
|
|
export SYSTEMCTL_SKIP_AUTO_SOFT_REBOOT
|
|
systemctl_final reboot
|
|
# Now block until the reboot killing spree kills us.
|
|
exec sleep infinity
|
|
elif [[ "$REBOOT_COUNT" -gt "$NUM_REBOOT" ]]; then
|
|
assert_not_reached
|
|
fi
|
|
|
|
touch /testok
|