]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
fix: shellcheck 0.7.2
authorHarald Hoyer <harald@redhat.com>
Tue, 4 May 2021 14:36:22 +0000 (16:36 +0200)
committerHarald Hoyer <harald@hoyer.xyz>
Wed, 5 May 2021 12:55:30 +0000 (14:55 +0200)
github action `luizm/action-sh-checker@v0.2.2` uses `shellcheck-0.7.2`,
which detects more non-posix shell code and complains accordingly.

59 files changed:
.github/workflows/lint.yml
.shellcheckrc
dracut.sh
modules.d/01systemd-ask-password/module-setup.sh
modules.d/01systemd-coredump/module-setup.sh
modules.d/01systemd-repart/module-setup.sh
modules.d/01systemd-sysctl/module-setup.sh
modules.d/06dbus-broker/module-setup.sh
modules.d/06dbus-daemon/module-setup.sh
modules.d/09dbus/module-setup.sh
modules.d/35network-legacy/dhcp-multi.sh
modules.d/35network-legacy/ifup.sh
modules.d/35network-legacy/module-setup.sh
modules.d/35network-legacy/parse-ip-opts.sh
modules.d/40network/module-setup.sh
modules.d/40network/net-lib.sh
modules.d/62bluetooth/module-setup.sh
modules.d/81cio_ignore/parse-cio_accept.sh
modules.d/90crypt/module-setup.sh
modules.d/90dmsquash-live/dmsquash-generator.sh
modules.d/90dmsquash-live/dmsquash-live-root.sh
modules.d/90dmsquash-live/module-setup.sh
modules.d/90livenet/livenet-generator.sh
modules.d/90livenet/module-setup.sh
modules.d/90lvm/parse-lvm.sh
modules.d/90mdraid/parse-md.sh
modules.d/95nbd/nbdroot.sh
modules.d/95znet/module-setup.sh
modules.d/95znet/parse-ccw.sh
modules.d/98dracut-systemd/dracut-cmdline-ask.sh
modules.d/99base/init.sh
modules.d/99img-lib/img-lib.sh
modules.d/99memstrack/memstrack-start.sh
modules.d/99memstrack/module-setup.sh
modules.d/99shutdown/shutdown.sh
test/TEST-01-BASIC/test.sh
test/TEST-02-SYSTEMD/test.sh
test/TEST-03-USR-MOUNT/test.sh
test/TEST-04-FULL-SYSTEMD/test.sh
test/TEST-10-RAID/test.sh
test/TEST-11-LVM/test.sh
test/TEST-12-RAID-DEG/test.sh
test/TEST-13-ENC-RAID-LVM/test.sh
test/TEST-14-IMSM/test.sh
test/TEST-15-BTRFSRAID/test.sh
test/TEST-16-DMSQUASH/test.sh
test/TEST-17-LVM-THIN/test.sh
test/TEST-20-NFS/server-init.sh
test/TEST-20-NFS/test.sh
test/TEST-30-ISCSI/test.sh
test/TEST-35-ISCSI-MULTI/server-init.sh
test/TEST-35-ISCSI-MULTI/test.sh
test/TEST-40-NBD/test.sh
test/TEST-50-MULTINIC/client-init.sh
test/TEST-50-MULTINIC/test.sh
test/TEST-60-BONDBRIDGEVLANIFCFG/99-default.link
test/TEST-60-BONDBRIDGEVLANIFCFG/server-init.sh
test/TEST-60-BONDBRIDGEVLANIFCFG/test.sh
test/TEST-60-BONDBRIDGEVLANIFCFG/wait-if-server.sh [new file with mode: 0644]

index 3328d861fa26cdef1822068bf40da560a5ac8aaf..7b1b8ee74b2af1888221a432246ac5e96a700264 100644 (file)
@@ -29,10 +29,10 @@ jobs:
       - uses: actions/checkout@v2
 
       - name: shfmt
-        uses: luizm/action-sh-checker@v0.2.0
+        uses: luizm/action-sh-checker@v0.2.2
         env:
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-          SHFMT_OPTS: -d -s # arguments to shfmt.
+          SHFMT_OPTS: -s # arguments to shfmt.
         with:
           sh_checker_shellcheck_disable: false
           sh_checker_comment: true
index 17909a1943a3d5ea7bf4052e6f2572dcd2ada117..ce5c883b74610fafc228c6439560ace1c70e06ec 100644 (file)
@@ -17,3 +17,18 @@ disable=SC1091
 # SC2174: When used with -p, -m only applies to the deepest directory.
 # https://github.com/koalaman/shellcheck/wiki/SC2174
 disable=SC2174
+
+# SC3043: In POSIX sh, 'local' is undefined.
+# https://github.com/koalaman/shellcheck/wiki/SC3043
+# ... but dash supports it
+disable=SC3043
+
+# SC3013: In POSIX sh, -ef is undefined.
+# https://github.com/koalaman/shellcheck/wiki/SC3013
+# ... but dash supports it
+disable=SC3013
+
+# SC3045: In POSIX sh, read -p is undefined.
+# https://github.com/koalaman/shellcheck/wiki/SC3045
+# ... but dash supports it
+disable=SC3045
index a7d66edb9c5a47612495091ab1efb6b65e56249f..ec00097e2deb29603cbb887d6ada25db3bc52f0f 100755 (executable)
--- a/dracut.sh
+++ b/dracut.sh
@@ -30,6 +30,7 @@ if ((BASH_VERSINFO[0] < 4)); then
 fi
 
 dracut_args=("$@")
+# shellcheck disable=SC2155
 readonly dracut_cmd=$(readlink -f "$0")
 
 set -o pipefail
@@ -1111,6 +1112,7 @@ case "${drivers_dir}" in
         ;;
 esac
 
