test_setup() {
# create root filesystem
- "$DRACUT" --tmpdir "$TESTDIR" \
+ call_dracut --tmpdir "$TESTDIR" \
--add-confdir test-root \
-f "$TESTDIR"/initramfs.root
test_setup() {
# Create what will eventually be our root filesystem onto an overlay
- "$DRACUT" --tmpdir "$TESTDIR" \
+ call_dracut --tmpdir "$TESTDIR" \
--add-confdir test-root \
--mount "/dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_root /usr btrfs subvol=usr,rw" \
-f "$TESTDIR"/initramfs.root
# create an initramfs that will create the target root filesystem.
# We do it this way so that we do not risk trashing the host mdraid
# devices, volume groups, encrypted partitions, etc.
- "$DRACUT" -i "$TESTDIR"/overlay / \
+ call_dracut -i "$TESTDIR"/overlay / \
--add-confdir test-makeroot \
-I "mkfs.btrfs" \
-i ./create-root.sh /lib/dracut/hooks/initqueue/01-create-root.sh \
test_setup() {
# Create what will eventually be our root filesystem
- "$DRACUT" --tmpdir "$TESTDIR" \
+ call_dracut --tmpdir "$TESTDIR" \
--add-confdir test-root \
"$TESTDIR"/tmp-initramfs.root
test_setup() {
# create root filesystem
- "$DRACUT" --tmpdir "$TESTDIR" \
+ call_dracut --tmpdir "$TESTDIR" \
--add-confdir test-root \
-f "$TESTDIR"/initramfs.root
test_setup() {
# Create what will eventually be our root filesystem onto an overlay
- "$DRACUT" --tmpdir "$TESTDIR" \
+ call_dracut --tmpdir "$TESTDIR" \
--add-confdir test-root \
-f "$TESTDIR"/initramfs.root
mkdir -p "$TESTDIR"/overlay/source
# devices, volume groups, encrypted partitions, etc.
# shellcheck disable=SC2046
- "$DRACUT" -i "$TESTDIR"/overlay / \
+ call_dracut -i "$TESTDIR"/overlay / \
--add-confdir test-makeroot \
-a "lvm" \
-I "grep" \
test_setup() {
# Create what will eventually be our root filesystem onto an overlay
- "$DRACUT" --tmpdir "$TESTDIR" \
+ call_dracut --tmpdir "$TESTDIR" \
--add-confdir test-root \
-f "$TESTDIR"/initramfs.root
mkdir -p "$TESTDIR"/overlay/source
# create an initramfs that will create the target root filesystem.
# We do it this way so that we do not risk trashing the host mdraid
# devices, volume groups, encrypted partitions, etc.
- "$DRACUT" -i "$TESTDIR"/overlay / \
+ call_dracut -i "$TESTDIR"/overlay / \
--add-confdir test-makeroot \
-a "bash crypt lvm mdraid" \
-I "grep cryptsetup" \
test_setup() {
# Create what will eventually be our root filesystem onto an overlay
- "$DRACUT" --tmpdir "$TESTDIR" \
+ call_dracut --tmpdir "$TESTDIR" \
--add-confdir test-root \
-i ./test-init.sh /sbin/init-persist \
-f "$TESTDIR"/initramfs.root
test_setup() {
# Create what will eventually be our root filesystem onto an overlay
- "$DRACUT" --tmpdir "$TESTDIR" \
+ call_dracut --tmpdir "$TESTDIR" \
--add-confdir test-root \
-f "$TESTDIR"/initramfs.root
mkdir -p "$TESTDIR"/overlay/source
# create an initramfs that will create the target root filesystem.
# We do it this way so that we do not risk trashing the host mdraid
# devices, volume groups, encrypted partitions, etc.
- "$DRACUT" -i "$TESTDIR"/overlay / \
+ call_dracut -i "$TESTDIR"/overlay / \
--add-confdir "test-makeroot" \
-i ./create-root.sh /lib/dracut/hooks/initqueue/01-create-root.sh \
-f "$TESTDIR"/initramfs.makeroot
fi
# Create what will eventually be our root filesystem onto an overlay
- "$DRACUT" --tmpdir "$TESTDIR" \
+ call_dracut --tmpdir "$TESTDIR" \
--add-confdir test-root \
-a "$dracut_modules" \
-f "$TESTDIR"/initramfs.root
# create an initramfs that will create the target root filesystem.
# We do it this way so that we do not risk trashing the host mdraid
# devices, volume groups, encrypted partitions, etc.
- "$DRACUT" -i "$TESTDIR"/overlay / \
+ call_dracut -i "$TESTDIR"/overlay / \
--add-confdir test-makeroot \
-a "btrfs crypt" \
-I "mkfs.btrfs cryptsetup" \
test_setup() {
# Create what will eventually be our root filesystem onto an overlay
- "$DRACUT" --tmpdir "$TESTDIR" \
+ call_dracut --tmpdir "$TESTDIR" \
--add-confdir test-root \
-f "$TESTDIR"/initramfs.root
mkdir -p "$TESTDIR"/overlay/source
# create an initramfs that will create the target root filesystem.
# We do it this way so that we do not risk trashing the host mdraid
# devices, volume groups, encrypted partitions, etc.
- "$DRACUT" -i "$TESTDIR"/overlay / \
+ call_dracut -i "$TESTDIR"/overlay / \
--add-confdir test-makeroot \
-i ./create-root.sh /lib/dracut/hooks/initqueue/01-create-root.sh \
-f "$TESTDIR"/initramfs.makeroot
# initrd for required kernel modules
# Improve boot time by generating two initrds. Do not re-compress kernel modules
- "$DRACUT" \
+ call_dracut \
--no-compress \
--kernel-only \
-m "kernel-modules qemu" \
test_setup() {
# create root filesystem
# shellcheck disable=SC2153
- "$DRACUT" --tmpdir "$TESTDIR" \
+ call_dracut --tmpdir "$TESTDIR" \
--add-confdir test-root \
-f "$TESTDIR"/initramfs.root
test_setup() {
# create root filesystem
- "$DRACUT" --tmpdir "$TESTDIR" \
+ call_dracut --tmpdir "$TESTDIR" \
-I "ip" \
-i "./assertion.sh" "/assertion.sh" \
--add-confdir test-root \
}
test_setup() {
- "$DRACUT" --tmpdir "$TESTDIR" \
+ call_dracut --tmpdir "$TESTDIR" \
--add-confdir test-root \
-a "$USE_NETWORK url-lib nfs" \
-I "ip grep setsid" \
mkdir -p "$TESTDIR"/server/overlay
# Create what will eventually be the server root filesystem onto an overlay
- "$DRACUT" --tmpdir "$TESTDIR"/server/overlay \
+ call_dracut --tmpdir "$TESTDIR"/server/overlay \
--add-confdir test-root \
-a "bash $USE_NETWORK nfs" \
--add-drivers "nfsd sunrpc lockd" \
# create an initramfs that will create the target root filesystem.
# We do it this way so that we do not risk trashing the host mdraid
# devices, volume groups, encrypted partitions, etc.
- "$DRACUT" -i "$TESTDIR"/server/overlay / \
+ call_dracut -i "$TESTDIR"/server/overlay / \
--add-confdir test-makeroot \
-a "bash" \
-i ./create-root.sh /lib/dracut/hooks/initqueue/01-create-root.sh \
-a "watchdog dmsquash-live qemu-net ${USE_NETWORK}"
# Make server's dracut image
- "$DRACUT" \
+ call_dracut \
-a "bash qemu-net $USE_NETWORK ${SERVER_DEBUG:+debug}" \
--include ./server.link /etc/systemd/network/01-server.link \
--include ./wait-if-server.sh /lib/dracut/hooks/pre-mount/99-wait-if-server.sh \
test_setup() {
# Create what will eventually be the client root filesystem onto an overlay
- "$DRACUT" --tmpdir "$TESTDIR" \
+ call_dracut --tmpdir "$TESTDIR" \
--add-confdir test-root \
-I "ip grep setsid" \
-f "$TESTDIR"/initramfs.root
# create an initramfs that will create the target root filesystem.
# We do it this way so that we do not risk trashing the host mdraid
# devices, volume groups, encrypted partitions, etc.
- "$DRACUT" -i "$TESTDIR"/overlay / \
+ call_dracut -i "$TESTDIR"/overlay / \
--add-confdir test-makeroot \
-a "crypt lvm mdraid" \
-I "setsid blockdev" \
rm -- "$TESTDIR"/marker.img
# Create what will eventually be the server root filesystem onto an overlay
- "$DRACUT" --tmpdir "$TESTDIR" \
+ call_dracut --tmpdir "$TESTDIR" \
--add-confdir test-root \
-a "$USE_NETWORK" \
-d "iscsi_tcp crc32c ipv6" \
# create an initramfs that will create the target root filesystem.
# We do it this way so that we do not risk trashing the host mdraid
# devices, volume groups, encrypted partitions, etc.
- "$DRACUT" -i "$TESTDIR"/overlay / \
+ call_dracut -i "$TESTDIR"/overlay / \
--add-confdir test-makeroot \
-i ./create-server-root.sh /lib/dracut/hooks/initqueue/01-create-server-root.sh \
-f "$TESTDIR"/initramfs.makeroot
rm -- "$TESTDIR"/marker.img
# Make server's dracut image
- "$DRACUT" \
+ call_dracut \
-a "qemu-net $USE_NETWORK" \
--add-confdir test \
-i "./server.link" "/etc/systemd/network/01-server.link" \
test_setup() {
# Create what will eventually be our root filesystem onto an overlay
rm -rf -- "$TESTDIR"/overlay
- "$DRACUT" --keep --tmpdir "$TESTDIR" \
+ call_dracut --keep --tmpdir "$TESTDIR" \
--add-confdir test-root \
-I "ip grep setsid" \
--no-hostonly \
# create an initramfs that will create the target root filesystem.
# We do it this way so that we do not risk trashing the host mdraid
# devices, volume groups, encrypted partitions, etc.
- "$DRACUT" -i "$TESTDIR"/overlay / \
+ call_dracut -i "$TESTDIR"/overlay / \
--add-confdir test-makeroot \
-a "crypt lvm mdraid" \
-I "setsid blockdev" \
rm -- "$TESTDIR"/marker.img
rm -rf -- "$TESTDIR"/overlay
- "$DRACUT" --tmpdir "$TESTDIR" \
+ call_dracut --tmpdir "$TESTDIR" \
--add-confdir test-root \
-a "$USE_NETWORK iscsi" \
-d "iscsi_tcp crc32c ipv6 af_packet" \
# create an initramfs that will create the target root filesystem.
# We do it this way so that we do not risk trashing the host mdraid
# devices, volume groups, encrypted partitions, etc.
- "$DRACUT" -i "$TESTDIR"/overlay / \
+ call_dracut -i "$TESTDIR"/overlay / \
--add-confdir test-makeroot \
-i ./create-server-root.sh /lib/dracut/hooks/initqueue/01-create-server-root.sh \
-f "$TESTDIR"/initramfs.makeroot
-i ./client-persistent-lan1.link /etc/systemd/network/01-persistent-lan1.link
# Make server's dracut image
- "$DRACUT" -i "$TESTDIR"/overlay / \
+ call_dracut -i "$TESTDIR"/overlay / \
--add-confdir test \
-a "qemu-net $USE_NETWORK ${SERVER_DEBUG:+debug}" \
-i "./server.link" "/etc/systemd/network/01-server.link" \
make_encrypted_root() {
rm -fr "$TESTDIR"/overlay
# Create what will eventually be our root filesystem onto an overlay
- "$DRACUT" --tmpdir "$TESTDIR" \
+ call_dracut --tmpdir "$TESTDIR" \
--add-confdir test-root \
-I "ip grep" \
--no-hostonly \
# create an initramfs that will create the target root filesystem.
# We do it this way so that we do not risk trashing the host mdraid
# devices, volume groups, encrypted partitions, etc.
- "$DRACUT" -i "$TESTDIR"/overlay / \
+ call_dracut -i "$TESTDIR"/overlay / \
--add-confdir test-makeroot \
-a "crypt lvm mdraid" \
-I "cryptsetup" \
make_client_root() {
rm -fr "$TESTDIR"/overlay
- "$DRACUT" --tmpdir "$TESTDIR" \
+ call_dracut --tmpdir "$TESTDIR" \
--add-confdir test-root \
-I "ip" \
--no-hostonly \
# create an initramfs that will create the target root filesystem.
# We do it this way so that we do not risk trashing the host mdraid
# devices, volume groups, encrypted partitions, etc.
- "$DRACUT" -i "$TESTDIR"/overlay / \
+ call_dracut -i "$TESTDIR"/overlay / \
--add-confdir test-makeroot \
-i ./create-client-root.sh /lib/dracut/hooks/initqueue/01-create-client-root.sh \
-f "$TESTDIR"/initramfs.makeroot
bs = 4096
EOF
- "$DRACUT" --keep --tmpdir "$TESTDIR" \
+ call_dracut --keep --tmpdir "$TESTDIR" \
--add-confdir test-root \
-a "$USE_NETWORK" \
-I "ip grep sleep nbd-server chmod modprobe pidof" \
# create an initramfs that will create the target root filesystem.
# We do it this way so that we do not risk trashing the host mdraid
# devices, volume groups, encrypted partitions, etc.
- "$DRACUT" -i "$TESTDIR"/overlay / \
+ call_dracut -i "$TESTDIR"/overlay / \
--add-confdir test-makeroot \
-i ./create-server-root.sh /lib/dracut/hooks/initqueue/01-create-server-root.sh \
-f "$TESTDIR"/initramfs.makeroot
-i "/tmp/crypttab" "/etc/crypttab" \
-i "/tmp/key" "/etc/key"
- "$DRACUT" -N -i "$TESTDIR"/overlay / \
+ call_dracut -N -i "$TESTDIR"/overlay / \
--add-confdir test \
-a "qemu-net $USE_NETWORK ${SERVER_DEBUG:+debug}" \
-i "./server.link" "/etc/systemd/network/01-server.link" \
# shellcheck disable=SC2162
IFS=' ' read -a TEST_DRACUT_ARGS_ARRAY <<< "$TEST_DRACUT_ARGS"
- "$DRACUT" \
+ call_dracut \
"${TEST_DRACUT_ARGS_ARRAY[@]}" \
"$@" "$TESTDIR"/initramfs.testing || return 1
}
+quote_args() {
+ local arg args=()
+ for arg in "$@"; do
+ if [[ -z $arg || $arg =~ [[:space:]\'] ]]; then
+ args+=("'${arg//\'/\'\\\'\'}'")
+ else
+ args+=("$arg")
+ fi
+ done
+ echo "${args[*]}"
+}
+
+# Call dracut and log its call in verbose mode
+call_dracut() {
+ # Uncomment this to debug failures
+ #set -- --stdlog 4 "$@"
+ if [[ ${V-} == "1" || ${V-} == "2" ]]; then
+ echo "Calling $DRACUT $(quote_args "$@")"
+ fi
+ "$DRACUT" "$@"
+}
+
# Wait for the server QEMU has been started up.
# It should print "Serving" in the server.log in that case.
wait_for_server_startup() {