Browse Source

fix: shellcheck 0.7.2

github action `luizm/action-sh-checker@v0.2.2` uses `shellcheck-0.7.2`,
which detects more non-posix shell code and complains accordingly.
master
Harald Hoyer 3 years ago committed by Harald Hoyer
parent
commit
909961d048
  1. 4
      .github/workflows/lint.yml
  2. 15
      .shellcheckrc
  3. 3
      dracut.sh
  4. 2
      modules.d/01systemd-ask-password/module-setup.sh
  5. 2
      modules.d/01systemd-coredump/module-setup.sh
  6. 2
      modules.d/01systemd-repart/module-setup.sh
  7. 2
      modules.d/01systemd-sysctl/module-setup.sh
  8. 2
      modules.d/06dbus-broker/module-setup.sh
  9. 2
      modules.d/06dbus-daemon/module-setup.sh
  10. 2
      modules.d/09dbus/module-setup.sh
  11. 2
      modules.d/35network-legacy/dhcp-multi.sh
  12. 4
      modules.d/35network-legacy/ifup.sh
  13. 4
      modules.d/35network-legacy/module-setup.sh
  14. 14
      modules.d/35network-legacy/parse-ip-opts.sh
  15. 3
      modules.d/40network/module-setup.sh
  16. 4
      modules.d/40network/net-lib.sh
  17. 2
      modules.d/62bluetooth/module-setup.sh
  18. 2
      modules.d/81cio_ignore/parse-cio_accept.sh
  19. 2
      modules.d/90crypt/module-setup.sh
  20. 2
      modules.d/90dmsquash-live/dmsquash-generator.sh
  21. 2
      modules.d/90dmsquash-live/dmsquash-live-root.sh
  22. 2
      modules.d/90dmsquash-live/module-setup.sh
  23. 2
      modules.d/90livenet/livenet-generator.sh
  24. 2
      modules.d/90livenet/module-setup.sh
  25. 2
      modules.d/90lvm/parse-lvm.sh
  26. 2
      modules.d/90mdraid/parse-md.sh
  27. 4
      modules.d/95nbd/nbdroot.sh
  28. 1
      modules.d/95znet/module-setup.sh
  29. 2
      modules.d/95znet/parse-ccw.sh
  30. 2
      modules.d/98dracut-systemd/dracut-cmdline-ask.sh
  31. 2
      modules.d/99base/init.sh
  32. 3
      modules.d/99img-lib/img-lib.sh
  33. 3
      modules.d/99memstrack/memstrack-start.sh
  34. 2
      modules.d/99memstrack/module-setup.sh
  35. 2
      modules.d/99shutdown/shutdown.sh
  36. 2
      test/TEST-01-BASIC/test.sh
  37. 2
      test/TEST-02-SYSTEMD/test.sh
  38. 2
      test/TEST-03-USR-MOUNT/test.sh
  39. 2
      test/TEST-04-FULL-SYSTEMD/test.sh
  40. 2
      test/TEST-10-RAID/test.sh
  41. 2
      test/TEST-11-LVM/test.sh
  42. 2
      test/TEST-12-RAID-DEG/test.sh
  43. 6
      test/TEST-13-ENC-RAID-LVM/test.sh
  44. 2
      test/TEST-14-IMSM/test.sh
  45. 2
      test/TEST-15-BTRFSRAID/test.sh
  46. 2
      test/TEST-16-DMSQUASH/test.sh
  47. 2
      test/TEST-17-LVM-THIN/test.sh
  48. 7
      test/TEST-20-NFS/server-init.sh
  49. 4
      test/TEST-20-NFS/test.sh
  50. 5
      test/TEST-30-ISCSI/test.sh
  51. 2
      test/TEST-35-ISCSI-MULTI/server-init.sh
  52. 5
      test/TEST-35-ISCSI-MULTI/test.sh
  53. 5
      test/TEST-40-NBD/test.sh
  54. 4
      test/TEST-50-MULTINIC/client-init.sh
  55. 4
      test/TEST-50-MULTINIC/test.sh
  56. 2
      test/TEST-60-BONDBRIDGEVLANIFCFG/99-default.link
  57. 63
      test/TEST-60-BONDBRIDGEVLANIFCFG/server-init.sh
  58. 108
      test/TEST-60-BONDBRIDGEVLANIFCFG/test.sh
  59. 6
      test/TEST-60-BONDBRIDGEVLANIFCFG/wait-if-server.sh

4
.github/workflows/lint.yml

@ -29,10 +29,10 @@ jobs:
- uses: actions/checkout@v2 - uses: actions/checkout@v2


- name: shfmt - name: shfmt
uses: luizm/action-sh-checker@v0.2.0 uses: luizm/action-sh-checker@v0.2.2
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SHFMT_OPTS: -d -s # arguments to shfmt. SHFMT_OPTS: -s # arguments to shfmt.
with: with:
sh_checker_shellcheck_disable: false sh_checker_shellcheck_disable: false
sh_checker_comment: true sh_checker_comment: true

15
.shellcheckrc

@ -17,3 +17,18 @@ disable=SC1091
# SC2174: When used with -p, -m only applies to the deepest directory. # SC2174: When used with -p, -m only applies to the deepest directory.
# https://github.com/koalaman/shellcheck/wiki/SC2174 # https://github.com/koalaman/shellcheck/wiki/SC2174
disable=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

3
dracut.sh

@ -30,6 +30,7 @@ if ((BASH_VERSINFO[0] < 4)); then
fi fi


dracut_args=("$@") dracut_args=("$@")
# shellcheck disable=SC2155
readonly dracut_cmd=$(readlink -f "$0") readonly dracut_cmd=$(readlink -f "$0")


set -o pipefail set -o pipefail
@ -1111,6 +1112,7 @@ case "${drivers_dir}" in
;; ;;
esac esac


