1
1
#! /bin/bash
2
+ # shellcheck disable=SC2034
2
3
TEST_DESCRIPTION=" root filesystem on a ext3 filesystem"
3
4
4
5
KVERSION=${KVERSION-$(uname -r)}
@@ -7,29 +8,31 @@ KVERSION=${KVERSION-$(uname -r)}
7
8
# DEBUGFAIL="rd.shell rd.break"
8
9
9
10
test_run () {
10
- dd if=/dev/zero of=$TESTDIR /result bs=1M count=1
11
- $testdir /run-qemu \
12
- -drive format=raw,index=0,media=disk,file=$TESTDIR /root.ext3 \
13
- -drive format=raw,index=1,media=disk,file=$TESTDIR /result \
11
+ dd if=/dev/zero of=" $TESTDIR " /result bs=1M count=1
12
+ " $testdir " /run-qemu \
13
+ -drive format=raw,index=0,media=disk,file=" $TESTDIR " /root.ext3 \
14
+ -drive format=raw,index=1,media=disk,file=" $TESTDIR " /result \
14
15
-watchdog i6300esb -watchdog-action poweroff \
15
16
-append " panic=1 systemd.crash_reboot \" root=LABEL= rdinit=/bin/sh\" rw systemd.log_level=debug systemd.log_target=console rd.retry=3 rd.debug console=ttyS0,115200n81 rd.shell=0 $DEBUGFAIL " \
16
- -initrd $TESTDIR /initramfs.testing || return 1
17
- grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success $TESTDIR /result || return 1
17
+ -initrd " $TESTDIR " /initramfs.testing || return 1
18
+ grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success " $TESTDIR " /result || return 1
18
19
}
19
20
20
21
test_setup () {
21
- rm -f -- $TESTDIR /root.ext3
22
+ rm -f -- " $TESTDIR " /root.ext3
22
23
# Create the blank file to use as a root filesystem
23
- dd if=/dev/zero of=$TESTDIR /root.ext3 bs=1M count=80
24
+ dd if=/dev/zero of=" $TESTDIR " /root.ext3 bs=1M count=80
24
25
25
26
kernel=$KVERSION
26
27
# Create what will eventually be our root filesystem onto an overlay
27
28
(
29
+ # shellcheck disable=SC2030
28
30
export initdir=$TESTDIR /overlay/source
29
- mkdir -p $initdir
30
- . $basedir /dracut-init.sh
31
+ mkdir -p " $initdir "
32
+ # shellcheck disable=SC1090
33
+ . " $basedir " /dracut-init.sh
31
34
(
32
- cd " $initdir "
35
+ cd " $initdir " || exit
33
36
mkdir -p -- dev sys proc etc var/run tmp
34
37
mkdir -p root usr/bin usr/lib usr/lib64 usr/sbin
35
38
for i in bin sbin lib lib64; do
@@ -38,25 +41,34 @@ test_setup() {
38
41
)
39
42
inst_multiple sh df free ls shutdown poweroff stty cat ps ln ip \
40
43
mount dmesg dhclient mkdir cp ping dhclient \
41
- umount strace less setsid dd
44
+ umount strace less setsid dd sync
42
45
for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do
43
46
[ -f ${_terminfodir} /l/linux ] && break
44
47
done
45
48
inst_multiple -o ${_terminfodir} /l/linux
46
49
inst " $basedir /modules.d/35network-legacy/dhclient-script.sh" " /sbin/dhclient-script"
47
50
inst " $basedir /modules.d/35network-legacy/ifup.sh" " /sbin/ifup"
51
+
52
+ inst_simple " ${basedir} /modules.d/99base/dracut-lib.sh" " /lib/dracut-lib.sh"
53
+ inst_binary " ${basedir} /dracut-util" " /usr/bin/dracut-util"
54
+ ln -s dracut-util " ${initdir} /usr/bin/dracut-getarg"
55
+ ln -s dracut-util " ${initdir} /usr/bin/dracut-getargs"
56
+
48
57
inst_multiple grep
49
58
inst_simple /etc/os-release
50
59
inst ./test-init.sh /sbin/init
51
60
find_binary plymouth > /dev/null && inst_multiple plymouth
52
- cp -a /etc/ld.so.conf* $initdir /etc
61
+ cp -a /etc/ld.so.conf* " $initdir " /etc
53
62
ldconfig -r " $initdir "
54
63
)
55
64
56
65
# second, install the files needed to make the root filesystem
57
66
(
67
+ # shellcheck disable=SC2031
68
+ # shellcheck disable=SC2030
58
69
export initdir=$TESTDIR /overlay
59
- . $basedir /dracut-init.sh
70
+ # shellcheck disable=SC1090
71
+ . " $basedir " /dracut-init.sh
60
72
inst_multiple sfdisk mkfs.ext3 poweroff cp umount sync dd
61
73
inst_hook initqueue 01 ./create-root.sh
62
74
inst_hook initqueue/finished 01 ./finished-false.sh
@@ -66,34 +78,36 @@ test_setup() {
66
78
# create an initramfs that will create the target root filesystem.
67
79
# We do it this way so that we do not risk trashing the host mdraid
68
80
# devices, volume groups, encrypted partitions, etc.
69
- $basedir /dracut.sh -l -i $TESTDIR /overlay / \
81
+ " $basedir " /dracut.sh -l -i " $TESTDIR " /overlay / \
70
82
-m " dash udev-rules base rootfs-block fs-lib kernel-modules fs-lib qemu" \
71
83
-d " piix ide-gd_mod ata_piix ext3 sd_mod" \
72
84
--nomdadmconf \
73
85
--no-hostonly-cmdline -N \
74
- -f $TESTDIR /initramfs.makeroot $KVERSION || return 1
75
- rm -rf -- $TESTDIR /overlay
86
+ -f " $TESTDIR " /initramfs.makeroot " $KVERSION " || return 1
87
+ rm -rf -- " $TESTDIR " /overlay
76
88
# Invoke KVM and/or QEMU to actually create the target filesystem.
77
89
78
- $testdir /run-qemu \
79
- -drive format=raw,index=0,media=disk,file=$TESTDIR /root.ext3 \
90
+ " $testdir " /run-qemu \
91
+ -drive format=raw,index=0,media=disk,file=" $TESTDIR " /root.ext3 \
80
92
-append " root=/dev/dracut/root rw rootfstype=ext3 quiet console=ttyS0,115200n81 selinux=0" \
81
- -initrd $TESTDIR /initramfs.makeroot || return 1
82
- grep -U --binary-files=binary -F -m 1 -q dracut-root-block-created $TESTDIR /root.ext3 || return 1
93
+ -initrd " $TESTDIR " /initramfs.makeroot || return 1
94
+ grep -U --binary-files=binary -F -m 1 -q dracut-root-block-created " $TESTDIR " /root.ext3 || return 1
83
95
84
96
(
97
+ # shellcheck disable=SC2031
85
98
export initdir=$TESTDIR /overlay
86
- . $basedir /dracut-init.sh
99
+ # shellcheck disable=SC1090
100
+ . " $basedir " /dracut-init.sh
87
101
inst_multiple poweroff shutdown dd
88
102
inst_hook shutdown-emergency 000 ./hard-off.sh
89
103
inst_hook emergency 000 ./hard-off.sh
90
104
inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
91
105
)
92
- $basedir /dracut.sh -l -i $TESTDIR /overlay / \
106
+ " $basedir " /dracut.sh -l -i " $TESTDIR " /overlay / \
93
107
-a " debug watchdog" \
94
108
-d " piix ide-gd_mod ata_piix ext3 sd_mod i6300esb ib700wdt" \
95
109
--no-hostonly-cmdline -N \
96
- -f $TESTDIR /initramfs.testing $KVERSION || return 1
110
+ -f " $TESTDIR " /initramfs.testing " $KVERSION " || return 1
97
111
98
112
# -o "plymouth network md dmraid multipath fips caps crypt btrfs resume dmsquash-live dm"
99
113
}
@@ -102,4 +116,5 @@ test_cleanup() {
102
116
return 0
103
117
}
104
118
105
- . $testdir /test-functions
119
+ # shellcheck disable=SC1090
120
+ . " $testdir " /test-functions
0 commit comments