]> git.ipfire.org Git - thirdparty/dracut-ng.git/commitdiff
test(BASIC): allow to run the test with various fstypes
authorJo Zzsi <jozzsicsataban@gmail.com>
Sun, 1 Sep 2024 14:51:24 +0000 (10:51 -0400)
committerLaszlo Gombos <laszlo.gombos@gmail.com>
Sat, 7 Sep 2024 19:41:55 +0000 (15:41 -0400)
Tested with the following fstypes:
 - ext2
 - ext3
 - ext4
 - btrfs
 - jfs

test/TEST-01-BASIC/create-root.sh
test/TEST-01-BASIC/test.sh
test/test-functions

index 0fe0f67d38efa34cd11af56e5823eb41c9dacbf2..c94e08eb97785e53d69a472f9a4e366bbac417d4 100755 (executable)
@@ -12,9 +12,12 @@ udevadm settle
 
 set -ex
 
-mkfs.ext4 -q -L '  rdinit=/bin/sh' /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_root
+# populate TEST_FSTYPE
+. /env
+
+eval "mkfs.${TEST_FSTYPE} -q -L '  rdinit=/bin/sh' /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_root"
 mkdir -p /root
-mount -t ext4 /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_root /root
+mount -t "${TEST_FSTYPE}" /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_root /root
 cp -a -t /root /source/*
 mkdir -p /root/run
 umount /root
index eba50f0a24b0b9ecf1290213b2011917f8b9f7a8..fe2593613cbbd9ae2a5ebe4993be0dff52746ebb 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/bash
 # shellcheck disable=SC2034
-TEST_DESCRIPTION="root filesystem on a ext4 filesystem"
+TEST_DESCRIPTION="root filesystem on ${TEST_FSTYPE} filesystem"
 
 # Uncomment this to debug failures
 # DEBUGFAIL="rd.shell rd.break"
@@ -27,12 +27,16 @@ test_setup() {
         -f "$TESTDIR"/initramfs.root "$KVERSION" || return 1
     mkdir -p "$TESTDIR"/overlay/source && mv "$TESTDIR"/dracut.*/initramfs/* "$TESTDIR"/overlay/source && rm -rf "$TESTDIR"/dracut.*
 
+    # pass enviroment variables to make the root filesystem
+    echo "TEST_FSTYPE=${TEST_FSTYPE}" > "$TESTDIR"/overlay/env
+
     # second, install the files needed to make the root filesystem
     # 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" -N -l -i "$TESTDIR"/overlay / \
         -m "test-makeroot" \
+        -I "mkfs.${TEST_FSTYPE}" \
         -i ./create-root.sh /lib/dracut/hooks/initqueue/01-create-root.sh \
         -f "$TESTDIR"/initramfs.makeroot "$KVERSION" || return 1
     rm -rf -- "$TESTDIR"/overlay
@@ -40,12 +44,12 @@ test_setup() {
     declare -a disk_args=()
     declare -i disk_index=0
     qemu_add_drive disk_index disk_args "$TESTDIR"/marker.img marker 1
-    qemu_add_drive disk_index disk_args "$TESTDIR"/root.img root 80
+    qemu_add_drive disk_index disk_args "$TESTDIR"/root.img root 160
 
     # Invoke KVM and/or QEMU to actually create the target filesystem.
     "$testdir"/run-qemu \
         "${disk_args[@]}" \
-        -append "root=/dev/dracut/root rw rootfstype=ext4 quiet console=ttyS0,115200n81" \
+        -append "root=/dev/dracut/root rw rootfstype=${TEST_FSTYPE} quiet console=ttyS0,115200n81" \
         -initrd "$TESTDIR"/initramfs.makeroot || return 1
     test_marker_check dracut-root-block-created || return 1
     rm -- "$TESTDIR"/marker.img
index 8aac2ec72e575a9de91ab1b3d09fe074bd186574..b4bbd6c15ced660b0e7156c83420ed058000303e 100644 (file)
@@ -14,6 +14,8 @@ KVERSION=${KVERSION-$(uname -r)}
 
 [ -z "$USE_NETWORK" ] && USE_NETWORK="network"
 
+[ -z "$TEST_FSTYPE" ] && TEST_FSTYPE="ext4"
+
 if [[ -z $basedir ]]; then basedir="$(realpath ../..)"; fi
 
 DRACUT=${DRACUT-${basedir}/dracut.sh}