# shellcheck disable=SC2155
readonly TMPDIR="$(realpath -e "$tmpdir")" readonly TMPDIR="$(realpath -e "$tmpdir")"
[ -d "$TMPDIR" ] || { [ -d "$TMPDIR" ] || {
printf "%s\n" "dracut: Invalid tmpdir '$tmpdir'." >&2 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 noexec=1
fi fi


# shellcheck disable=SC2155
readonly DRACUT_TMPDIR="$(mktemp -p "$TMPDIR/" -d -t dracut.XXXXXX)" readonly DRACUT_TMPDIR="$(mktemp -p "$TMPDIR/" -d -t dracut.XXXXXX)"
[ -d "$DRACUT_TMPDIR" ] || { [ -d "$DRACUT_TMPDIR" ] || {
printf "%s\n" "dracut: mktemp -p '$TMPDIR/' -d -t dracut.XXXXXX failed." >&2 printf "%s\n" "dracut: mktemp -p '$TMPDIR/' -d -t dracut.XXXXXX failed." >&2

2
modules.d/01systemd-ask-password/module-setup.sh

@ -1,4 +1,4 @@
#!/bin/sh #!/bin/bash
# This file is part of dracut. # This file is part of dracut.
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later



2
modules.d/01systemd-coredump/module-setup.sh

@ -1,4 +1,4 @@
#!/bin/sh #!/bin/bash
# This file is part of dracut. # This file is part of dracut.
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later



2
modules.d/01systemd-repart/module-setup.sh

@ -1,4 +1,4 @@
#!/bin/sh #!/bin/bash
# This file is part of dracut. # This file is part of dracut.
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later



2
modules.d/01systemd-sysctl/module-setup.sh

@ -1,4 +1,4 @@
#!/bin/sh #!/bin/bash
# This file is part of dracut. # This file is part of dracut.
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later



2
modules.d/06dbus-broker/module-setup.sh

@ -1,4 +1,4 @@
#!/bin/sh #!/bin/bash
# This file is part of dracut. # This file is part of dracut.
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later



2
modules.d/06dbus-daemon/module-setup.sh

@ -1,4 +1,4 @@
#!/bin/sh #!/bin/bash
# This file is part of dracut. # This file is part of dracut.
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later



2
modules.d/09dbus/module-setup.sh

@ -1,4 +1,4 @@
#!/bin/sh #!/bin/bash
# This file is part of dracut. # This file is part of dracut.
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later



2
modules.d/35network-legacy/dhcp-multi.sh

@ -65,7 +65,7 @@ do_dhclient() {
warn "dhcp for interface $netif failed" warn "dhcp for interface $netif failed"
# nuke those files since we failed; we might retry dhcp again if it's e.g. # 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 # `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 return 1
} }



4
modules.d/35network-legacy/ifup.sh

@ -96,7 +96,7 @@ do_dhcp() {
warn "dhcp for interface $netif failed" warn "dhcp for interface $netif failed"
# nuke those files since we failed; we might retry dhcp again if it's e.g. # 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 # `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 return 1
} }


@ -268,7 +268,7 @@ if [ -z "$NO_BOND_MASTER" ]; then
# shellcheck disable=SC1090 # shellcheck disable=SC1090
. "$i" . "$i"
for testslave in $bondslaves; do for testslave in $bondslaves; do
[ "$netif" != "testslave" ] && continue [ "$netif" != "$testslave" ] && continue


# already setup # already setup
[ -e "/tmp/bond.$bondname.up" ] && exit 0 [ -e "/tmp/bond.$bondname.up" ] && exit 0

4
modules.d/35network-legacy/module-setup.sh

@ -2,7 +2,7 @@


# called by dracut # called by dracut
check() { 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 require_any_binary arping arping2 || return 1


return 255 return 255
@ -28,7 +28,7 @@ install() {
[[ $hostonly ]] && inst_multiple -H -o "${systemdsystemconfdir}/network/*.link" [[ $hostonly ]] && inst_multiple -H -o "${systemdsystemconfdir}/network/*.link"
fi 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 inst_multiple -o arping arping2
strstr "$(arping 2>&1)" "ARPing 2" && mv "$initdir/bin/arping" "$initdir/bin/arping2" strstr "$(arping 2>&1)" "ARPing 2" && mv "$initdir/bin/arping" "$initdir/bin/arping2"

14
modules.d/35network-legacy/parse-ip-opts.sh

@ -113,14 +113,16 @@ for p in $(getargs ip=); do
fi fi


if str_starts "$dev" "enx" && [ ${#dev} -eq 15 ]; then if str_starts "$dev" "enx" && [ ${#dev} -eq 15 ]; then
# shellcheck disable=SC2003
printf -- "ifname=%s:%s:%s:%s:%s:%s:%s\n" \ printf -- "ifname=%s:%s:%s:%s:%s:%s:%s\n" \
"$dev" \ "$dev" \
"${dev:3:2}" \ "$(expr substr "$dev" 3 2)" \
"${dev:5:2}" \ "$(expr substr "$dev" 5 2)" \
"${dev:7:2}" \ "$(expr substr "$dev" 7 2)" \
"${dev:9:2}" \ "$(expr substr "$dev" 9 2)" \
"${dev:11:2}" \ "$(expr substr "$dev" 11 2)" \
"${dev:13:2}" >> /etc/cmdline.d/80-enx.conf "$(expr substr "$dev" 13 2)" \
>> /etc/cmdline.d/80-enx.conf
fi fi
done done



3
modules.d/40network/module-setup.sh

@ -42,6 +42,7 @@ install() {
inst_simple "$moddir/net-lib.sh" "/lib/net-lib.sh" inst_simple "$moddir/net-lib.sh" "/lib/net-lib.sh"
inst_hook pre-udev 50 "$moddir/ifname-genrules.sh" inst_hook pre-udev 50 "$moddir/ifname-genrules.sh"
inst_hook cmdline 91 "$moddir/dhcp-root.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 dracut_need_initqueue
} }

4
modules.d/40network/net-lib.sh

@ -266,10 +266,10 @@ ibft_to_cmdline() {


[ -e "${iface}"/flags ] && read -r flags < "${iface}"/flags [ -e "${iface}"/flags ] && read -r flags < "${iface}"/flags
# Skip invalid interfaces # Skip invalid interfaces
((flags & 1)) || continue awk -- 'BEGIN { exit (!and('"$flags"',1)) }' || continue
# Skip interfaces not used for booting unless using multipath # Skip interfaces not used for booting unless using multipath
if ! getargbool 0 rd.iscsi.mp; then if ! getargbool 0 rd.iscsi.mp; then
((flags & 2)) || continue awk -- 'BEGIN { exit (!and('"$flags"',2)) }' || continue
fi fi
[ -e "${iface}"/dhcp ] && read -r dhcp < "${iface}"/dhcp [ -e "${iface}"/dhcp ] && read -r dhcp < "${iface}"/dhcp
[ -e "${iface}"/origin ] && read -r origin < "${iface}"/origin [ -e "${iface}"/origin ] && read -r origin < "${iface}"/origin

2
modules.d/62bluetooth/module-setup.sh

@ -1,4 +1,4 @@
#!/bin/sh #!/bin/bash
# This file is part of dracut. # This file is part of dracut.
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later



2
modules.d/81cio_ignore/parse-cio_accept.sh

@ -14,7 +14,7 @@ if [ -n "$CIO_ACCEPT" ]; then
IFS=, IFS=,
# shellcheck disable=SC2086 # shellcheck disable=SC2086
set -- $CIO_ACCEPT set -- $CIO_ACCEPT
while (($# > 0)); do while [ "$#" -gt 0 ]; do
info "Enabling device $1" info "Enabling device $1"
cio_ignore --remove "$1" cio_ignore --remove "$1"
shift shift

2
modules.d/90crypt/module-setup.sh

@ -56,6 +56,7 @@ installkernel() {
# called by dracut # called by dracut
cmdline() { cmdline() {
local dev UUID local dev UUID
# shellcheck disable=SC2031
for dev in "${!host_fs_types[@]}"; do for dev in "${!host_fs_types[@]}"; do
[[ ${host_fs_types[$dev]} != "crypto_LUKS" ]] && continue [[ ${host_fs_types[$dev]} != "crypto_LUKS" ]] && continue


@ -130,6 +131,7 @@ install() {
if [ "${forceentry}" = "yes" ]; then if [ "${forceentry}" = "yes" ]; then
echo "$_mapper $_dev $_luksfile $_luksoptions" echo "$_mapper $_dev $_luksfile $_luksoptions"
else else
# shellcheck disable=SC2031
for _hdev in "${!host_fs_types[@]}"; do for _hdev in "${!host_fs_types[@]}"; do
[[ ${host_fs_types[$_hdev]} == "crypto_LUKS" ]] || continue [[ ${host_fs_types[$_hdev]} == "crypto_LUKS" ]] || continue
if [[ $_hdev -ef $_dev ]] || [[ /dev/block/$_hdev -ef $_dev ]]; then if [[ $_hdev -ef $_dev ]] || [[ /dev/block/$_hdev -ef $_dev ]]; then

2
modules.d/90dmsquash-live/dmsquash-generator.sh

@ -1,4 +1,4 @@
#!/bin/sh #!/bin/bash


type getarg > /dev/null 2>&1 || . /lib/dracut-lib.sh type getarg > /dev/null 2>&1 || . /lib/dracut-lib.sh



2
modules.d/90dmsquash-live/dmsquash-live-root.sh

@ -1,4 +1,4 @@
#!/bin/sh #!/bin/bash


type getarg > /dev/null 2>&1 || . /lib/dracut-lib.sh type getarg > /dev/null 2>&1 || . /lib/dracut-lib.sh



2
modules.d/90dmsquash-live/module-setup.sh

@ -11,7 +11,7 @@ check() {
depends() { depends() {
# if dmsetup is not installed, then we cannot support fedora/red hat # if dmsetup is not installed, then we cannot support fedora/red hat
# style live images # style live images
echo dm rootfs-block img-lib echo dm rootfs-block img-lib bash
return 0 return 0
} }



2
modules.d/90livenet/livenet-generator.sh

@ -1,4 +1,4 @@
#!/bin/sh #!/bin/bash


type getarg > /dev/null 2>&1 || . /lib/dracut-lib.sh type getarg > /dev/null 2>&1 || . /lib/dracut-lib.sh



2
modules.d/90livenet/module-setup.sh

@ -8,7 +8,7 @@ check() {


# called by dracut # called by dracut
depends() { depends() {
echo network url-lib dmsquash-live img-lib echo network url-lib dmsquash-live img-lib bash
return 0 return 0
} }



2
modules.d/90lvm/parse-lvm.sh

@ -7,7 +7,7 @@ fi
LV_DEVS="$(getargs rd.lvm.vg -d rd_LVM_VG=) $(getargs rd.lvm.lv -d rd_LVM_LV=)" 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 \ 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" info "rd.lvm=0: removing LVM activation"
rm -f -- /etc/udev/rules.d/64-lvm*.rules rm -f -- /etc/udev/rules.d/64-lvm*.rules
else else

2
modules.d/90mdraid/parse-md.sh

@ -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" "-" "")
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" info "rd.md=0: removing MD RAID activation"
udevproperty rd_NO_MD=1 udevproperty rd_NO_MD=1
else else

4
modules.d/95nbd/nbdroot.sh

@ -129,9 +129,7 @@ if strstr "$(nbd-client --help 2>&1)" "systemd-mark"; then
preopts="-systemd-mark $preopts" preopts="-systemd-mark $preopts"
fi fi


if [ "$nbdport" -gt 0 ] 2> /dev/null; then if ! [ "$nbdport" -gt 0 ] 2> /dev/null; then
nbdport="$nbdport"
else
nbdport="-name $nbdport" nbdport="-name $nbdport"
fi fi



1
modules.d/95znet/module-setup.sh

@ -12,6 +12,7 @@ check() {


# called by dracut # called by dracut
depends() { depends() {
echo bash
return 0 return 0
} }



2
modules.d/95znet/parse-ccw.sh

@ -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 for ccw_arg in $(getargs rd.ccw -d 'rd_CCW=') $(getargs rd.znet -d 'rd_ZNET='); do
echo "$ccw_arg" >> /etc/ccw.conf echo "$ccw_arg" >> /etc/ccw.conf

2
modules.d/98dracut-systemd/dracut-cmdline-ask.sh

@ -14,7 +14,7 @@ echo
echo echo
echo echo
echo "Enter additional kernel command line parameter (end with ctrl-d or .)" 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 [ "$line" = "." ] && break
[ -n "$line" ] && printf -- "%s\n" "$line" >> /etc/cmdline.d/99-cmdline-ask.conf [ -n "$line" ] && printf -- "%s\n" "$line" >> /etc/cmdline.d/99-cmdline-ask.conf
done done

2
modules.d/99base/init.sh

@ -109,7 +109,7 @@ source_conf /etc/conf.d


if getarg "rd.cmdline=ask"; then if getarg "rd.cmdline=ask"; then
echo "Enter additional kernel command line parameter (end with ctrl-d or .)" 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 [ "$line" = "." ] && break
echo "$line" >> /etc/cmdline.d/99-cmdline-ask.conf echo "$line" >> /etc/cmdline.d/99-cmdline-ask.conf
done done

3
modules.d/99img-lib/img-lib.sh

@ -10,8 +10,11 @@ det_archive() {
local bz xz gz zs local bz xz gz zs
local headerblock local headerblock
bz="BZh" bz="BZh"
# shellcheck disable=SC3037
xz="$(/bin/echo -e '\xfd7zXZ')" xz="$(/bin/echo -e '\xfd7zXZ')"
# shellcheck disable=SC3037
gz="$(/bin/echo -e '\x1f\x8b')" gz="$(/bin/echo -e '\x1f\x8b')"
# shellcheck disable=SC3037
zs="$(/bin/echo -e '\x28\xB5\x2F\xFD')" zs="$(/bin/echo -e '\x28\xB5\x2F\xFD')"
headerblock="$(dd ${1:+if=$1} bs=262 count=1 2> /dev/null | tr -d '\0')" headerblock="$(dd ${1:+if=$1} bs=262 count=1 2> /dev/null | tr -d '\0')"
case "$headerblock" in case "$headerblock" in

3
modules.d/99memstrack/memstrack-start.sh

@ -1,4 +1,4 @@
#!/bin/sh #!/bin/bash
# Mount kernel debug fs so debug tools can work. # Mount kernel debug fs so debug tools can work.
# memdebug=4 and memdebug=5 requires debug fs to be mounted. # memdebug=4 and memdebug=5 requires debug fs to be mounted.
# And there is no need to umount it. # And there is no need to umount it.
@ -65,4 +65,5 @@ fi
sleep 1 sleep 1


echo $PID > /run/memstrack.pid echo $PID > /run/memstrack.pid
# bash specific - non posix
disown disown

2
modules.d/99memstrack/module-setup.sh

@ -11,7 +11,7 @@ check() {
} }


depends() { depends() {
echo systemd echo systemd bash
return 0 return 0
} }



2
modules.d/99shutdown/shutdown.sh

@ -12,7 +12,7 @@ ACTION="$1"
# the process will be killed when when running as PID 1. # the process will be killed when when running as PID 1.
# shellcheck disable=SC2217 # shellcheck disable=SC2217
[ -w /dev/console ] \ [ -w /dev/console ] \
&& (echo < /dev/console &> /dev/null) \ && (echo < /dev/console > /dev/null 2> /dev/null) \
&& exec < /dev/console >> /dev/console 2>> /dev/console && exec < /dev/console >> /dev/console 2>> /dev/console


export TERM=linux export TERM=linux

2
test/TEST-01-BASIC/test.sh

@ -18,7 +18,7 @@ test_run() {
"$testdir"/run-qemu \ "$testdir"/run-qemu \
"${disk_args[@]}" \ "${disk_args[@]}" \
-watchdog i6300esb -watchdog-action poweroff \ -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 -initrd "$TESTDIR"/initramfs.testing || return 1


grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img

2
test/TEST-02-SYSTEMD/test.sh

@ -16,7 +16,7 @@ test_run() {


"$testdir"/run-qemu \ "$testdir"/run-qemu \
"${disk_args[@]}" \ "${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 -initrd "$TESTDIR"/initramfs.testing || return 1


grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img

2
test/TEST-03-USR-MOUNT/test.sh

@ -26,7 +26,7 @@ client_run() {
"$testdir"/run-qemu \ "$testdir"/run-qemu \
"${disk_args[@]}" \ "${disk_args[@]}" \
-watchdog i6300esb -watchdog-action poweroff \ -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 -initrd "$TESTDIR"/initramfs.testing || return 1


if ! grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img; then if ! grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img; then

2
test/TEST-04-FULL-SYSTEMD/test.sh

@ -27,7 +27,7 @@ client_run() {


"$testdir"/run-qemu \ "$testdir"/run-qemu \
"${disk_args[@]}" \ "${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 -initrd "$TESTDIR"/initramfs.testing || return 1


if ! grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img; then if ! grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img; then

2
test/TEST-10-RAID/test.sh

@ -19,7 +19,7 @@ test_run() {


"$testdir"/run-qemu \ "$testdir"/run-qemu \
"${disk_args[@]}" \ "${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 -initrd "$TESTDIR"/initramfs.testing || return 1


grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img

2
test/TEST-11-LVM/test.sh

@ -20,7 +20,7 @@ test_run() {


"$testdir"/run-qemu \ "$testdir"/run-qemu \
"${disk_args[@]}" \ "${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 -initrd "$TESTDIR"/initramfs.testing || return 1


grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img

2
test/TEST-12-RAID-DEG/test.sh

@ -24,7 +24,7 @@ client_run() {


"$testdir"/run-qemu \ "$testdir"/run-qemu \
"${disk_args[@]}" \ "${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 -initrd "$TESTDIR"/initramfs.testing


if ! grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img; then if ! grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img; then

6
test/TEST-13-ENC-RAID-LVM/test.sh

@ -26,7 +26,7 @@ test_run() {


"$testdir"/run-qemu \ "$testdir"/run-qemu \
"${disk_args[@]}" \ "${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 -initrd "$TESTDIR"/initramfs.testing
grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img || return 1 grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img || return 1
echo "CLIENT TEST END: [OK]" echo "CLIENT TEST END: [OK]"
@ -36,7 +36,7 @@ test_run() {
echo "CLIENT TEST START: Any LUKS" echo "CLIENT TEST START: Any LUKS"
"$testdir"/run-qemu \ "$testdir"/run-qemu \
"${disk_args[@]}" \ "${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 -initrd "$TESTDIR"/initramfs.testing
grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img || return 1 grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img || return 1
echo "CLIENT TEST END: [OK]" echo "CLIENT TEST END: [OK]"
@ -46,7 +46,7 @@ test_run() {
echo "CLIENT TEST START: Wrong LUKS UUID" echo "CLIENT TEST START: Wrong LUKS UUID"
"$testdir"/run-qemu \ "$testdir"/run-qemu \
"${disk_args[@]}" \ "${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 -initrd "$TESTDIR"/initramfs.testing
grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img && return 1 grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img && return 1
echo "CLIENT TEST END: [OK]" echo "CLIENT TEST END: [OK]"

2
test/TEST-14-IMSM/test.sh

@ -21,7 +21,7 @@ client_run() {


"$testdir"/run-qemu \ "$testdir"/run-qemu \
"${disk_args[@]}" \ "${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 -initrd "$TESTDIR"/initramfs.testing || return 1


if ! grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img; then if ! grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img; then

2
test/TEST-15-BTRFSRAID/test.sh

@ -19,7 +19,7 @@ test_run() {


"$testdir"/run-qemu \ "$testdir"/run-qemu \
"${disk_args[@]}" \ "${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 -initrd "$TESTDIR"/initramfs.testing
grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img || return 1 grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img || return 1
} }

2
test/TEST-16-DMSQUASH/test.sh

@ -30,7 +30,7 @@ test_run() {
"$testdir"/run-qemu \ "$testdir"/run-qemu \
"${disk_args[@]}" \ "${disk_args[@]}" \
-boot order=d \ -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 -initrd "$TESTDIR"/initramfs.testing


# mediacheck test with qemu GUI # mediacheck test with qemu GUI

2
test/TEST-17-LVM-THIN/test.sh

@ -19,7 +19,7 @@ test_run() {


"$testdir"/run-qemu \ "$testdir"/run-qemu \
"${disk_args[@]}" \ "${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 -initrd "$TESTDIR"/initramfs.testing || return 1
grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img || return 1 grep -U --binary-files=binary -F -m 1 -q dracut-root-block-success "$TESTDIR"/marker.img || return 1
} }

7
test/TEST-20-NFS/server-init.sh

@ -15,10 +15,6 @@ wait_for_if_link() {
while [ $cnt -lt 600 ]; do while [ $cnt -lt 600 ]; do
li=$(ip -o link show dev "$1" 2> /dev/null) li=$(ip -o link show dev "$1" 2> /dev/null)
[ -n "$li" ] && return 0 [ -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 sleep 0.1
cnt=$((cnt + 1)) cnt=$((cnt + 1))
done 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 "$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 addr add 127.0.0.1/8 dev lo
ip link set lo up 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.1/24 dev enp0s1
ip addr add 192.168.50.2/24 dev enp0s1 ip addr add 192.168.50.2/24 dev enp0s1
ip addr add 192.168.50.3/24 dev enp0s1 ip addr add 192.168.50.3/24 dev enp0s1

4
test/TEST-20-NFS/test.sh

@ -34,7 +34,7 @@ run_server() {
-net nic,macaddr=52:54:00:12:34:56,model=e1000 \ -net nic,macaddr=52:54:00:12:34:56,model=e1000 \
-serial "${SERIAL:-"file:$TESTDIR/server.log"}" \ -serial "${SERIAL:-"file:$TESTDIR/server.log"}" \
-watchdog i6300esb -watchdog-action poweroff \ -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 \ -initrd "$TESTDIR"/initramfs.server \
-pidfile "$TESTDIR"/server.pid -daemonize || return 1 -pidfile "$TESTDIR"/server.pid -daemonize || return 1
chmod 644 "$TESTDIR"/server.pid || return 1 chmod 644 "$TESTDIR"/server.pid || return 1
@ -79,7 +79,7 @@ client_test() {
-net nic,macaddr="$mac",model=e1000 \ -net nic,macaddr="$mac",model=e1000 \
-net socket,connect=127.0.0.1:12320 \ -net socket,connect=127.0.0.1:12320 \
-watchdog i6300esb -watchdog-action poweroff \ -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 -initrd "$TESTDIR"/initramfs.testing


# shellcheck disable=SC2181 # shellcheck disable=SC2181

5
test/TEST-30-ISCSI/test.sh

@ -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:56,model=e1000 \
-net nic,macaddr=52:54:00:12:34:57,model=e1000 \ -net nic,macaddr=52:54:00:12:34:57,model=e1000 \
-net socket,listen=127.0.0.1:12330 \ -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 \ -initrd "$TESTDIR"/initramfs.server \
-pidfile "$TESTDIR"/server.pid -daemonize || return 1 -pidfile "$TESTDIR"/server.pid -daemonize || return 1
chmod 644 "$TESTDIR"/server.pid || 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 nic,macaddr=52:54:00:12:34:01,model=e1000 \
-net socket,connect=127.0.0.1:12330 \ -net socket,connect=127.0.0.1:12330 \
-acpitable file=ibft.table \ -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 -initrd "$TESTDIR"/initramfs.testing


# shellcheck disable=SC2181 # shellcheck disable=SC2181
@ -227,6 +227,7 @@ test_setup() {
# Make server root # Make server root
dd if=/dev/zero of="$TESTDIR"/server.ext3 bs=1M count=120 dd if=/dev/zero of="$TESTDIR"/server.ext3 bs=1M count=120


# shellcheck disable=SC2031
export kernel=$KVERSION export kernel=$KVERSION
rm -rf -- "$TESTDIR"/overlay rm -rf -- "$TESTDIR"/overlay
( (

2
test/TEST-35-ISCSI-MULTI/server-init.sh

@ -53,11 +53,9 @@ wait_for_if_link enp0s2
ip addr add 127.0.0.1/8 dev lo ip addr add 127.0.0.1/8 dev lo
ip link set lo up 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.1/24 dev enp0s1
linkup enp0s1 linkup enp0s1


ip link set dev eth1 name enp0s2
ip addr add 192.168.51.1/24 dev enp0s2 ip addr add 192.168.51.1/24 dev enp0s2
linkup enp0s2 linkup enp0s2



5
test/TEST-35-ISCSI-MULTI/test.sh

@ -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:56,model=e1000 \
-net nic,macaddr=52:54:00:12:34:57,model=e1000 \ -net nic,macaddr=52:54:00:12:34:57,model=e1000 \
-net socket,listen=127.0.0.1:12331 \ -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 \ -initrd "$TESTDIR"/initramfs.server \
-pidfile "$TESTDIR"/server.pid -daemonize || return 1 -pidfile "$TESTDIR"/server.pid -daemonize || return 1
chmod 644 "$TESTDIR"/server.pid || 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:00,model=e1000 \
-net nic,macaddr=52:54:00:12:34:01,model=e1000 \ -net nic,macaddr=52:54:00:12:34:01,model=e1000 \
-net socket,connect=127.0.0.1:12331 \ -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 -initrd "$TESTDIR"/initramfs.testing
if ! grep -U --binary-files=binary -F -m 1 -q iscsi-OK "$TESTDIR"/marker.img; then 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]" echo "CLIENT TEST END: $test_name [FAILED - BAD EXIT]"
@ -231,6 +231,7 @@ test_setup() {
# Make server root # Make server root
echo "MAKE SERVER ROOT" echo "MAKE SERVER ROOT"


# shellcheck disable=SC2031
export kernel=$KVERSION export kernel=$KVERSION
rm -rf -- "$TESTDIR"/overlay rm -rf -- "$TESTDIR"/overlay
( (

5
test/TEST-40-NBD/test.sh

@ -47,7 +47,7 @@ run_server() {
-serial "${SERIAL:-"file:$TESTDIR/server.log"}" \ -serial "${SERIAL:-"file:$TESTDIR/server.log"}" \
-net nic,macaddr=52:54:00:12:34:56,model=e1000 \ -net nic,macaddr=52:54:00:12:34:56,model=e1000 \
-net socket,listen=127.0.0.1:12340 \ -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 \ -initrd "$TESTDIR"/initramfs.server \
-pidfile "$TESTDIR"/server.pid -daemonize || return 1 -pidfile "$TESTDIR"/server.pid -daemonize || return 1
chmod 644 "$TESTDIR"/server.pid || return 1 chmod 644 "$TESTDIR"/server.pid || return 1
@ -90,7 +90,7 @@ client_test() {
"${disk_args[@]}" \ "${disk_args[@]}" \
-net nic,macaddr="$mac",model=e1000 \ -net nic,macaddr="$mac",model=e1000 \
-net socket,connect=127.0.0.1:12340 \ -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 -initrd "$TESTDIR"/initramfs.testing


# shellcheck disable=SC2181 # shellcheck disable=SC2181
@ -367,6 +367,7 @@ make_client_root() {


make_server_root() { make_server_root() {
rm -fr "$TESTDIR"/overlay rm -fr "$TESTDIR"/overlay
# shellcheck disable=SC2031
export kernel=$KVERSION export kernel=$KVERSION
( (
mkdir -p "$TESTDIR"/overlay/source mkdir -p "$TESTDIR"/overlay/source

4
test/TEST-50-MULTINIC/client-init.sh

@ -15,14 +15,14 @@ for i in /sys/class/net/*; do
grep -q connection-uuid= "$state" 2> /dev/null || continue grep -q connection-uuid= "$state" 2> /dev/null || continue
i=${i##*/} i=${i##*/}
ip link show "$i" | grep -q master && continue ip link show "$i" | grep -q master && continue
IFACES+="$i " IFACES="${IFACES}${i} "
done done
for i in /run/initramfs/net.*.did-setup; do for i in /run/initramfs/net.*.did-setup; do
# booting with network-legacy module # booting with network-legacy module
[ -f "$i" ] || continue [ -f "$i" ] || continue
strglobin "$i" ":*:*:*:*:" && continue strglobin "$i" ":*:*:*:*:" && continue
i=${i%.did-setup} i=${i%.did-setup}
IFACES+="${i##*/net.} " IFACES="${IFACES}${i##*/net.} "
done done
{ {
echo "OK" echo "OK"

4
test/TEST-50-MULTINIC/test.sh

@ -32,7 +32,7 @@ run_server() {
-net nic,macaddr=52:54:01:12:34:56,model=e1000 \ -net nic,macaddr=52:54:01:12:34:56,model=e1000 \
-serial "${SERIAL:-"file:$TESTDIR/server.log"}" \ -serial "${SERIAL:-"file:$TESTDIR/server.log"}" \
-watchdog i6300esb -watchdog-action poweroff \ -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 \ -initrd "$TESTDIR"/initramfs.server \
-pidfile "$TESTDIR"/server.pid -daemonize || return 1 -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=n1,mac=52:54:00:12:34:98 \
-device e1000,netdev=n2,mac=52:54:00:12:34:99 \ -device e1000,netdev=n2,mac=52:54:00:12:34:99 \
-watchdog i6300esb -watchdog-action poweroff \ -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 -initrd "$TESTDIR"/initramfs.testing || return 1


{ {

2
test/TEST-60-BONDBRIDGEVLANIFCFG/99-default.link

@ -2,5 +2,5 @@
OriginalName=* OriginalName=*


[Link] [Link]
NamePolicy=keep kernel database onboard slot path NamePolicy=mac
MACAddressPolicy=keep MACAddressPolicy=keep

63
test/TEST-60-BONDBRIDGEVLANIFCFG/server-init.sh

@ -17,10 +17,6 @@ wait_for_if_link() {


li=$(ip -o link show dev "$1" 2> /dev/null) li=$(ip -o link show dev "$1" 2> /dev/null)
[ -n "$li" ] && return 0 [ -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 sleep 0.1
cnt=$((cnt + 1)) cnt=$((cnt + 1))
done done
@ -58,38 +54,39 @@ udevadm settle


ip link show ip link show


wait_for_if_link eth0 ens3 wait_for_if_link enx525401123456
wait_for_if_link eth1 ens4 wait_for_if_link enx525401123457
wait_for_if_link eth2 ens5 wait_for_if_link enx525401123458
wait_for_if_link eth3 ens6 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 modprobe --all -b -q 8021q ipvlan macvlan
: > /dev/watchdog : > /dev/watchdog
ip addr add 127.0.0.1/8 dev lo ip addr add 127.0.0.1/8 dev lo
linkup lo linkup lo
ip link set dev eth0 name ens3 ip addr add 192.168.50.1/24 dev net1
ip addr add 192.168.50.1/24 dev ens3 linkup net1
linkup ens3 : > /dev/watchdog
: > /dev/watchdog ip link add dev net2.1 link net2 type vlan id 1
ip link set dev eth1 name ens4 ip link add dev net2.2 link net2 type vlan id 2
ip link add dev ens4.1 link ens4 type vlan id 1 ip link add dev net2.3 link net2 type vlan id 3
ip link add dev ens4.2 link ens4 type vlan id 2 ip link add dev net2.4 link net2 type vlan id 4
ip link add dev ens4.3 link ens4 type vlan id 3 ip addr add 192.168.54.1/24 dev net2.1
ip link add dev ens4.4 link ens4 type vlan id 4 ip addr add 192.168.55.1/24 dev net2.2
ip addr add 192.168.54.1/24 dev ens4.1 ip addr add 192.168.56.1/24 dev net2.3
ip addr add 192.168.55.1/24 dev ens4.2 ip addr add 192.168.57.1/24 dev net2.4
ip addr add 192.168.56.1/24 dev ens4.3 linkup net2
ip addr add 192.168.57.1/24 dev ens4.4 ip link set dev net2.1 up
linkup ens4 ip link set dev net2.2 up
ip link set dev ens4.1 up ip link set dev net2.3 up
ip link set dev ens4.2 up ip link set dev net2.4 up
ip link set dev ens4.3 up ip addr add 192.168.51.1/24 dev net3
ip link set dev ens4.4 up linkup net3
ip link set dev eth2 name ens5 linkup net4
ip addr add 192.168.51.1/24 dev ens5
linkup ens5
ip link set dev eth3 name ens6
linkup ens6
: > /dev/watchdog : > /dev/watchdog
modprobe af_packet modprobe af_packet
: > /dev/watchdog : > /dev/watchdog
@ -120,10 +117,10 @@ exportfs -r
: > /dev/watchdog : > /dev/watchdog
chmod 777 /var/lib/dhcpd/dhcpd.leases chmod 777 /var/lib/dhcpd/dhcpd.leases
: > /dev/watchdog : > /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 #echo -n 'V' : > /dev/watchdog
#sh -i #sh -i
#tcpdump -i ens3 #tcpdump -i net1
# Wait forever for the VM to die # Wait forever for the VM to die
echo "Serving" echo "Serving"
while :; do while :; do

108
test/TEST-60-BONDBRIDGEVLANIFCFG/test.sh

@ -25,18 +25,18 @@ run_server() {
echo "MULTINIC TEST SETUP: Starting DHCP/NFS server" echo "MULTINIC TEST SETUP: Starting DHCP/NFS server"


"$testdir"/run-qemu \ "$testdir"/run-qemu \
-hda "$TESTDIR"/server.ext3 \
-netdev socket,id=n0,listen=127.0.0.1:12370 \ -netdev socket,id=n0,listen=127.0.0.1:12370 \
-netdev socket,id=n1,listen=127.0.0.1:12371 \ -netdev socket,id=n1,listen=127.0.0.1:12371 \
-netdev socket,id=n2,listen=127.0.0.1:12372 \ -netdev socket,id=n2,listen=127.0.0.1:12372 \
-netdev socket,id=n3,listen=127.0.0.1:12373 \ -netdev socket,id=n3,listen=127.0.0.1:12373 \
-device e1000,netdev=n0,mac=52:54:01:12:34:56 \ -device virtio-net-pci,netdev=n0,mac=52:54:01:12:34:56 \
-device e1000,netdev=n1,mac=52:54:01:12:34:57 \ -device virtio-net-pci,netdev=n1,mac=52:54:01:12:34:57 \
-device e1000,netdev=n2,mac=52:54:01:12:34:58 \ -device virtio-net-pci,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=n3,mac=52:54:01:12:34:59 \
-hda "$TESTDIR"/server.ext3 \
-serial "${SERIAL:-"file:$TESTDIR/server.log"}" \ -serial "${SERIAL:-"file:$TESTDIR/server.log"}" \
-watchdog i6300esb -watchdog-action poweroff \ -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 \ -initrd "$TESTDIR"/initramfs.server \
-pidfile "$TESTDIR"/server.pid -daemonize || return 1 -pidfile "$TESTDIR"/server.pid -daemonize || return 1
chmod 644 -- "$TESTDIR"/server.pid || return 1 chmod 644 -- "$TESTDIR"/server.pid || return 1
@ -74,25 +74,33 @@ client_test() {
return 1 return 1
fi fi
if [[ $do_vlan13 ]]; then if [[ $do_vlan13 ]]; then
nic1=" -netdev socket,connect=127.0.0.1:12371,id=n1" nic1=("-netdev" "socket,connect=127.0.0.1:12371,id=n1")
nic3=" -netdev socket,connect=127.0.0.1:12373,id=n3" nic3=("-netdev" "socket,connect=127.0.0.1:12373,id=n3")
else else
nic1=" -netdev hubport,id=n1,hubid=2" nic1=("-netdev" "hubport,id=n1,hubid=2")
nic3=" -netdev hubport,id=n3,hubid=3" nic3=("-netdev" "hubport,id=n3,hubid=3")
fi fi


"$testdir"/run-qemu \ "$testdir"/run-qemu \
-hda "$TESTDIR"/client.img \
-netdev socket,connect=127.0.0.1:12370,id=s1 \ -netdev socket,connect=127.0.0.1:12370,id=s1 \
-netdev hubport,hubid=1,id=h1,netdev=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=h2 -device virtio-net-pci,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 \ -netdev hubport,hubid=1,id=h3 -device virtio-net-pci,mac=52:54:00:12:34:02,netdev=h3 \
"$nic1" -device e1000,mac=52:54:00:12:34:03,netdev=n1 \ "${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 e1000,mac=52:54:00:12:34:04,netdev=n2 \ -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 e1000,mac=52:54:00:12:34:05,netdev=n3 \ "${nic3[@]}" -device virtio-net-pci,mac=52:54:00:12:34:05,netdev=n3 \
-hda "$TESTDIR"/client.img \
-watchdog i6300esb -watchdog-action poweroff \ -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" \ -append "
-initrd "$TESTDIR"/initramfs.testing 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 _ read -r OK _
@ -133,40 +141,40 @@ test_run() {


test_client() { test_client() {
if [[ $NM ]]; then 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 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 fi


client_test "Multiple VLAN" \ client_test "Multiple VLAN" \
"yes" \ "yes" \
" "
vlan=vlan0001:ens5 vlan=vlan0001:net3
vlan=vlan2:ens5 vlan=vlan2:net3
vlan=ens5.3:ens5 vlan=net3.3:net3
vlan=ens5.0004:ens5 vlan=net3.0004:net3
ip=ens3:dhcp ip=net1:dhcp
ip=192.168.54.101::192.168.54.1:24:test:vlan0001:none 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.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.56.103::192.168.56.1:24:test:net3.3:none
ip=192.168.57.104::192.168.57.1:24:test:ens5.0004:none ip=192.168.57.104::192.168.57.1:24:test:net3.0004:none
rd.neednet=1 rd.neednet=1
root=nfs:192.168.50.1:/nfs/client bootdev=ens3 root=nfs:192.168.50.1:/nfs/client bootdev=net1
" \ " \
"$EXPECT" \ "$EXPECT" \
|| return 1 || return 1


if [[ $NM ]]; then 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 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 fi


client_test "Multiple Bonds" \ client_test "Multiple Bonds" \
"yes" \ "yes" \
" "
bond=bond0:ens3,ens4 bond=bond0:net1,net2:miimon=100
bond=bond1:ens6,ens7 bond=bond1:net4,net5:miimon=100
ip=bond0:dhcp ip=bond0:dhcp
ip=bond1:dhcp ip=bond1:dhcp
rd.neednet=1 rd.neednet=1
@ -178,14 +186,14 @@ root=nfs:192.168.50.1:/nfs/client bootdev=bond0
if [[ $NM ]]; then if [[ $NM ]]; then
EXPECT='br0 br1 /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-* EOF ' EXPECT='br0 br1 /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-* EOF '
else 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 fi


client_test "Multiple Bridges" \ client_test "Multiple Bridges" \
"no" \ "no" \
" "
bridge=br0:ens3,ens4 bridge=br0:net1,net2
bridge=br1:ens6,ens7 bridge=br1:net4,net5
ip=br0:dhcp ip=br0:dhcp
ip=br1:dhcp ip=br1:dhcp
rd.neednet=1 rd.neednet=1
@ -193,6 +201,7 @@ root=nfs:192.168.50.1:/nfs/client bootdev=br0
" \ " \
"$EXPECT" \ "$EXPECT" \
|| return 1 || return 1

kill_server kill_server
return 0 return 0
} }
@ -343,30 +352,37 @@ test_setup() {
# Make an overlay with needed tools for the test harness # Make an overlay with needed tools for the test harness
( (
# shellcheck disable=SC2031 # shellcheck disable=SC2031
# shellcheck disable=SC2030
export initdir="$TESTDIR"/overlay export initdir="$TESTDIR"/overlay
# shellcheck disable=SC1090 # shellcheck disable=SC1090
. "$basedir"/dracut-init.sh . "$basedir"/dracut-init.sh
inst_multiple poweroff shutdown inst_multiple poweroff shutdown
inst_hook emergency 000 ./hard-off.sh 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 # Make client's dracut image
"$basedir"/dracut.sh -l -i "$TESTDIR"/overlay / \ "$basedir"/dracut.sh -l -i "$TESTDIR"/overlay / \
--no-early-microcode \ --no-early-microcode \
-o "plymouth ${OMIT_NETWORK}" \ -o "plymouth ${OMIT_NETWORK}" \
-a "debug ${USE_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 \ --no-hostonly-cmdline -N \
-f "$TESTDIR"/initramfs.testing "$KVERSION" || return 1 -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() { kill_server() {

6
test/TEST-60-BONDBRIDGEVLANIFCFG/wait-if-server.sh

@ -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
Loading…
Cancel
Save