+# shellcheck disable=SC2155
 readonly TMPDIR="$(realpath -e "$tmpdir")"
 [ -d "$TMPDIR" ] || {
     printf "%s\n" "dracut: Invalid tmpdir '$tmpdir'." >&2
@@ -1122,6 +1124,7 @@ if findmnt --raw -n --target "$tmpdir" --output=options | grep -q noexec; then
     noexec=1
 fi
 
+# shellcheck disable=SC2155
 readonly DRACUT_TMPDIR="$(mktemp -p "$TMPDIR/" -d -t dracut.XXXXXX)"
 [ -d "$DRACUT_TMPDIR" ] || {
     printf "%s\n" "dracut: mktemp -p '$TMPDIR/' -d -t dracut.XXXXXX failed." >&2
index c8b59e9a6f8db042a49476e11f862fb65ccb2730..6e7807552b526e1d49ed781163e78827059ac896 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 # This file is part of dracut.
 # SPDX-License-Identifier: GPL-2.0-or-later
 
index 0eed4652bb095339b88f58ab13c63f40845bd5c6..1b943ae3e2395ec997beba311fad81a5eb0e3e3a 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 # This file is part of dracut.
 # SPDX-License-Identifier: GPL-2.0-or-later
 
index eb4e0593386a884e4a8e5747ef1f44667d8c9dd1..ed1ddcfd27b807c5fa2e54a5b1c39e6748dbaa39 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 # This file is part of dracut.
 # SPDX-License-Identifier: GPL-2.0-or-later
 
index ad52614c9199eebdbcfda1d2ded08df4e39b78a2..d0eb779484fd89051dc57a0039564c90a79d2284 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 # This file is part of dracut.
 # SPDX-License-Identifier: GPL-2.0-or-later
 
index 3c1b944576251dae0bc63b4de336824ca52ee902..5e3c469c2611d256b482048b83181fb671db96ff 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 # This file is part of dracut.
 # SPDX-License-Identifier: GPL-2.0-or-later
 
index c3afaa95f54391cce04177f7d8f61cc881e5fd6d..8345585f9ad5be38c6a77f478d28a96b7c4a9d95 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 # This file is part of dracut.
 # SPDX-License-Identifier: GPL-2.0-or-later
 
index b66367bd54e7848407aedaa267baef4a784cc7d0..e3e1f16be609545cdb04c4eaabca9eec5b2fadfe 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 # This file is part of dracut.
 # SPDX-License-Identifier: GPL-2.0-or-later
 
index f1b412ceea11ae831888dba287338d71dfb2bae2..df091a521fb5849820a05a156b505c0ca85f9131 100755 (executable)
@@ -65,7 +65,7 @@ do_dhclient() {
     warn "dhcp for interface $netif failed"
     # nuke those files since we failed; we might retry dhcp again if it's e.g.
     # `ip=dhcp,dhcp6` and we check for the PID file earlier
-    rm -f /tmp/dhclient."$netif".{pid,lease}
+    rm -f /tmp/dhclient."$netif".pid /tmp/dhclient."$netif".lease
     return 1
 }
 
index 95a8a8b37f65a8f080841c95a24b97bb2f1fdcd6..a05c4698080f285c1f5d5f400127cb6971f23be1 100755 (executable)
@@ -96,7 +96,7 @@ do_dhcp() {
     warn "dhcp for interface $netif failed"
     # nuke those files since we failed; we might retry dhcp again if it's e.g.
     # `ip=dhcp,dhcp6` and we check for the PID file at the top
-    rm -f "/tmp/dhclient.${netif}".{pid,lease}
+    rm -f /tmp/dhclient."$netif".pid /tmp/dhclient."$netif".lease
     return 1
 }
 
@@ -268,7 +268,7 @@ if [ -z "$NO_BOND_MASTER" ]; then
         # shellcheck disable=SC1090
         . "$i"
         for testslave in $bondslaves; do
-            [ "$netif" != "testslave" ] && continue
+            [ "$netif" != "$testslave" ] && continue
 
             # already setup
             [ -e "/tmp/bond.$bondname.up" ] && exit 0
index aea7c4322ae80869afbd4db2a55ca098aa6c6931..84dcf7f5be9fbcaf4b8b254937adc1f022e6317d 100755 (executable)
@@ -2,7 +2,7 @@
 
 # called by dracut
 check() {
-    require_binaries ip dhclient sed awk grep pgrep tr || return 1
+    require_binaries ip dhclient sed awk grep pgrep tr expr || return 1
     require_any_binary arping arping2 || return 1
 
     return 255
@@ -28,7 +28,7 @@ install() {
         [[ $hostonly ]] && inst_multiple -H -o "${systemdsystemconfdir}/network/*.link"
     fi
 
-    inst_multiple ip dhclient sed awk grep pgrep tr
+    inst_multiple ip dhclient sed awk grep pgrep tr expr
 
     inst_multiple -o arping arping2
     strstr "$(arping 2>&1)" "ARPing 2" && mv "$initdir/bin/arping" "$initdir/bin/arping2"
index b904fba835dc9e7ad47f81e83e3f46dff004c9d2..35917bbfbc5dc73131c707e45c91a1c82b59a1e2 100755 (executable)
@@ -113,14 +113,16 @@ for p in $(getargs ip=); do
     fi
 
     if str_starts "$dev" "enx" && [ ${#dev} -eq 15 ]; then
+        # shellcheck disable=SC2003
         printf -- "ifname=%s:%s:%s:%s:%s:%s:%s\n" \
             "$dev" \
-            "${dev:3:2}" \
-            "${dev:5:2}" \
-            "${dev:7:2}" \
-            "${dev:9:2}" \
-            "${dev:11:2}" \
-            "${dev:13:2}" >> /etc/cmdline.d/80-enx.conf
+            "$(expr substr "$dev" 3 2)" \
+            "$(expr substr "$dev" 5 2)" \
+            "$(expr substr "$dev" 7 2)" \
+            "$(expr substr "$dev" 9 2)" \
+            "$(expr substr "$dev" 11 2)" \
+            "$(expr substr "$dev" 13 2)" \
+            >> /etc/cmdline.d/80-enx.conf
     fi
 done
 
index 648d84d6364ab32d075625258646a5a56f8fc5f6..60824da6e1d843756c719b2df8db485a3360e5b8 100755 (executable)
@@ -42,6 +42,7 @@ install() {
     inst_simple "$moddir/net-lib.sh" "/lib/net-lib.sh"
     inst_hook pre-udev 50 "$moddir/ifname-genrules.sh"
     inst_hook cmdline 91 "$moddir/dhcp-root.sh"
-
+    inst_multiple ip sed awk grep pgrep tr
+    inst_multiple -o arping arping2
     dracut_need_initqueue
 }
index 6480dc061713cde6c57496a515ed0db36a16b4d1..54bb6775e0365ba6ea5e60d9aad2bd940967f948 100755 (executable)
@@ -266,10 +266,10 @@ ibft_to_cmdline() {
 
             [ -e "${iface}"/flags ] && read -r flags < "${iface}"/flags
             # Skip invalid interfaces
-            ((flags & 1)) || continue
+            awk -- 'BEGIN { exit (!and('"$flags"',1)) }' || continue
             # Skip interfaces not used for booting unless using multipath
             if ! getargbool 0 rd.iscsi.mp; then
-                ((flags & 2)) || continue
+                awk -- 'BEGIN { exit (!and('"$flags"',2)) }' || continue
             fi
             [ -e "${iface}"/dhcp ] && read -r dhcp < "${iface}"/dhcp
             [ -e "${iface}"/origin ] && read -r origin < "${iface}"/origin
index dd8a0ba088963b8df89ad319119fb60921eff7a6..b8270dd5df8d5342f5c8d565e690fb886426ba04 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 # This file is part of dracut.
 # SPDX-License-Identifier: GPL-2.0-or-later
 
index d449be52573e145fead6d7972c20369f848c90ea..6cb682abb01caba14f047b789a5456125ea6cedb 100755 (executable)
@@ -14,7 +14,7 @@ if [ -n "$CIO_ACCEPT" ]; then
     IFS=,
     # shellcheck disable=SC2086
     set -- $CIO_ACCEPT
-    while (($# > 0)); do
+    while [ "$#" -gt 0 ]; do
         info "Enabling device $1"
         cio_ignore --remove "$1"
         shift
index 4eb27ac5d723d46d0b0a7d7a75747378d1043c38..acb9cf8344285563835aaacc59628ddd33eb6cbc 100755 (executable)
@@ -56,6 +56,7 @@ installkernel() {
 # called by dracut
 cmdline() {
     local dev UUID
+    # shellcheck disable=SC2031
     for dev in "${!host_fs_types[@]}"; do
         [[ ${host_fs_types[$dev]} != "crypto_LUKS" ]] && continue
 
@@ -130,6 +131,7 @@ install() {
             if [ "${forceentry}" = "yes" ]; then
                 echo "$_mapper $_dev $_luksfile $_luksoptions"
             else
+                # shellcheck disable=SC2031
                 for _hdev in "${!host_fs_types[@]}"; do
                     [[ ${host_fs_types[$_hdev]} == "crypto_LUKS" ]] || continue
                     if [[ $_hdev -ef $_dev ]] || [[ /dev/block/$_hdev -ef $_dev ]]; then
index 0fa3dbcc014e91825b756f0e7700e7a941415fb5..fe25e9986430d9e1fb836cfaddc3804f03eaeee1 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 
 type getarg > /dev/null 2>&1 || . /lib/dracut-lib.sh
 
index b1c76b4c3376d727daf05db1d0a44c9b37263647..091280769fe63e240ee26525c1fd4ce304a89cec 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 
 type getarg > /dev/null 2>&1 || . /lib/dracut-lib.sh
 
index 933365f98c8568119a3fb924cd4bf9e0b4d6341f..70be18529a5e137a97f5f047e90e5ff9113a1a17 100755 (executable)
@@ -11,7 +11,7 @@ check() {
 depends() {
     # if dmsetup is not installed, then we cannot support fedora/red hat
     # style live images
-    echo dm rootfs-block img-lib
+    echo dm rootfs-block img-lib bash
     return 0
 }
 
index 12d1597a8ab4c950ec49bfc94fb88a4a26887786..3e9226bebf3a8520a98b791538f8ba8bea051218 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 
 type getarg > /dev/null 2>&1 || . /lib/dracut-lib.sh
 
index eae7f2a976a262e5aa54156c89158e0896200618..db0def50ed7b4377d7cb43c5e566d7baddcf6772 100755 (executable)
@@ -8,7 +8,7 @@ check() {
 
 # called by dracut
 depends() {
-    echo network url-lib dmsquash-live img-lib
+    echo network url-lib dmsquash-live img-lib bash
     return 0
 }
 
index f7febd764ae8e81fd6aa61dc0c8b5dc32ba91a83..d7748827d2fc92a0795993c97367aa6bc076dd69 100755 (executable)
@@ -7,7 +7,7 @@ fi
 LV_DEVS="$(getargs rd.lvm.vg -d rd_LVM_VG=) $(getargs rd.lvm.lv -d rd_LVM_LV=)"
 
 if ! getargbool 1 rd.lvm -d -n rd_NO_LVM \
-    || ([ -z "$LV_DEVS" ] && ! getargbool 0 rd.auto); then
+    || { [ -z "$LV_DEVS" ] && ! getargbool 0 rd.auto; }; then
     info "rd.lvm=0: removing LVM activation"
     rm -f -- /etc/udev/rules.d/64-lvm*.rules
 else
index 3a832e7dcfa5f08fe69c89bf4f1179172f18c750..c75e5f70f8821f97fa25bbb98df360f5699fe1bb 100755 (executable)
@@ -7,7 +7,7 @@ MD_UUID=$(getargs rd.md.uuid -d rd_MD_UUID=)
 MD_UUID=$(str_replace "$MD_UUID" "-" "")
 MD_UUID=$(str_replace "$MD_UUID" ":" "")
 
-if ([ -z "$MD_UUID" ] && ! getargbool 0 rd.auto) || ! getargbool 1 rd.md -d -n rd_NO_MD; then
+if { [ -z "$MD_UUID" ] && ! getargbool 0 rd.auto; } || ! getargbool 1 rd.md -d -n rd_NO_MD; then
     info "rd.md=0: removing MD RAID activation"
     udevproperty rd_NO_MD=1
 else
index 1f678799bc8a46d646fcded5e8f12e758e39e23f..50322747f40144839e4880987e249efb4d4a5a3a 100755 (executable)
@@ -129,9 +129,7 @@ if strstr "$(nbd-client --help 2>&1)" "systemd-mark"; then
     preopts="-systemd-mark $preopts"
 fi
 
-if [ "$nbdport" -gt 0 ] 2> /dev/null; then
-    nbdport="$nbdport"
-else
+if ! [ "$nbdport" -gt 0 ] 2> /dev/null; then
     nbdport="-name $nbdport"
 fi
 
index ba5f25844ca5de95f9f708607a1df7fe359358ac..df37c660899185be158c3bbcc7bee2eda7b345c6 100755 (executable)
@@ -12,6 +12,7 @@ check() {
 
 # called by dracut
 depends() {
+    echo bash
     return 0
 }
 
index 3004a9e4c5eb8638b6e19d600931187fa417ceba..d89536059f403c7b647060aa41aa7b63628956f4 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 
 for ccw_arg in $(getargs rd.ccw -d 'rd_CCW=') $(getargs rd.znet -d 'rd_ZNET='); do
     echo "$ccw_arg" >> /etc/ccw.conf
index 7997e63d4600443343b641697b3b2897b6627690..13c4f204321f6baf582a8a6a72ae9aca48409087 100755 (executable)
@@ -14,7 +14,7 @@ echo
 echo
 echo
 echo "Enter additional kernel command line parameter (end with ctrl-d or .)"
-while read -r -e -p "> " line || [ -n "$line" ]; do
+while read -r -p "> " ${BASH:+-e} line || [ -n "$line" ]; do
     [ "$line" = "." ] && break
     [ -n "$line" ] && printf -- "%s\n" "$line" >> /etc/cmdline.d/99-cmdline-ask.conf
 done
index e53ea59ba447eda89d9cbbb0685a6664fbd12118..978adb6ff45a0265552e7292c633b61516b70976 100755 (executable)
@@ -109,7 +109,7 @@ source_conf /etc/conf.d
 
 if getarg "rd.cmdline=ask"; then
     echo "Enter additional kernel command line parameter (end with ctrl-d or .)"
-    while read -r -p "> " line || [ -n "$line" ]; do
+    while read -r -p "> " ${BASH:+-e} line || [ -n "$line" ]; do
         [ "$line" = "." ] && break
         echo "$line" >> /etc/cmdline.d/99-cmdline-ask.conf
     done
index d8b95d60a4d74356ea86b12c746e97ba0bbc7908..47008325274a9b62ba3b23d97d2f17cc39254437 100755 (executable)
@@ -10,8 +10,11 @@ det_archive() {
     local bz xz gz zs
     local headerblock
     bz="BZh"
+    # shellcheck disable=SC3037
     xz="$(/bin/echo -e '\xfd7zXZ')"
+    # shellcheck disable=SC3037
     gz="$(/bin/echo -e '\x1f\x8b')"
+    # shellcheck disable=SC3037
     zs="$(/bin/echo -e '\x28\xB5\x2F\xFD')"
     headerblock="$(dd ${1:+if=$1} bs=262 count=1 2> /dev/null | tr -d '\0')"
     case "$headerblock" in
index 82a9f22be4f28ec5076b7d46ea63bdeb0b818ffd..f8bd445ffdab42f758c7971228b38d031c9ad662 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 # Mount kernel debug fs so debug tools can work.
 # memdebug=4 and memdebug=5 requires debug fs to be mounted.
 # And there is no need to umount it.
@@ -65,4 +65,5 @@ fi
 sleep 1
 
 echo $PID > /run/memstrack.pid
+# bash specific - non posix
 disown
index 0eb641c35a0adacc3bac0b967fa769efeb48bf2a..a40cce4e75d05ddb23cd198f85cc77edcb734e3b 100755 (executable)
@@ -11,7 +11,7 @@ check() {
 }
 
 depends() {
-    echo systemd
+    echo systemd bash
     return 0
 }
 
index ea5977943435443ea1ac671559be833271d90b3e..73550ba9e39f57102e607481d903614087580357 100755 (executable)
@@ -12,7 +12,7 @@ ACTION="$1"
 # the process will be killed when when running as PID 1.
 # shellcheck disable=SC2217
 [ -w /dev/console ] \
-    && (echo < /dev/console &> /dev/null) \
+    && (echo < /dev/console > /dev/null 2> /dev/null) \
     && exec < /dev/console >> /dev/console 2>> /dev/console
 
 export TERM=linux
index b79661da230321b14330ef15592b52ab254d112c..645ac7e8790fb5ec38884a38d7327ef5d4662cf3 100755 (executable)
@@ -18,7 +18,7 @@ test_run() {
     "$testdir"/run-qemu \
         "${disk_args[@]}" \
         -watchdog i6300esb -watchdog-action poweroff \
-        -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" \
+        -append "panic=1 hung_task_panic=1 oops=panic softlockup_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" \
         -initrd "$TESTDIR"/initramfs.testing || return 1
 
     grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img
index df679610d7c78c41f7de93237611f9ff4bff9b1c..41e22cf45f66626e2971470ebe5e072bf2820518 100755 (executable)
@@ -16,7 +16,7 @@ test_run() {
 
     "$testdir"/run-qemu \
         "${disk_args[@]}" \
-        -append "panic=1 systemd.crash_reboot root=LABEL=dracut rw loglevel=77 systemd.log_level=debug systemd.log_target=console rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 init=/sbin/init rd.shell=0 $DEBUGFAIL" \
+        -append "panic=1 hung_task_panic=1 oops=panic softlockup_panic=1 systemd.crash_reboot root=LABEL=dracut rw loglevel=77 systemd.log_level=debug systemd.log_target=console rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 init=/sbin/init rd.shell=0 $DEBUGFAIL" \
         -initrd "$TESTDIR"/initramfs.testing || return 1
 
     grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img
index f7d65e948833a7c3f907ee0629bc11874574a088..b3d9d23bd21cc5918d5ebc8773dbe202a1010cfd 100755 (executable)
@@ -26,7 +26,7 @@ client_run() {
     "$testdir"/run-qemu \
         "${disk_args[@]}" \
         -watchdog i6300esb -watchdog-action poweroff \
-        -append "panic=1 systemd.crash_reboot root=LABEL=dracut $client_opts loglevel=7 rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.debug rd.shell=0 $DEBUGFAIL" \
+        -append "panic=1 hung_task_panic=1 oops=panic softlockup_panic=1 systemd.crash_reboot root=LABEL=dracut $client_opts loglevel=7 rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.debug rd.shell=0 $DEBUGFAIL" \
         -initrd "$TESTDIR"/initramfs.testing || return 1
 
     if ! grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img; then
index 505240c12e3a57544619e86efd50761e2a592f9a..e2f352b5abd49546390da04faf04fc105533dc82 100755 (executable)
@@ -27,7 +27,7 @@ client_run() {
 
     "$testdir"/run-qemu \
         "${disk_args[@]}" \
-        -append "panic=1 systemd.crash_reboot root=LABEL=dracut $client_opts rd.retry=3 console=ttyS0,115200n81 selinux=0 $DEBUGOUT rd.shell=0 $DEBUGFAIL" \
+        -append "panic=1 hung_task_panic=1 oops=panic softlockup_panic=1 systemd.crash_reboot root=LABEL=dracut $client_opts rd.retry=3 console=ttyS0,115200n81 selinux=0 $DEBUGOUT rd.shell=0 $DEBUGFAIL" \
         -initrd "$TESTDIR"/initramfs.testing || return 1
 
     if ! grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img; then
index 79e62393590b8dc690cf2ca996690e4f76c7055c..25f59089639a7ae656979ff37163f18caa14bbd5 100755 (executable)
@@ -19,7 +19,7 @@ test_run() {
 
     "$testdir"/run-qemu \
         "${disk_args[@]}" \
-        -append "panic=1 systemd.crash_reboot root=/dev/dracut/root rd.auto rw rd.retry=10 console=ttyS0,115200n81 selinux=0 rd.shell=0 $DEBUGFAIL" \
+        -append "panic=1 hung_task_panic=1 oops=panic softlockup_panic=1 systemd.crash_reboot root=/dev/dracut/root rd.auto rw rd.retry=10 console=ttyS0,115200n81 selinux=0 rd.shell=0 $DEBUGFAIL" \
         -initrd "$TESTDIR"/initramfs.testing || return 1
 
     grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img
index ac2481a73a3ac97ed47db0677e82251df50d78f4..0b336f245b0b66eda6bb736851e339491b6b532f 100755 (executable)
@@ -20,7 +20,7 @@ test_run() {
 
     "$testdir"/run-qemu \
         "${disk_args[@]}" \
-        -append "panic=1 systemd.crash_reboot root=/dev/dracut/root rw rd.auto=1 quiet rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.debug rd.shell=0 $DEBUGFAIL" \
+        -append "panic=1 hung_task_panic=1 oops=panic softlockup_panic=1 systemd.crash_reboot root=/dev/dracut/root rw rd.auto=1 quiet rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.debug rd.shell=0 $DEBUGFAIL" \
         -initrd "$TESTDIR"/initramfs.testing || return 1
 
     grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img
index 3f3f1ffb2ccbb54364536249181b2b8f2830285b..2b4e853749d4e7a0cdf370abf431e88409e607b7 100755 (executable)
@@ -24,7 +24,7 @@ client_run() {
 
     "$testdir"/run-qemu \
         "${disk_args[@]}" \
-        -append "panic=1 systemd.crash_reboot $* systemd.log_target=kmsg root=LABEL=root rw rd.retry=10 rd.info console=ttyS0,115200n81 log_buf_len=2M selinux=0 rd.shell=0 $DEBUGFAIL " \
+        -append "panic=1 hung_task_panic=1 oops=panic softlockup_panic=1 systemd.crash_reboot $* systemd.log_target=kmsg root=LABEL=root rw rd.retry=10 rd.info console=ttyS0,115200n81 log_buf_len=2M selinux=0 rd.shell=0 $DEBUGFAIL " \
         -initrd "$TESTDIR"/initramfs.testing
 
     if ! grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img; then
index 612a65207d89e1af8dd6b93663366ae7ef932b21..bce386cbcc971bc773d2e3a69c5d9c0d04b79a80 100755 (executable)
@@ -26,7 +26,7 @@ test_run() {
 
     "$testdir"/run-qemu \
         "${disk_args[@]}" \
-        -append "panic=1 systemd.crash_reboot root=/dev/dracut/root rw rd.auto rd.retry=20 console=ttyS0,115200n81 selinux=0 rd.debug rootwait $LUKSARGS rd.shell=0 $DEBUGFAIL" \
+        -append "panic=1 hung_task_panic=1 oops=panic softlockup_panic=1 systemd.crash_reboot root=/dev/dracut/root rw rd.auto rd.retry=20 console=ttyS0,115200n81 selinux=0 rd.debug rootwait $LUKSARGS rd.shell=0 $DEBUGFAIL" \
         -initrd "$TESTDIR"/initramfs.testing
     grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img || return 1
     echo "CLIENT TEST END: [OK]"
@@ -36,7 +36,7 @@ test_run() {
     echo "CLIENT TEST START: Any LUKS"
     "$testdir"/run-qemu \
         "${disk_args[@]}" \
-        -append "panic=1 systemd.crash_reboot root=/dev/dracut/root rw quiet rd.auto rd.retry=20 rd.info console=ttyS0,115200n81 selinux=0 rd.debug  $DEBUGFAIL" \
+        -append "panic=1 hung_task_panic=1 oops=panic softlockup_panic=1 systemd.crash_reboot root=/dev/dracut/root rw quiet rd.auto rd.retry=20 rd.info console=ttyS0,115200n81 selinux=0 rd.debug  $DEBUGFAIL" \
         -initrd "$TESTDIR"/initramfs.testing
     grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img || return 1
     echo "CLIENT TEST END: [OK]"
@@ -46,7 +46,7 @@ test_run() {
     echo "CLIENT TEST START: Wrong LUKS UUID"
     "$testdir"/run-qemu \
         "${disk_args[@]}" \
-        -append "panic=1 systemd.crash_reboot root=/dev/dracut/root rw quiet rd.auto rd.retry=10 rd.info console=ttyS0,115200n81 selinux=0 rd.debug  $DEBUGFAIL rd.luks.uuid=failme" \
+        -append "panic=1 hung_task_panic=1 oops=panic softlockup_panic=1 systemd.crash_reboot root=/dev/dracut/root rw quiet rd.auto rd.retry=10 rd.info console=ttyS0,115200n81 selinux=0 rd.debug  $DEBUGFAIL rd.luks.uuid=failme" \
         -initrd "$TESTDIR"/initramfs.testing
     grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img && return 1
     echo "CLIENT TEST END: [OK]"
index a551ac2423dcd8d7c55a9b94d4a3ed5ccb5c68b6..be2d8221b98102e4a852c9bba1541f0218daa87b 100755 (executable)
@@ -21,7 +21,7 @@ client_run() {
 
     "$testdir"/run-qemu \
         "${disk_args[@]}" \
-        -append "panic=1 systemd.crash_reboot $* root=LABEL=root rw debug rd.retry=5 rd.debug console=ttyS0,115200n81 selinux=0 rd.info rd.shell=0 $DEBUGFAIL" \
+        -append "panic=1 hung_task_panic=1 oops=panic softlockup_panic=1 systemd.crash_reboot $* root=LABEL=root rw debug rd.retry=5 rd.debug console=ttyS0,115200n81 selinux=0 rd.info rd.shell=0 $DEBUGFAIL" \
         -initrd "$TESTDIR"/initramfs.testing || return 1
 
     if ! grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img; then
index 5a086ec76317610aa205d072e2d65e61ab481b20..ed145331572fd4dc72951b416a7ab4cee6089d57 100755 (executable)
@@ -19,7 +19,7 @@ test_run() {
 
     "$testdir"/run-qemu \
         "${disk_args[@]}" \
-        -append "panic=1 systemd.crash_reboot root=LABEL=root rw rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.shell=0 $DEBUGFAIL" \
+        -append "panic=1 hung_task_panic=1 oops=panic softlockup_panic=1 systemd.crash_reboot root=LABEL=root rw rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.shell=0 $DEBUGFAIL" \
         -initrd "$TESTDIR"/initramfs.testing
     grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img || return 1
 }
index 288a05c6d4eec3b6a8aff41bb6453db2cee05684..2b7ca22c8b539e697947c491458723c147532a78 100755 (executable)
@@ -30,7 +30,7 @@ test_run() {
     "$testdir"/run-qemu \
         "${disk_args[@]}" \
         -boot order=d \
-        -append "panic=1 systemd.crash_reboot root=live:CDLABEL=LiveCD live rw quiet rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.shell=0 $DEBUGFAIL" \
+        -append "panic=1 hung_task_panic=1 oops=panic softlockup_panic=1 systemd.crash_reboot root=live:CDLABEL=LiveCD live rw quiet rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.shell=0 $DEBUGFAIL" \
         -initrd "$TESTDIR"/initramfs.testing
 
     # mediacheck test with qemu GUI
index f9f73109271bb24197d1cfed2bc995fb9164ad6d..607edef5768fe674c636e9faba184c4b74204f0a 100755 (executable)
@@ -19,7 +19,7 @@ test_run() {
 
     "$testdir"/run-qemu \
         "${disk_args[@]}" \
-        -append "panic=1 systemd.crash_reboot root=/dev/dracut/root rw rd.auto=1 quiet rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.debug rd.shell=0 $DEBUGFAIL" \
+        -append "panic=1 hung_task_panic=1 oops=panic softlockup_panic=1 systemd.crash_reboot root=/dev/dracut/root rw rd.auto=1 quiet rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.debug rd.shell=0 $DEBUGFAIL" \
         -initrd "$TESTDIR"/initramfs.testing || return 1
     grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img || return 1
 }
index 48e55ebd57ba6e015e08d536636a215fa8b990aa..00841c0fd91cbcadaf81a902e462f518f7119475 100755 (executable)
@@ -15,10 +15,6 @@ wait_for_if_link() {
     while [ $cnt -lt 600 ]; do
         li=$(ip -o link show dev "$1" 2> /dev/null)
         [ -n "$li" ] && return 0
-        if [[ $2 ]]; then
-            li=$(ip -o link show dev "$2" 2> /dev/null)
-            [ -n "$li" ] && return 0
-        fi
         sleep 0.1
         cnt=$((cnt + 1))
     done
@@ -52,11 +48,10 @@ linkup() {
     wait_for_if_link "$1" 2> /dev/null && ip link set "$1" up 2> /dev/null && wait_for_if_up "$1" 2> /dev/null
 }
 
-wait_for_if_link eth0 enp0s1
+wait_for_if_link enp0s1
 
 ip addr add 127.0.0.1/8 dev lo
 ip link set lo up
-ip link set dev eth0 name enp0s1
 ip addr add 192.168.50.1/24 dev enp0s1
 ip addr add 192.168.50.2/24 dev enp0s1
 ip addr add 192.168.50.3/24 dev enp0s1
index 0be16cebef9873ebe2e12c74833f0c284f9bff5e..f8f81a30eb7c8acdac892bffad93c473bbec17dd 100755 (executable)
@@ -34,7 +34,7 @@ run_server() {
         -net nic,macaddr=52:54:00:12:34:56,model=e1000 \
         -serial "${SERIAL:-"file:$TESTDIR/server.log"}" \
         -watchdog i6300esb -watchdog-action poweroff \
-        -append "panic=1 quiet root=LABEL=dracut rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 $SERVER_DEBUG" \
+        -append "panic=1 hung_task_panic=1 oops=panic softlockup_panic=1 quiet root=LABEL=dracut rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 $SERVER_DEBUG" \
         -initrd "$TESTDIR"/initramfs.server \
         -pidfile "$TESTDIR"/server.pid -daemonize || return 1
     chmod 644 "$TESTDIR"/server.pid || return 1
@@ -79,7 +79,7 @@ client_test() {
         -net nic,macaddr="$mac",model=e1000 \
         -net socket,connect=127.0.0.1:12320 \
         -watchdog i6300esb -watchdog-action poweroff \
-        -append "panic=1 systemd.crash_reboot rd.shell=0 $cmdline $DEBUGFAIL rd.retry=10 quiet ro console=ttyS0,115200n81 selinux=0" \
+        -append "panic=1 hung_task_panic=1 oops=panic softlockup_panic=1 systemd.crash_reboot rd.shell=0 $cmdline $DEBUGFAIL rd.retry=10 quiet ro console=ttyS0,115200n81 selinux=0" \
         -initrd "$TESTDIR"/initramfs.testing
 
     # shellcheck disable=SC2181
index 5f218f166d4d3d39d5880d62cd76dad6a6ae4c21..91f0aaadf69b42ee5693777e734d0ab977a557d6 100755 (executable)
@@ -36,7 +36,7 @@ run_server() {
         -net nic,macaddr=52:54:00:12:34:56,model=e1000 \
         -net nic,macaddr=52:54:00:12:34:57,model=e1000 \
         -net socket,listen=127.0.0.1:12330 \
-        -append "panic=1 quiet root=/dev/disk/by-id/ata-disk_serverroot rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 $SERVER_DEBUG" \
+        -append "panic=1 hung_task_panic=1 oops=panic softlockup_panic=1 quiet root=/dev/disk/by-id/ata-disk_serverroot rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 $SERVER_DEBUG" \
         -initrd "$TESTDIR"/initramfs.server \
         -pidfile "$TESTDIR"/server.pid -daemonize || return 1
     chmod 644 "$TESTDIR"/server.pid || return 1
@@ -74,7 +74,7 @@ run_client() {
         -net nic,macaddr=52:54:00:12:34:01,model=e1000 \
         -net socket,connect=127.0.0.1:12330 \
         -acpitable file=ibft.table \
-        -append "panic=1 systemd.crash_reboot rw rd.auto rd.retry=50 console=ttyS0,115200n81 selinux=0 rd.debug=0 rd.shell=0 $DEBUGFAIL $*" \
+        -append "panic=1 hung_task_panic=1 oops=panic softlockup_panic=1 systemd.crash_reboot rw rd.auto rd.retry=50 console=ttyS0,115200n81 selinux=0 rd.debug=0 rd.shell=0 $DEBUGFAIL $*" \
         -initrd "$TESTDIR"/initramfs.testing
 
     # shellcheck disable=SC2181
@@ -227,6 +227,7 @@ test_setup() {
     # Make server root
     dd if=/dev/zero of="$TESTDIR"/server.ext3 bs=1M count=120
 
+    # shellcheck disable=SC2031
     export kernel=$KVERSION
     rm -rf -- "$TESTDIR"/overlay
     (
index 436ee9b8dda309cf7e17794ce974d809accda78a..613d26a1f11b3608766561cab12cb12536b2a664 100755 (executable)
@@ -53,11 +53,9 @@ wait_for_if_link enp0s2
 ip addr add 127.0.0.1/8 dev lo
 ip link set lo up
 
-ip link set dev eth0 name enp0s1
 ip addr add 192.168.50.1/24 dev enp0s1
 linkup enp0s1
 
-ip link set dev eth1 name enp0s2
 ip addr add 192.168.51.1/24 dev enp0s2
 linkup enp0s2
 
index f3f213a1b60f732a171c8fdc37eb468ea492127e..b283d63ef1741a42651bb6fb3e6eeb4b0ae4a02b 100755 (executable)
@@ -36,7 +36,7 @@ run_server() {
         -net nic,macaddr=52:54:00:12:34:56,model=e1000 \
         -net nic,macaddr=52:54:00:12:34:57,model=e1000 \
         -net socket,listen=127.0.0.1:12331 \
-        -append "panic=1 systemd.crash_reboot root=/dev/disk/by-id/ata-disk_serverroot rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 $SERVER_DEBUG" \
+        -append "panic=1 hung_task_panic=1 oops=panic softlockup_panic=1 systemd.crash_reboot root=/dev/disk/by-id/ata-disk_serverroot rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 $SERVER_DEBUG" \
         -initrd "$TESTDIR"/initramfs.server \
         -pidfile "$TESTDIR"/server.pid -daemonize || return 1
     chmod 644 "$TESTDIR"/server.pid || return 1
@@ -72,7 +72,7 @@ run_client() {
         -net nic,macaddr=52:54:00:12:34:00,model=e1000 \
         -net nic,macaddr=52:54:00:12:34:01,model=e1000 \
         -net socket,connect=127.0.0.1:12331 \
-        -append "panic=1 systemd.crash_reboot rw rd.auto rd.retry=50 console=ttyS0,115200n81 selinux=0 rd.debug=0 rd.shell=0 $DEBUGFAIL $*" \
+        -append "panic=1 hung_task_panic=1 oops=panic softlockup_panic=1 systemd.crash_reboot rw rd.auto rd.retry=50 console=ttyS0,115200n81 selinux=0 rd.debug=0 rd.shell=0 $DEBUGFAIL $*" \
         -initrd "$TESTDIR"/initramfs.testing
     if ! grep -U --binary-files=binary -F -m 1 -q iscsi-OK "$TESTDIR"/marker.img; then
         echo "CLIENT TEST END: $test_name [FAILED - BAD EXIT]"
@@ -231,6 +231,7 @@ test_setup() {
     # Make server root
     echo "MAKE SERVER ROOT"
 
+    # shellcheck disable=SC2031
     export kernel=$KVERSION
     rm -rf -- "$TESTDIR"/overlay
     (
index 11cff7521a3825fa8ed5922cf082f684de66ecfa..a650691f76fd752709ca99653195a65eb04c2c13 100755 (executable)
@@ -47,7 +47,7 @@ run_server() {
         -serial "${SERIAL:-"file:$TESTDIR/server.log"}" \
         -net nic,macaddr=52:54:00:12:34:56,model=e1000 \
         -net socket,listen=127.0.0.1:12340 \
-        -append "panic=1 rd.luks=0 systemd.crash_reboot quiet root=/dev/disk/by-id/ata-disk_serverroot rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 $SERVER_DEBUG" \
+        -append "panic=1 hung_task_panic=1 oops=panic softlockup_panic=1 rd.luks=0 systemd.crash_reboot quiet root=/dev/disk/by-id/ata-disk_serverroot rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 $SERVER_DEBUG" \
         -initrd "$TESTDIR"/initramfs.server \
         -pidfile "$TESTDIR"/server.pid -daemonize || return 1
     chmod 644 "$TESTDIR"/server.pid || return 1
@@ -90,7 +90,7 @@ client_test() {
         "${disk_args[@]}" \
         -net nic,macaddr="$mac",model=e1000 \
         -net socket,connect=127.0.0.1:12340 \
-        -append "panic=1 systemd.crash_reboot rd.shell=0 $cmdline $DEBUGFAIL rd.auto rd.info rd.retry=10 ro console=ttyS0,115200n81  selinux=0  " \
+        -append "panic=1 hung_task_panic=1 oops=panic softlockup_panic=1 systemd.crash_reboot rd.shell=0 $cmdline $DEBUGFAIL rd.auto rd.info rd.retry=10 ro console=ttyS0,115200n81  selinux=0  " \
         -initrd "$TESTDIR"/initramfs.testing
 
     # shellcheck disable=SC2181
@@ -367,6 +367,7 @@ make_client_root() {
 
 make_server_root() {
     rm -fr "$TESTDIR"/overlay
+    # shellcheck disable=SC2031
     export kernel=$KVERSION
     (
         mkdir -p "$TESTDIR"/overlay/source
index c1055a3ced793d18a0a69658a9b424864657a543..854c30d4711a0bf435384e5cd661c2f3cc1d93bd 100755 (executable)
@@ -15,14 +15,14 @@ for i in /sys/class/net/*; do
     grep -q connection-uuid= "$state" 2> /dev/null || continue
     i=${i##*/}
     ip link show "$i" | grep -q master && continue
-    IFACES+="$i "
+    IFACES="${IFACES}${i} "
 done
 for i in /run/initramfs/net.*.did-setup; do
     # booting with network-legacy module
     [ -f "$i" ] || continue
     strglobin "$i" ":*:*:*:*:" && continue
     i=${i%.did-setup}
-    IFACES+="${i##*/net.} "
+    IFACES="${IFACES}${i##*/net.} "
 done
 {
     echo "OK"
index 56a12a5d6a93313f36e74c697c9c91136e8c40e4..81603379cf53fad944813cea0e43e86b378d25f7 100755 (executable)
@@ -32,7 +32,7 @@ run_server() {
         -net nic,macaddr=52:54:01:12:34:56,model=e1000 \
         -serial "${SERIAL:-"file:$TESTDIR/server.log"}" \
         -watchdog i6300esb -watchdog-action poweroff \
-        -append "panic=1 systemd.crash_reboot loglevel=7 root=LABEL=dracut rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0" \
+        -append "panic=1 hung_task_panic=1 oops=panic softlockup_panic=1 systemd.crash_reboot loglevel=7 root=LABEL=dracut rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0" \
         -initrd "$TESTDIR"/initramfs.server \
         -pidfile "$TESTDIR"/server.pid -daemonize || return 1
 
@@ -82,7 +82,7 @@ client_test() {
         -device e1000,netdev=n1,mac=52:54:00:12:34:98 \
         -device e1000,netdev=n2,mac=52:54:00:12:34:99 \
         -watchdog i6300esb -watchdog-action poweroff \
-        -append "quiet rd.net.timeout.dhcp=3 panic=1 systemd.crash_reboot rd.shell=0 $cmdline $DEBUGFAIL rd.retry=5 ro console=ttyS0,115200n81 selinux=0 init=/sbin/init rd.debug systemd.log_target=console" \
+        -append "quiet rd.net.timeout.dhcp=3 panic=1 hung_task_panic=1 oops=panic softlockup_panic=1 systemd.crash_reboot rd.shell=0 $cmdline $DEBUGFAIL rd.retry=5 ro console=ttyS0,115200n81 selinux=0 init=/sbin/init rd.debug systemd.log_target=console" \
         -initrd "$TESTDIR"/initramfs.testing || return 1
 
     {
index b992bfd20c1614f05e910b412da733f59e1f83bd..1d21856799f2628338d55d7e995aa7238c84ace1 100644 (file)
@@ -2,5 +2,5 @@
 OriginalName=*
 
 [Link]
-NamePolicy=keep kernel database onboard slot path
+NamePolicy=mac
 MACAddressPolicy=keep
index b002b8ad99cf67708fd6ba87ac39d2d04209fd49..bc98b72f6e027555deb5f91111a6aed473b10cb8 100755 (executable)
@@ -17,10 +17,6 @@ wait_for_if_link() {
 
         li=$(ip -o link show dev "$1" 2> /dev/null)
         [ -n "$li" ] && return 0
-        if [[ $2 ]]; then
-            li=$(ip -o link show dev "$2" 2> /dev/null)
-            [ -n "$li" ] && return 0
-        fi
         sleep 0.1
         cnt=$((cnt + 1))
     done
@@ -58,38 +54,39 @@ udevadm settle
 
 ip link show
 
-wait_for_if_link eth0 ens3
-wait_for_if_link eth1 ens4
-wait_for_if_link eth2 ens5
-wait_for_if_link eth3 ens6
+wait_for_if_link enx525401123456
+wait_for_if_link enx525401123457
+wait_for_if_link enx525401123458
+wait_for_if_link enx525401123459
+
+ip link set dev enx525401123456 name net1
+ip link set dev enx525401123457 name net2
+ip link set dev enx525401123458 name net3
+ip link set dev enx525401123459 name net4
 
 modprobe --all -b -q 8021q ipvlan macvlan
 : > /dev/watchdog
 ip addr add 127.0.0.1/8 dev lo
 linkup lo
-ip link set dev eth0 name ens3
-ip addr add 192.168.50.1/24 dev ens3
-linkup ens3
-: > /dev/watchdog
-ip link set dev eth1 name ens4
-ip link add dev ens4.1 link ens4 type vlan id 1
-ip link add dev ens4.2 link ens4 type vlan id 2
-ip link add dev ens4.3 link ens4 type vlan id 3
-ip link add dev ens4.4 link ens4 type vlan id 4
-ip addr add 192.168.54.1/24 dev ens4.1
-ip addr add 192.168.55.1/24 dev ens4.2
-ip addr add 192.168.56.1/24 dev ens4.3
-ip addr add 192.168.57.1/24 dev ens4.4
-linkup ens4
-ip link set dev ens4.1 up
-ip link set dev ens4.2 up
-ip link set dev ens4.3 up
-ip link set dev ens4.4 up
-ip link set dev eth2 name ens5
-ip addr add 192.168.51.1/24 dev ens5
-linkup ens5
-ip link set dev eth3 name ens6
-linkup ens6
+ip addr add 192.168.50.1/24 dev net1
+linkup net1
+: > /dev/watchdog
+ip link add dev net2.1 link net2 type vlan id 1
+ip link add dev net2.2 link net2 type vlan id 2
+ip link add dev net2.3 link net2 type vlan id 3
+ip link add dev net2.4 link net2 type vlan id 4
+ip addr add 192.168.54.1/24 dev net2.1
+ip addr add 192.168.55.1/24 dev net2.2
+ip addr add 192.168.56.1/24 dev net2.3
+ip addr add 192.168.57.1/24 dev net2.4
+linkup net2
+ip link set dev net2.1 up
+ip link set dev net2.2 up
+ip link set dev net2.3 up
+ip link set dev net2.4 up
+ip addr add 192.168.51.1/24 dev net3
+linkup net3
+linkup net4
 : > /dev/watchdog
 modprobe af_packet
 : > /dev/watchdog
@@ -120,10 +117,10 @@ exportfs -r
 : > /dev/watchdog
 chmod 777 /var/lib/dhcpd/dhcpd.leases
 : > /dev/watchdog
-dhcpd -cf /etc/dhcpd.conf -lf /var/lib/dhcpd/dhcpd.leases ens3 ens5
+dhcpd -cf /etc/dhcpd.conf -lf /var/lib/dhcpd/dhcpd.leases net1 net3
 #echo -n 'V' : > /dev/watchdog
 #sh -i
-#tcpdump -i ens3
+#tcpdump -i net1
 # Wait forever for the VM to die
 echo "Serving"
 while :; do
index 4b4da7c657fd9f44dbd35cbb25aeb031eae77350..2a2afd7368d7b5d06024717ccb89ecfcf756fe85 100755 (executable)
@@ -25,18 +25,18 @@ run_server() {
     echo "MULTINIC TEST SETUP: Starting DHCP/NFS server"
 
     "$testdir"/run-qemu \
-        -hda "$TESTDIR"/server.ext3 \
         -netdev socket,id=n0,listen=127.0.0.1:12370 \
         -netdev socket,id=n1,listen=127.0.0.1:12371 \
         -netdev socket,id=n2,listen=127.0.0.1:12372 \
         -netdev socket,id=n3,listen=127.0.0.1:12373 \
-        -device e1000,netdev=n0,mac=52:54:01:12:34:56 \
-        -device e1000,netdev=n1,mac=52:54:01:12:34:57 \
-        -device e1000,netdev=n2,mac=52:54:01:12:34:58 \
-        -device e1000,netdev=n3,mac=52:54:01:12:34:59 \
+        -device virtio-net-pci,netdev=n0,mac=52:54:01:12:34:56 \
+        -device virtio-net-pci,netdev=n1,mac=52:54:01:12:34:57 \
+        -device virtio-net-pci,netdev=n2,mac=52:54:01:12:34:58 \
+        -device virtio-net-pci,netdev=n3,mac=52:54:01:12:34:59 \
+        -hda "$TESTDIR"/server.ext3 \
         -serial "${SERIAL:-"file:$TESTDIR/server.log"}" \
         -watchdog i6300esb -watchdog-action poweroff \
-        -append "panic=1 loglevel=7 root=LABEL=dracut rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 rd.debug" \
+        -append "panic=1 hung_task_panic=1 oops=panic softlockup_panic=1 loglevel=7 root=LABEL=dracut rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 rd.debug" \
         -initrd "$TESTDIR"/initramfs.server \
         -pidfile "$TESTDIR"/server.pid -daemonize || return 1
     chmod 644 -- "$TESTDIR"/server.pid || return 1
@@ -74,25 +74,33 @@ client_test() {
         return 1
     fi
     if [[ $do_vlan13 ]]; then
-        nic1=" -netdev socket,connect=127.0.0.1:12371,id=n1"
-        nic3=" -netdev socket,connect=127.0.0.1:12373,id=n3"
+        nic1=("-netdev" "socket,connect=127.0.0.1:12371,id=n1")
+        nic3=("-netdev" "socket,connect=127.0.0.1:12373,id=n3")
     else
-        nic1=" -netdev hubport,id=n1,hubid=2"
-        nic3=" -netdev hubport,id=n3,hubid=3"
+        nic1=("-netdev" "hubport,id=n1,hubid=2")
+        nic3=("-netdev" "hubport,id=n3,hubid=3")
     fi
 
     "$testdir"/run-qemu \
-        -hda "$TESTDIR"/client.img \
         -netdev socket,connect=127.0.0.1:12370,id=s1 \
         -netdev hubport,hubid=1,id=h1,netdev=s1 \
-        -netdev hubport,hubid=1,id=h2 -device e1000,mac=52:54:00:12:34:01,netdev=h2 \
-        -netdev hubport,hubid=1,id=h3 -device e1000,mac=52:54:00:12:34:02,netdev=h3 \
-        "$nic1" -device e1000,mac=52:54:00:12:34:03,netdev=n1 \
-        -netdev socket,connect=127.0.0.1:12372,id=n2 -device e1000,mac=52:54:00:12:34:04,netdev=n2 \
-        "$nic3" -device e1000,mac=52:54:00:12:34:05,netdev=n3 \
+        -netdev hubport,hubid=1,id=h2 -device virtio-net-pci,mac=52:54:00:12:34:01,netdev=h2 \
+        -netdev hubport,hubid=1,id=h3 -device virtio-net-pci,mac=52:54:00:12:34:02,netdev=h3 \
+        "${nic1[@]}" -device virtio-net-pci,mac=52:54:00:12:34:03,netdev=n1 \
+        -netdev socket,connect=127.0.0.1:12372,id=n2 -device virtio-net-pci,mac=52:54:00:12:34:04,netdev=n2 \
+        "${nic3[@]}" -device virtio-net-pci,mac=52:54:00:12:34:05,netdev=n3 \
+        -hda "$TESTDIR"/client.img \
         -watchdog i6300esb -watchdog-action poweroff \
-        -append "panic=1 $cmdline systemd.crash_reboot rd.debug $DEBUGFAIL rd.retry=5 rw console=ttyS0,115200n81 selinux=0 init=/sbin/init" \
-        -initrd "$TESTDIR"/initramfs.testing
+        -append "
+        panic=1 hung_task_panic=1 oops=panic softlockup_panic=1
+        ifname=net1:52:54:00:12:34:01
+        ifname=net2:52:54:00:12:34:02
+        ifname=net3:52:54:00:12:34:03
+        ifname=net4:52:54:00:12:34:04
+        ifname=net5:52:54:00:12:34:05
+        $cmdline rd.net.timeout.dhcp=3 systemd.crash_reboot rd.debug
+        $DEBUGFAIL rd.retry=5 rw console=ttyS0,115200n81 selinux=0 init=/sbin/init" \
+        -initrd "$TESTDIR"/initramfs.testing || return 1
 
     {
         read -r OK _
@@ -133,40 +141,40 @@ test_run() {
 
 test_client() {
     if [[ $NM ]]; then
-        EXPECT='ens3 ens5.0004 ens5.3 vlan0001 vlan2 /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-* EOF '
+        EXPECT='net1 net3.0004 net3.3 vlan0001 vlan2 /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-* EOF '
     else
-        EXPECT='ens3 ens5.0004 ens5.3 vlan0001 vlan2 /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens3 # Generated by dracut initrd NAME="ens3" DEVICE="ens3" ONBOOT=yes NETBOOT=yes IPV6INIT=yes BOOTPROTO=dhcp TYPE=Ethernet /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens5.0004 # Generated by dracut initrd NAME="ens5.0004" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.57.104" PREFIX="24" GATEWAY="192.168.57.1" TYPE=Vlan DEVICE="ens5.0004" VLAN=yes PHYSDEV="ens5" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens5.3 # Generated by dracut initrd NAME="ens5.3" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.56.103" PREFIX="24" GATEWAY="192.168.56.1" TYPE=Vlan DEVICE="ens5.3" VLAN=yes PHYSDEV="ens5" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-vlan0001 # Generated by dracut initrd NAME="vlan0001" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.54.101" PREFIX="24" GATEWAY="192.168.54.1" TYPE=Vlan DEVICE="vlan0001" VLAN=yes PHYSDEV="ens5" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-vlan2 # Generated by dracut initrd NAME="vlan2" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.55.102" PREFIX="24" GATEWAY="192.168.55.1" TYPE=Vlan DEVICE="vlan2" VLAN=yes PHYSDEV="ens5" EOF '
+        EXPECT='net1 net3.0004 net3.3 vlan0001 vlan2 /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-net1 # Generated by dracut initrd NAME="net1" HWADDR="52:54:00:12:34:01" DEVICE="net1" ONBOOT=yes NETBOOT=yes IPV6INIT=yes BOOTPROTO=dhcp TYPE=Ethernet /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-net3.0004 # Generated by dracut initrd NAME="net3.0004" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.57.104" PREFIX="24" GATEWAY="192.168.57.1" TYPE=Vlan DEVICE="net3.0004" VLAN=yes PHYSDEV="net3" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-net3.3 # Generated by dracut initrd NAME="net3.3" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.56.103" PREFIX="24" GATEWAY="192.168.56.1" TYPE=Vlan DEVICE="net3.3" VLAN=yes PHYSDEV="net3" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-vlan0001 # Generated by dracut initrd NAME="vlan0001" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.54.101" PREFIX="24" GATEWAY="192.168.54.1" TYPE=Vlan DEVICE="vlan0001" VLAN=yes PHYSDEV="net3" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-vlan2 # Generated by dracut initrd NAME="vlan2" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.55.102" PREFIX="24" GATEWAY="192.168.55.1" TYPE=Vlan DEVICE="vlan2" VLAN=yes PHYSDEV="net3" EOF '
     fi
 
     client_test "Multiple VLAN" \
         "yes" \
         "
-vlan=vlan0001:ens5
-vlan=vlan2:ens5
-vlan=ens5.3:ens5
-vlan=ens5.0004:ens5
-ip=ens3:dhcp
+vlan=vlan0001:net3
+vlan=vlan2:net3
+vlan=net3.3:net3
+vlan=net3.0004:net3
+ip=net1:dhcp
 ip=192.168.54.101::192.168.54.1:24:test:vlan0001:none
 ip=192.168.55.102::192.168.55.1:24:test:vlan2:none
-ip=192.168.56.103::192.168.56.1:24:test:ens5.3:none
-ip=192.168.57.104::192.168.57.1:24:test:ens5.0004:none
+ip=192.168.56.103::192.168.56.1:24:test:net3.3:none
+ip=192.168.57.104::192.168.57.1:24:test:net3.0004:none
 rd.neednet=1
-root=nfs:192.168.50.1:/nfs/client bootdev=ens3
+root=nfs:192.168.50.1:/nfs/client bootdev=net1
 " \
         "$EXPECT" \
         || return 1
 
     if [[ $NM ]]; then
-        EXPECT='bond0 bond1 /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-* EOF '
+        EXPECT='bond0 /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-* EOF '
     else
-        EXPECT='bond0 bond1 /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-bond0 # Generated by dracut initrd NAME="bond0" DEVICE="bond0" ONBOOT=yes NETBOOT=yes IPV6INIT=yes BOOTPROTO=dhcp BONDING_OPTS="" NAME="bond0" TYPE=Bond /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-bond1 # Generated by dracut initrd NAME="bond1" DEVICE="bond1" ONBOOT=yes NETBOOT=yes IPV6INIT=yes BOOTPROTO=dhcp BONDING_OPTS="" NAME="bond1" TYPE=Bond /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens3 # Generated by dracut initrd NAME="ens3" TYPE=Ethernet ONBOOT=yes NETBOOT=yes SLAVE=yes MASTER="bond0" DEVICE="ens3" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens4 # Generated by dracut initrd NAME="ens4" TYPE=Ethernet ONBOOT=yes NETBOOT=yes SLAVE=yes MASTER="bond0" DEVICE="ens4" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens6 # Generated by dracut initrd NAME="ens6" TYPE=Ethernet ONBOOT=yes NETBOOT=yes SLAVE=yes MASTER="bond1" DEVICE="ens6" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens7 # Generated by dracut initrd NAME="ens7" TYPE=Ethernet ONBOOT=yes NETBOOT=yes SLAVE=yes MASTER="bond1" DEVICE="ens7" EOF '
+        EXPECT='bond0 bond1 /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-bond0 # Generated by dracut initrd NAME="bond0" DEVICE="bond0" ONBOOT=yes NETBOOT=yes IPV6INIT=yes BOOTPROTO=dhcp BONDING_OPTS="" NAME="bond0" TYPE=Bond /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-bond1 # Generated by dracut initrd NAME="bond1" DEVICE="bond1" ONBOOT=yes NETBOOT=yes IPV6INIT=yes BOOTPROTO=dhcp BONDING_OPTS="" NAME="bond1" TYPE=Bond /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-net1 # Generated by dracut initrd NAME="net1" HWADDR="52:54:00:12:34:01" TYPE=Ethernet ONBOOT=yes NETBOOT=yes SLAVE=yes MASTER="bond0" DEVICE="net1" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-net2 # Generated by dracut initrd NAME="net2" HWADDR="52:54:00:12:34:02" TYPE=Ethernet ONBOOT=yes NETBOOT=yes SLAVE=yes MASTER="bond0" DEVICE="net2" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-net4 # Generated by dracut initrd NAME="net4" HWADDR="52:54:00:12:34:04" TYPE=Ethernet ONBOOT=yes NETBOOT=yes SLAVE=yes MASTER="bond1" DEVICE="net4" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-net5 # Generated by dracut initrd NAME="net5" TYPE=Ethernet ONBOOT=yes NETBOOT=yes SLAVE=yes MASTER="bond1" DEVICE="net5" EOF '
     fi
 
     client_test "Multiple Bonds" \
         "yes" \
         "
-bond=bond0:ens3,ens4
-bond=bond1:ens6,ens7
+bond=bond0:net1,net2:miimon=100
+bond=bond1:net4,net5:miimon=100
 ip=bond0:dhcp
 ip=bond1:dhcp
 rd.neednet=1
@@ -178,14 +186,14 @@ root=nfs:192.168.50.1:/nfs/client bootdev=bond0
     if [[ $NM ]]; then
         EXPECT='br0 br1 /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-* EOF '
     else
-        EXPECT='br0 br1 /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-br0 # Generated by dracut initrd NAME="br0" DEVICE="br0" ONBOOT=yes NETBOOT=yes IPV6INIT=yes BOOTPROTO=dhcp TYPE=Bridge NAME="br0" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-br1 # Generated by dracut initrd NAME="br1" DEVICE="br1" ONBOOT=yes NETBOOT=yes IPV6INIT=yes BOOTPROTO=dhcp TYPE=Bridge NAME="br1" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens3 # Generated by dracut initrd NAME="ens3" TYPE=Ethernet ONBOOT=yes NETBOOT=yes BRIDGE="br0" DEVICE="ens3" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens4 # Generated by dracut initrd NAME="ens4" TYPE=Ethernet ONBOOT=yes NETBOOT=yes BRIDGE="br0" DEVICE="ens4" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens6 # Generated by dracut initrd NAME="ens6" TYPE=Ethernet ONBOOT=yes NETBOOT=yes BRIDGE="br1" DEVICE="ens6" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens7 # Generated by dracut initrd NAME="ens7" TYPE=Ethernet ONBOOT=yes NETBOOT=yes BRIDGE="br1" DEVICE="ens7" EOF '
+        EXPECT='br0 br1 /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-br0 # Generated by dracut initrd NAME="br0" DEVICE="br0" ONBOOT=yes NETBOOT=yes IPV6INIT=yes BOOTPROTO=dhcp TYPE=Bridge NAME="br0" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-br1 # Generated by dracut initrd NAME="br1" DEVICE="br1" ONBOOT=yes NETBOOT=yes IPV6INIT=yes BOOTPROTO=dhcp TYPE=Bridge NAME="br1" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-net1 # Generated by dracut initrd NAME="net1" HWADDR="52:54:00:12:34:01" TYPE=Ethernet ONBOOT=yes NETBOOT=yes BRIDGE="br0" DEVICE="net1" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-net2 # Generated by dracut initrd NAME="net2" HWADDR="52:54:00:12:34:02" TYPE=Ethernet ONBOOT=yes NETBOOT=yes BRIDGE="br0" DEVICE="net2" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-net4 # Generated by dracut initrd NAME="net4" TYPE=Ethernet ONBOOT=yes NETBOOT=yes BRIDGE="br1" DEVICE="net4" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-net5 # Generated by dracut initrd NAME="net5" TYPE=Ethernet ONBOOT=yes NETBOOT=yes BRIDGE="br1" DEVICE="net5" EOF '
     fi
 
     client_test "Multiple Bridges" \
         "no" \
         "
-bridge=br0:ens3,ens4
-bridge=br1:ens6,ens7
+bridge=br0:net1,net2
+bridge=br1:net4,net5
 ip=br0:dhcp
 ip=br1:dhcp
 rd.neednet=1
@@ -193,6 +201,7 @@ root=nfs:192.168.50.1:/nfs/client bootdev=br0
 " \
         "$EXPECT" \
         || return 1
+
     kill_server
     return 0
 }
@@ -343,30 +352,37 @@ test_setup() {
     # Make an overlay with needed tools for the test harness
     (
         # shellcheck disable=SC2031
+        # shellcheck disable=SC2030
         export initdir="$TESTDIR"/overlay
         # shellcheck disable=SC1090
         . "$basedir"/dracut-init.sh
         inst_multiple poweroff shutdown
         inst_hook emergency 000 ./hard-off.sh
-        inst_simple ./99-default.link /etc/systemd/network/99-default.link
     )
-
-    # Make server's dracut image
-    "$basedir"/dracut.sh -l -i "$TESTDIR"/overlay / \
-        --no-early-microcode \
-        -m "udev-rules base rootfs-block fs-lib debug kernel-modules watchdog qemu" \
-        -d "ipvlan macvlan af_packet piix ide-gd_mod ata_piix ext3 sd_mod nfsv2 nfsv3 nfsv4 nfs_acl nfs_layout_nfsv41_files nfsd e1000 i6300esb ib700wdt" \
-        --no-hostonly-cmdline -N \
-        -f "$TESTDIR"/initramfs.server "$KVERSION" || return 1
-
     # Make client's dracut image
     "$basedir"/dracut.sh -l -i "$TESTDIR"/overlay / \
         --no-early-microcode \
         -o "plymouth ${OMIT_NETWORK}" \
         -a "debug ${USE_NETWORK}" \
-        -d "ipvlan macvlan af_packet piix sd_mod sr_mod ata_piix ide-gd_mod e1000 nfsv2 nfsv3 nfsv4 nfs_acl nfs_layout_nfsv41_files sunrpc i6300esb ib700wdt" \
+        -d "ipvlan macvlan af_packet piix sd_mod sr_mod ata_piix ide-gd_mod virtio-net nfsv2 nfsv3 nfsv4 nfs_acl nfs_layout_nfsv41_files sunrpc i6300esb ib700wdt" \
         --no-hostonly-cmdline -N \
         -f "$TESTDIR"/initramfs.testing "$KVERSION" || return 1
+
+    (
+        # shellcheck disable=SC2031
+        export initdir="$TESTDIR"/overlay
+        # shellcheck disable=SC1090
+        . "$basedir"/dracut-init.sh
+        inst_simple ./99-default.link /etc/systemd/network/99-default.link
+        inst_hook pre-mount 99 ./wait-if-server.sh
+    )
+    # Make server's dracut image
+    "$basedir"/dracut.sh -l -i "$TESTDIR"/overlay / \
+        --no-early-microcode \
+        -m "udev-rules base rootfs-block fs-lib debug kernel-modules watchdog qemu network network-legacy" \
+        -d "ipvlan macvlan af_packet piix ide-gd_mod ata_piix ext3 sd_mod nfsv2 nfsv3 nfsv4 nfs_acl nfs_layout_nfsv41_files nfsd virtio-net i6300esb ib700wdt" \
+        --no-hostonly-cmdline -N \
+        -f "$TESTDIR"/initramfs.server "$KVERSION" || return 1
 }
 
 kill_server() {
diff --git a/test/TEST-60-BONDBRIDGEVLANIFCFG/wait-if-server.sh b/test/TEST-60-BONDBRIDGEVLANIFCFG/wait-if-server.sh
new file mode 100644 (file)
index 0000000..7cdb941
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+. /lib/net-lib.sh
+wait_for_if_link enx525401123456
+wait_for_if_link enx525401123457
+wait_for_if_link enx525401123458
+wait_for_if_link enx525401123459