testsuite: refactor qemu options

- refactor common qemu options
- fix the ens[0-9] interface shift
- add split network-[legacy|network] tests
master
Harald Hoyer 2020-02-28 08:52:59 +01:00
parent 4b60a34715
commit a3f73298f2
42 changed files with 356 additions and 293 deletions

View File

@ -17,7 +17,30 @@ jobs:
timeout-minutes: 30 timeout-minutes: 30
strategy: strategy:
matrix: matrix:
test: [ "01", "02", "03", "04", "10", "11", "12", "13", "14", "15", "17", "20", "30", "31", "40", "50", "60" ] test: [
"01",
"02",
"03",
"04",
"10",
"11",
"12",
"13",
"14",
"15",
"17",
"20",
"30",
"31",
"35",
"36",
"40",
"41",
"50",
"51",
"60",
"61"
]
fail-fast: false fail-fast: false
steps: steps:
- name: "Checkout Repository" - name: "Checkout Repository"

View File

@ -17,7 +17,31 @@ jobs:
timeout-minutes: 30 timeout-minutes: 30
strategy: strategy:
matrix: matrix:
test: [ "01", "02", "03", "04", "10", "11", "12", "13", "14", "15", "17", "20", "30", "31", "40", "50", "60" ] test: [
"01",
"02",
"03",
"04",
"10",
"11",
"12",
"13",
"14",
"15",
"17",
"20",
"21",
"30",
"31",
"35",
"36",
"40",
"41",
"50",
"51",
"60",
"61"
]
fail-fast: false fail-fast: false
steps: steps:
- name: "Checkout Repository" - name: "Checkout Repository"

View File

@ -9,11 +9,17 @@ env:
- IMAGE=latest TESTS=01 - IMAGE=latest TESTS=01
- IMAGE=latest TESTS=12 - IMAGE=latest TESTS=12
- IMAGE=latest TESTS=20 - IMAGE=latest TESTS=20
- IMAGE=latest TESTS=21
- IMAGE=latest TESTS=50 - IMAGE=latest TESTS=50
- IMAGE=latest TESTS=51
- IMAGE=latest TESTS=30 - IMAGE=latest TESTS=30
- IMAGE=latest TESTS=31 - IMAGE=latest TESTS=31
- IMAGE=latest TESTS=35
- IMAGE=latest TESTS=36
- IMAGE=latest TESTS=40 - IMAGE=latest TESTS=40
- IMAGE=latest TESTS=41
- IMAGE=latest TESTS=60 - IMAGE=latest TESTS=60
- IMAGE=latest TESTS=61
- IMAGE=latest TESTS=99 - IMAGE=latest TESTS=99
- IMAGE=latest TESTS=02 - IMAGE=latest TESTS=02
- IMAGE=latest TESTS=03 - IMAGE=latest TESTS=03

View File

@ -11,10 +11,7 @@ test_run() {
$testdir/run-qemu \ $testdir/run-qemu \
-drive format=raw,index=0,media=disk,file=$TESTDIR/root.ext3 \ -drive format=raw,index=0,media=disk,file=$TESTDIR/root.ext3 \
-drive format=raw,index=1,media=disk,file=$TESTDIR/result \ -drive format=raw,index=1,media=disk,file=$TESTDIR/result \
-m 512M -smp 2 -nographic \
-net none \
-watchdog i6300esb -watchdog-action poweroff \ -watchdog i6300esb -watchdog-action poweroff \
-no-reboot \
-append "panic=1 systemd.crash_reboot root=LABEL=dracut rw systemd.log_level=debug systemd.log_target=console rd.retry=3 rd.debug console=ttyS0,115200n81 rd.shell=0 $DEBUGFAIL" \ -append "panic=1 systemd.crash_reboot root=LABEL=dracut 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 -F -m 1 -q dracut-root-block-success $TESTDIR/result || return 1 grep -F -m 1 -q dracut-root-block-success $TESTDIR/result || return 1
@ -80,7 +77,6 @@ test_setup() {


$testdir/run-qemu \ $testdir/run-qemu \
-drive format=raw,index=0,media=disk,file=$TESTDIR/root.ext3 \ -drive format=raw,index=0,media=disk,file=$TESTDIR/root.ext3 \
-m 512M -smp 2 -nographic -net none \
-append "root=/dev/dracut/root rw rootfstype=ext3 quiet console=ttyS0,115200n81 selinux=0" \ -append "root=/dev/dracut/root rw rootfstype=ext3 quiet console=ttyS0,115200n81 selinux=0" \
-initrd $TESTDIR/initramfs.makeroot || return 1 -initrd $TESTDIR/initramfs.makeroot || return 1
grep -F -m 1 -q dracut-root-block-created $TESTDIR/root.ext3 || return 1 grep -F -m 1 -q dracut-root-block-created $TESTDIR/root.ext3 || return 1

View File

@ -8,9 +8,6 @@ KVERSION="${KVERSION-$(uname -r)}"
test_run() { test_run() {
$testdir/run-qemu \ $testdir/run-qemu \
-drive format=raw,index=0,media=disk,file=$TESTDIR/root.ext3 \ -drive format=raw,index=0,media=disk,file=$TESTDIR/root.ext3 \
-m 512M -smp 2 -nographic \
-net none \
-no-reboot \
-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 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 -initrd $TESTDIR/initramfs.testing
grep -F -m 1 -q dracut-root-block-success $TESTDIR/root.ext3 || return 1 grep -F -m 1 -q dracut-root-block-success $TESTDIR/root.ext3 || return 1
@ -77,7 +74,6 @@ test_setup() {


$testdir/run-qemu \ $testdir/run-qemu \
-drive format=raw,index=0,media=disk,file=$TESTDIR/root.ext3 \ -drive format=raw,index=0,media=disk,file=$TESTDIR/root.ext3 \
-m 512M -smp 2 -nographic -net none \
-append "root=/dev/fakeroot rw rootfstype=ext3 quiet console=ttyS0,115200n81 selinux=0" \ -append "root=/dev/fakeroot rw rootfstype=ext3 quiet console=ttyS0,115200n81 selinux=0" \
-initrd $TESTDIR/initramfs.makeroot || return 1 -initrd $TESTDIR/initramfs.makeroot || return 1
grep -F -m 1 -q dracut-root-block-created $TESTDIR/root.ext3 || return 1 grep -F -m 1 -q dracut-root-block-created $TESTDIR/root.ext3 || return 1

View File

@ -18,10 +18,7 @@ client_run() {
-drive format=raw,index=0,media=disk,file=$TESTDIR/root.btrfs \ -drive format=raw,index=0,media=disk,file=$TESTDIR/root.btrfs \
-drive format=raw,index=1,media=disk,file=$TESTDIR/usr.btrfs \ -drive format=raw,index=1,media=disk,file=$TESTDIR/usr.btrfs \
-drive format=raw,index=2,media=disk,file=$TESTDIR/result \ -drive format=raw,index=2,media=disk,file=$TESTDIR/result \
-m 512M -smp 2 -nographic \
-net none \
-watchdog i6300esb -watchdog-action poweroff \ -watchdog i6300esb -watchdog-action poweroff \
-no-reboot \
-append "panic=1 systemd.crash_reboot root=LABEL=dracut $client_opts quiet rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.debug rd.shell=0 $DEBUGFAIL" \ -append "panic=1 systemd.crash_reboot root=LABEL=dracut $client_opts quiet rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.debug rd.shell=0 $DEBUGFAIL" \
-initrd $TESTDIR/initramfs.testing -initrd $TESTDIR/initramfs.testing


@ -115,7 +112,6 @@ test_setup() {
$testdir/run-qemu \ $testdir/run-qemu \
-drive format=raw,index=0,media=disk,file=$TESTDIR/root.btrfs \ -drive format=raw,index=0,media=disk,file=$TESTDIR/root.btrfs \
-drive format=raw,index=1,media=disk,file=$TESTDIR/usr.btrfs \ -drive format=raw,index=1,media=disk,file=$TESTDIR/usr.btrfs \
-m 512M -smp 2 -nographic -net none \
-append "root=/dev/dracut/root rw rootfstype=btrfs quiet console=ttyS0,115200n81 selinux=0" \ -append "root=/dev/dracut/root rw rootfstype=btrfs quiet console=ttyS0,115200n81 selinux=0" \
-initrd $TESTDIR/initramfs.makeroot || return 1 -initrd $TESTDIR/initramfs.makeroot || return 1
if ! grep -F -m 1 -q dracut-root-block-created $TESTDIR/root.btrfs; then if ! grep -F -m 1 -q dracut-root-block-created $TESTDIR/root.btrfs; then

View File

@ -20,9 +20,6 @@ client_run() {
-drive format=raw,index=0,media=disk,file=$TESTDIR/root.btrfs \ -drive format=raw,index=0,media=disk,file=$TESTDIR/root.btrfs \
-drive format=raw,index=1,media=disk,file=$TESTDIR/usr.btrfs \ -drive format=raw,index=1,media=disk,file=$TESTDIR/usr.btrfs \
-drive format=raw,index=2,media=disk,file=$TESTDIR/result \ -drive format=raw,index=2,media=disk,file=$TESTDIR/result \
-m 512M -smp 2 -nographic \
-net none \
-no-reboot \
-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 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 -initrd $TESTDIR/initramfs.testing


@ -253,7 +250,6 @@ EOF
$testdir/run-qemu \ $testdir/run-qemu \
-drive format=raw,index=0,media=disk,file=$TESTDIR/root.btrfs \ -drive format=raw,index=0,media=disk,file=$TESTDIR/root.btrfs \
-drive format=raw,index=1,media=disk,file=$TESTDIR/usr.btrfs \ -drive format=raw,index=1,media=disk,file=$TESTDIR/usr.btrfs \
-m 512M -smp 2 -nographic -net none \
-append "root=/dev/fakeroot rw rootfstype=btrfs quiet console=ttyS0,115200n81 selinux=0" \ -append "root=/dev/fakeroot rw rootfstype=btrfs quiet console=ttyS0,115200n81 selinux=0" \
-initrd $TESTDIR/initramfs.makeroot || return 1 -initrd $TESTDIR/initramfs.makeroot || return 1
if ! grep -F -m 1 -q dracut-root-block-created $TESTDIR/root.btrfs; then if ! grep -F -m 1 -q dracut-root-block-created $TESTDIR/root.btrfs; then

View File

@ -10,9 +10,6 @@ test_run() {
DISKIMAGE=$TESTDIR/TEST-10-RAID-root.img DISKIMAGE=$TESTDIR/TEST-10-RAID-root.img
$testdir/run-qemu \ $testdir/run-qemu \
-drive format=raw,index=0,media=disk,file=$DISKIMAGE \ -drive format=raw,index=0,media=disk,file=$DISKIMAGE \
-m 512M -smp 2 -nographic \
-net none \
-no-reboot \
-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 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 -initrd $TESTDIR/initramfs.testing
grep -F -m 1 -q dracut-root-block-success $DISKIMAGE || return 1 grep -F -m 1 -q dracut-root-block-success $DISKIMAGE || return 1
@ -77,7 +74,6 @@ test_setup() {
# Invoke KVM and/or QEMU to actually create the target filesystem. # Invoke KVM and/or QEMU to actually create the target filesystem.
$testdir/run-qemu \ $testdir/run-qemu \
-drive format=raw,index=0,media=disk,file=$DISKIMAGE \ -drive format=raw,index=0,media=disk,file=$DISKIMAGE \
-m 512M -smp 2 -nographic -net none \
-append "root=/dev/cannotreach rw rootfstype=ext2 console=ttyS0,115200n81 selinux=0" \ -append "root=/dev/cannotreach rw rootfstype=ext2 console=ttyS0,115200n81 selinux=0" \
-initrd $TESTDIR/initramfs.makeroot || return 1 -initrd $TESTDIR/initramfs.makeroot || return 1
grep -F -m 1 -q dracut-root-block-created $DISKIMAGE || return 1 grep -F -m 1 -q dracut-root-block-created $DISKIMAGE || return 1

View File

@ -9,9 +9,6 @@ KVERSION=${KVERSION-$(uname -r)}
test_run() { test_run() {
$testdir/run-qemu \ $testdir/run-qemu \
-drive format=raw,index=0,media=disk,file=$TESTDIR/root.ext2 \ -drive format=raw,index=0,media=disk,file=$TESTDIR/root.ext2 \
-m 512M -smp 2 -nographic \
-net none \
-no-reboot \
-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 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 -initrd $TESTDIR/initramfs.testing
grep -F -m 1 -q dracut-root-block-success $TESTDIR/root.ext2 || return 1 grep -F -m 1 -q dracut-root-block-success $TESTDIR/root.ext2 || return 1
@ -72,7 +69,7 @@ test_setup() {
-f $TESTDIR/initramfs.makeroot $KVERSION || return 1 -f $TESTDIR/initramfs.makeroot $KVERSION || return 1
rm -rf -- $TESTDIR/overlay rm -rf -- $TESTDIR/overlay
# Invoke KVM and/or QEMU to actually create the target filesystem. # Invoke KVM and/or QEMU to actually create the target filesystem.
$testdir/run-qemu -drive format=raw,index=0,media=disk,file=$TESTDIR/root.ext2 -m 512M -smp 2 -nographic -net none \ $testdir/run-qemu -drive format=raw,index=0,media=disk,file=$TESTDIR/root.ext2 \
-append "root=/dev/fakeroot rw rootfstype=ext2 quiet console=ttyS0,115200n81 selinux=0" \ -append "root=/dev/fakeroot rw rootfstype=ext2 quiet console=ttyS0,115200n81 selinux=0" \
-initrd $TESTDIR/initramfs.makeroot || return 1 -initrd $TESTDIR/initramfs.makeroot || return 1
grep -F -m 1 -q dracut-root-block-created $TESTDIR/root.ext2 || return 1 grep -F -m 1 -q dracut-root-block-created $TESTDIR/root.ext2 || return 1

View File

@ -15,11 +15,9 @@ client_run() {
cp --sparse=always --reflink=auto $TESTDIR/disk3.img $TESTDIR/disk3.img.new cp --sparse=always --reflink=auto $TESTDIR/disk3.img $TESTDIR/disk3.img.new


$testdir/run-qemu \ $testdir/run-qemu \
-drive format=raw,index=0,media=disk,file=$TESTDIR/root.ext2 -m 512M -nographic -smp 2 \ -drive format=raw,index=0,media=disk,file=$TESTDIR/root.ext2 \
-drive format=raw,index=2,media=disk,file=$TESTDIR/disk2.img.new \ -drive format=raw,index=2,media=disk,file=$TESTDIR/disk2.img.new \
-drive format=raw,index=3,media=disk,file=$TESTDIR/disk3.img.new \ -drive format=raw,index=3,media=disk,file=$TESTDIR/disk3.img.new \
-net none \
-no-reboot \
-append "panic=1 systemd.crash_reboot $* systemd.log_target=kmsg loglevel=7 root=LABEL=root rw rd.retry=20 rd.info console=ttyS0,115200n81 log_buf_len=2M selinux=0 rd.debug rd.shell=0 $DEBUGFAIL " \ -append "panic=1 systemd.crash_reboot $* systemd.log_target=kmsg loglevel=7 root=LABEL=root rw rd.retry=20 rd.info console=ttyS0,115200n81 log_buf_len=2M selinux=0 rd.debug rd.shell=0 $DEBUGFAIL " \
-initrd $TESTDIR/initramfs.testing -initrd $TESTDIR/initramfs.testing
if ! grep -F -m 1 -q dracut-root-block-success $TESTDIR/root.ext2; then if ! grep -F -m 1 -q dracut-root-block-success $TESTDIR/root.ext2; then
@ -117,7 +115,6 @@ test_setup() {
-drive format=raw,index=1,media=disk,file=$TESTDIR/disk1.img \ -drive format=raw,index=1,media=disk,file=$TESTDIR/disk1.img \
-drive format=raw,index=2,media=disk,file=$TESTDIR/disk2.img \ -drive format=raw,index=2,media=disk,file=$TESTDIR/disk2.img \
-drive format=raw,index=3,media=disk,file=$TESTDIR/disk3.img \ -drive format=raw,index=3,media=disk,file=$TESTDIR/disk3.img \
-m 512M -smp 2 -nographic -net none \
-append "root=/dev/fakeroot rw rootfstype=ext2 quiet console=ttyS0,115200n81 selinux=0" \ -append "root=/dev/fakeroot rw rootfstype=ext2 quiet console=ttyS0,115200n81 selinux=0" \
-initrd $TESTDIR/initramfs.makeroot || return 1 -initrd $TESTDIR/initramfs.makeroot || return 1



View File

@ -17,9 +17,6 @@ test_run() {
$testdir/run-qemu \ $testdir/run-qemu \
-drive format=raw,index=0,media=disk,file=$TESTDIR/root.ext2 \ -drive format=raw,index=0,media=disk,file=$TESTDIR/root.ext2 \
-drive format=raw,index=1,media=disk,file=$TESTDIR/check-success.img \ -drive format=raw,index=1,media=disk,file=$TESTDIR/check-success.img \
-m 1024M -smp 2 -nographic \
-net none \
-no-reboot \
-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 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 -F -m 1 -q dracut-root-block-success $TESTDIR/check-success.img || return 1 grep -F -m 1 -q dracut-root-block-success $TESTDIR/check-success.img || return 1
@ -31,9 +28,6 @@ test_run() {
$testdir/run-qemu \ $testdir/run-qemu \
-drive format=raw,index=0,media=disk,file=$TESTDIR/root.ext2 \ -drive format=raw,index=0,media=disk,file=$TESTDIR/root.ext2 \
-drive format=raw,index=1,media=disk,file=$TESTDIR/check-success.img \ -drive format=raw,index=1,media=disk,file=$TESTDIR/check-success.img \
-m 1024M -smp 2 -nographic \
-net none \
-no-reboot \
-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 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 -F -m 1 -q dracut-root-block-success $TESTDIR/check-success.img || return 1 grep -F -m 1 -q dracut-root-block-success $TESTDIR/check-success.img || return 1
@ -45,9 +39,6 @@ test_run() {
$testdir/run-qemu \ $testdir/run-qemu \
-drive format=raw,index=0,media=disk,file=$TESTDIR/root.ext2 \ -drive format=raw,index=0,media=disk,file=$TESTDIR/root.ext2 \
-drive format=raw,index=1,media=disk,file=$TESTDIR/check-success.img \ -drive format=raw,index=1,media=disk,file=$TESTDIR/check-success.img \
-m 1024M -smp 2 -nographic \
-net none \
-no-reboot \
-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 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 -F -m 1 -q dracut-root-block-success $TESTDIR/check-success.img && return 1 grep -F -m 1 -q dracut-root-block-success $TESTDIR/check-success.img && return 1
@ -111,7 +102,7 @@ test_setup() {
-f $TESTDIR/initramfs.makeroot $KVERSION || return 1 -f $TESTDIR/initramfs.makeroot $KVERSION || return 1
rm -rf -- $TESTDIR/overlay rm -rf -- $TESTDIR/overlay
# Invoke KVM and/or QEMU to actually create the target filesystem. # Invoke KVM and/or QEMU to actually create the target filesystem.
$testdir/run-qemu -drive format=raw,index=0,media=disk,file=$TESTDIR/root.ext2 -m 512M -smp 2 -nographic -net none \ $testdir/run-qemu -drive format=raw,index=0,media=disk,file=$TESTDIR/root.ext2 \
-append "root=/dev/fakeroot rw rootfstype=ext2 quiet console=ttyS0,115200n81 selinux=0" \ -append "root=/dev/fakeroot rw rootfstype=ext2 quiet console=ttyS0,115200n81 selinux=0" \
-initrd $TESTDIR/initramfs.makeroot || return 1 -initrd $TESTDIR/initramfs.makeroot || return 1
grep -F -m 1 -q dracut-root-block-created $TESTDIR/root.ext2 || return 1 grep -F -m 1 -q dracut-root-block-created $TESTDIR/root.ext2 || return 1

View File

@ -13,9 +13,6 @@ client_run() {
-drive format=raw,index=0,media=disk,file=$TESTDIR/root.ext2 \ -drive format=raw,index=0,media=disk,file=$TESTDIR/root.ext2 \
-drive format=raw,index=1,media=disk,file=$TESTDIR/disk1 \ -drive format=raw,index=1,media=disk,file=$TESTDIR/disk1 \
-drive format=raw,index=2,media=disk,file=$TESTDIR/disk2 \ -drive format=raw,index=2,media=disk,file=$TESTDIR/disk2 \
-m 512M -smp 2 -nographic \
-net none \
-no-reboot \
-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 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 -initrd $TESTDIR/initramfs.testing
if ! grep -F -m 1 -q dracut-root-block-success $TESTDIR/root.ext2; then if ! grep -F -m 1 -q dracut-root-block-success $TESTDIR/root.ext2; then
@ -109,7 +106,6 @@ test_setup() {
-drive format=raw,index=0,media=disk,file=$TESTDIR/root.ext2 \ -drive format=raw,index=0,media=disk,file=$TESTDIR/root.ext2 \
-drive format=raw,index=1,media=disk,file=$TESTDIR/disk1 \ -drive format=raw,index=1,media=disk,file=$TESTDIR/disk1 \
-drive format=raw,index=2,media=disk,file=$TESTDIR/disk2 \ -drive format=raw,index=2,media=disk,file=$TESTDIR/disk2 \
-m 512M -nographic -net none \
-append "root=/dev/dracut/root rw rootfstype=ext2 quiet console=ttyS0,115200n81 selinux=0" \ -append "root=/dev/dracut/root rw rootfstype=ext2 quiet console=ttyS0,115200n81 selinux=0" \
-initrd $TESTDIR/initramfs.makeroot || return 1 -initrd $TESTDIR/initramfs.makeroot || return 1
grep -F -m 1 -q dracut-root-block-created $TESTDIR/root.ext2 || return 1 grep -F -m 1 -q dracut-root-block-created $TESTDIR/root.ext2 || return 1

View File

@ -12,9 +12,6 @@ test_run() {
$testdir/run-qemu \ $testdir/run-qemu \
-drive format=raw,index=0,media=disk,file=$MARKER_DISKIMAGE \ -drive format=raw,index=0,media=disk,file=$MARKER_DISKIMAGE \
-drive format=raw,index=1,media=disk,file=$DISKIMAGE \ -drive format=raw,index=1,media=disk,file=$DISKIMAGE \
-m 512M -smp 2 -nographic \
-net none \
-no-reboot \
-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 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 -F -m 1 -q dracut-root-block-success $MARKER_DISKIMAGE || return 1 grep -F -m 1 -q dracut-root-block-success $MARKER_DISKIMAGE || return 1
@ -81,7 +78,6 @@ test_setup() {
# Invoke KVM and/or QEMU to actually create the target filesystem. # Invoke KVM and/or QEMU to actually create the target filesystem.
$testdir/run-qemu \ $testdir/run-qemu \
-drive format=raw,index=0,media=disk,file=$DISKIMAGE \ -drive format=raw,index=0,media=disk,file=$DISKIMAGE \
-m 512M -smp 2 -nographic -net none \
-append "root=/dev/fakeroot rw quiet console=ttyS0,115200n81 selinux=0" \ -append "root=/dev/fakeroot rw quiet console=ttyS0,115200n81 selinux=0" \
-initrd $TESTDIR/initramfs.makeroot || return 1 -initrd $TESTDIR/initramfs.makeroot || return 1



View File

@ -22,10 +22,6 @@ test_run() {
-boot order=d \ -boot order=d \
-drive format=raw,bps=1000000,index=0,media=disk,file="$TESTDIR"/livecd.iso \ -drive format=raw,bps=1000000,index=0,media=disk,file="$TESTDIR"/livecd.iso \
-drive format=raw,index=1,media=disk,file="$TESTDIR"/root.img \ -drive format=raw,index=1,media=disk,file="$TESTDIR"/root.img \
-m 512M -smp 2 \
-nographic \
-net none \
-no-reboot \
-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 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



View File

@ -9,9 +9,6 @@ KVERSION=${KVERSION-$(uname -r)}
test_run() { test_run() {
$testdir/run-qemu \ $testdir/run-qemu \
-drive format=raw,index=0,media=disk,file=$TESTDIR/root.ext2 \ -drive format=raw,index=0,media=disk,file=$TESTDIR/root.ext2 \
-m 512M -smp 2 -nographic \
-net none \
-no-reboot \
-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 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 -initrd $TESTDIR/initramfs.testing
grep -F -m 1 -q dracut-root-block-success $TESTDIR/root.ext2 || return 1 grep -F -m 1 -q dracut-root-block-success $TESTDIR/root.ext2 || return 1
@ -72,7 +69,7 @@ test_setup() {
-f $TESTDIR/initramfs.makeroot $KVERSION || return 1 -f $TESTDIR/initramfs.makeroot $KVERSION || return 1
rm -rf -- $TESTDIR/overlay rm -rf -- $TESTDIR/overlay
# Invoke KVM and/or QEMU to actually create the target filesystem. # Invoke KVM and/or QEMU to actually create the target filesystem.
$testdir/run-qemu -drive format=raw,index=0,media=disk,file=$TESTDIR/root.ext2 -m 512M -smp 2 -nographic -net none \ $testdir/run-qemu -drive format=raw,index=0,media=disk,file=$TESTDIR/root.ext2 \
-append "root=/dev/fakeroot rw rootfstype=ext2 quiet console=ttyS0,115200n81 selinux=0" \ -append "root=/dev/fakeroot rw rootfstype=ext2 quiet console=ttyS0,115200n81 selinux=0" \
-initrd $TESTDIR/initramfs.makeroot || return 1 -initrd $TESTDIR/initramfs.makeroot || return 1
grep -F -m 1 -q dracut-root-block-created $TESTDIR/root.ext2 || return 1 grep -F -m 1 -q dracut-root-block-created $TESTDIR/root.ext2 || return 1

View File

@ -54,15 +54,15 @@ linkup() {
&& wait_for_if_up $1 2>/dev/null && wait_for_if_up $1 2>/dev/null
} }


wait_for_if_link eth0 ens3 wait_for_if_link eth0 ens2


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 ens3 ip link set dev eth0 name ens2
ip addr add 192.168.50.1/24 dev ens3 ip addr add 192.168.50.1/24 dev ens2
ip addr add 192.168.50.2/24 dev ens3 ip addr add 192.168.50.2/24 dev ens2
ip addr add 192.168.50.3/24 dev ens3 ip addr add 192.168.50.3/24 dev ens2
linkup ens3 linkup ens2


echo > /dev/watchdog echo > /dev/watchdog
modprobe af_packet modprobe af_packet

View File

@ -1,5 +1,14 @@
#!/bin/bash #!/bin/bash
TEST_DESCRIPTION="root filesystem on NFS"
if [[ $NM ]]; then
USE_NETWORK="network-manager"
OMIT_NETWORK="network-legacy"
else
USE_NETWORK="network-legacy"
OMIT_NETWORK="network-manager"
fi

TEST_DESCRIPTION="root filesystem on NFS with $USE_NETWORK"


KVERSION=${KVERSION-$(uname -r)} KVERSION=${KVERSION-$(uname -r)}


@ -17,14 +26,11 @@ run_server() {
fsck -a $TESTDIR/server.ext3 || return 1 fsck -a $TESTDIR/server.ext3 || return 1
$testdir/run-qemu \ $testdir/run-qemu \
-drive format=raw,index=0,media=disk,file=$TESTDIR/server.ext3 \ -drive format=raw,index=0,media=disk,file=$TESTDIR/server.ext3 \
-m 512M -smp 2 \
-display none \
-net socket,listen=127.0.0.1:12320 \ -net socket,listen=127.0.0.1:12320 \
-net nic,macaddr=52:54:00:12:34:56,model=e1000 \ -net nic,macaddr=52:54:00:12:34:56,model=e1000 \
${SERIAL:+-serial "$SERIAL"} \ ${SERIAL:+-serial "$SERIAL"} \
${SERIAL:--serial file:"$TESTDIR"/server.log} \ ${SERIAL:--serial file:"$TESTDIR"/server.log} \
-watchdog i6300esb -watchdog-action poweroff \ -watchdog i6300esb -watchdog-action poweroff \
-no-reboot \
-append "panic=1 quiet root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0" \ -append "panic=1 quiet root=/dev/sda 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
@ -34,9 +40,9 @@ run_server() {
tty -s && stty sane tty -s && stty sane


if ! [[ $SERIAL ]]; then if ! [[ $SERIAL ]]; then
echo "Waiting for the server to startup"
while : ; do while : ; do
grep Serving "$TESTDIR"/server.log && break grep Serving "$TESTDIR"/server.log && break
echo "Waiting for the server to startup"
sleep 1 sleep 1
done done
else else
@ -56,19 +62,17 @@ client_test() {
echo "CLIENT TEST START: $test_name" echo "CLIENT TEST START: $test_name"


# Need this so kvm-qemu will boot (needs non-/dev/zero local disk) # Need this so kvm-qemu will boot (needs non-/dev/zero local disk)
if ! dd if=/dev/zero of=$TESTDIR/client.img bs=1M count=1; then if ! dd if=/dev/zero of=$TESTDIR/client.img bs=1M count=1 &>/dev/null; then
echo "Unable to make client sda image" 1>&2 echo "Unable to make client sda image" 1>&2
return 1 return 1
fi fi


$testdir/run-qemu \ $testdir/run-qemu \
-drive format=raw,index=0,media=disk,file=$TESTDIR/client.img \ -drive format=raw,index=0,media=disk,file=$TESTDIR/client.img \
-m 512M -smp 2 -nographic \
-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 \
-no-reboot \ -append "rd.net.timeout.dhcp=3 panic=1 systemd.crash_reboot rd.shell=0 $cmdline $DEBUGFAIL rd.retry=10 quiet ro console=ttyS0,115200n81 selinux=0" \
-append "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


if [[ $? -ne 0 ]] || ! grep -F -m 1 -q nfs-OK $TESTDIR/client.img; then if [[ $? -ne 0 ]] || ! grep -F -m 1 -q nfs-OK $TESTDIR/client.img; then
@ -163,7 +167,7 @@ test_nfsv3() {
52:54:00:12:34:05 "root=dhcp" 192.168.50.1 wsize=4096 || return 1 52:54:00:12:34:05 "root=dhcp" 192.168.50.1 wsize=4096 || return 1


client_test "NFSv3 Bridge Customized root=dhcp DHCP path,options" \ client_test "NFSv3 Bridge Customized root=dhcp DHCP path,options" \
52:54:00:12:34:05 "root=dhcp bridge=foobr0:ens3" 192.168.50.1 wsize=4096 || return 1 52:54:00:12:34:05 "root=dhcp bridge=foobr0:ens2" 192.168.50.1 wsize=4096 || return 1


client_test "NFSv3 root=dhcp DHCP IP:path,options" \ client_test "NFSv3 root=dhcp DHCP IP:path,options" \
52:54:00:12:34:06 "root=dhcp" 192.168.50.2 wsize=4096 || return 1 52:54:00:12:34:06 "root=dhcp" 192.168.50.2 wsize=4096 || return 1
@ -365,8 +369,8 @@ test_setup() {


# Make client's dracut image # Make client's dracut image
$basedir/dracut.sh -l -i $TESTDIR/overlay / \ $basedir/dracut.sh -l -i $TESTDIR/overlay / \
-o "plymouth dash" \ -o "plymouth dash ${OMIT_NETWORK}" \
-a "debug watchdog" \ -a "debug watchdog ${USE_NETWORK}" \
-d "af_packet piix ide-gd_mod ata_piix sd_mod e1000 nfs sunrpc i6300esb" \ -d "af_packet piix ide-gd_mod ata_piix sd_mod e1000 nfs sunrpc i6300esb" \
--no-hostonly-cmdline -N \ --no-hostonly-cmdline -N \
-f $TESTDIR/initramfs.testing $KVERSION || return 1 -f $TESTDIR/initramfs.testing $KVERSION || return 1

View File

@ -0,0 +1,12 @@
.PHONY: all setup clean run

BASETEST=../TEST-20-NFS

all:
@$(MAKE) NM=1 -s --no-print-directory -C $(BASETEST) all
setup:
@$(MAKE) NM=1 -s --no-print-directory -C $(BASETEST) setup
clean:
@$(MAKE) NM=1 -s --no-print-directory -C $(BASETEST) clean
run:
@$(MAKE) NM=1 -s --no-print-directory -C $(BASETEST) run

View File

@ -24,17 +24,17 @@ wait_for_if_link() {
return 1 return 1
} }


wait_for_if_link eth0 ens3 wait_for_if_link eth0 ens2
wait_for_if_link eth1 ens4 wait_for_if_link eth1 ens3


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 ens3 ip link set dev eth0 name ens2
ip addr add 192.168.50.1/24 dev ens3 ip addr add 192.168.50.1/24 dev ens2
ip link set ens2 up
ip link set dev eth1 name ens3
ip addr add 192.168.51.1/24 dev ens3
ip link set ens3 up ip link set ens3 up
ip link set dev eth1 name ens4
ip addr add 192.168.51.1/24 dev ens4
ip link set ens4 up
>/var/lib/dhcpd/dhcpd.leases >/var/lib/dhcpd/dhcpd.leases
chmod 777 /var/lib/dhcpd/dhcpd.leases chmod 777 /var/lib/dhcpd/dhcpd.leases
dhcpd -d -cf /etc/dhcpd.conf -lf /var/lib/dhcpd/dhcpd.leases & dhcpd -d -cf /etc/dhcpd.conf -lf /var/lib/dhcpd/dhcpd.leases &

View File

@ -1,5 +1,14 @@
#!/bin/bash #!/bin/bash
TEST_DESCRIPTION="root filesystem over iSCSI"
if [[ $NM ]]; then
USE_NETWORK="network-manager"
OMIT_NETWORK="network-legacy"
else
USE_NETWORK="network-legacy"
OMIT_NETWORK="network-manager"
fi

TEST_DESCRIPTION="root filesystem over iSCSI with $USE_NETWORK"


KVERSION=${KVERSION-$(uname -r)} KVERSION=${KVERSION-$(uname -r)}


@ -18,14 +27,11 @@ run_server() {
-drive format=raw,index=1,media=disk,file=$TESTDIR/root.ext3 \ -drive format=raw,index=1,media=disk,file=$TESTDIR/root.ext3 \
-drive format=raw,index=2,media=disk,file=$TESTDIR/iscsidisk2.img \ -drive format=raw,index=2,media=disk,file=$TESTDIR/iscsidisk2.img \
-drive format=raw,index=3,media=disk,file=$TESTDIR/iscsidisk3.img \ -drive format=raw,index=3,media=disk,file=$TESTDIR/iscsidisk3.img \
-m 512M -smp 2 \
-display none \
${SERIAL:+-serial "$SERIAL"} \ ${SERIAL:+-serial "$SERIAL"} \
${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 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 \
-no-reboot \
-append "panic=1 quiet root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 $SERVER_DEBUG" \ -append "panic=1 quiet root=/dev/sda 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
@ -55,11 +61,9 @@ run_client() {


$testdir/run-qemu \ $testdir/run-qemu \
-drive format=raw,index=0,media=disk,file=$TESTDIR/client.img \ -drive format=raw,index=0,media=disk,file=$TESTDIR/client.img \
-m 512M -smp 2 -nographic \
-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:12330 \ -net socket,connect=127.0.0.1:12330 \
-no-reboot \
-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 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
@ -76,13 +80,13 @@ do_test_run() {
initiator=$(iscsi-iname) initiator=$(iscsi-iname)


run_client "root=dhcp" \ run_client "root=dhcp" \
"root=/dev/root netroot=dhcp ip=ens3:dhcp" \ "root=/dev/root netroot=dhcp ip=ens2:dhcp" \
"rd.iscsi.initiator=$initiator" \ "rd.iscsi.initiator=$initiator" \
|| return 1 || return 1


run_client "netroot=iscsi target0"\ run_client "netroot=iscsi target0"\
"root=LABEL=singleroot netroot=iscsi:192.168.50.1::::iqn.2009-06.dracut:target0" \ "root=LABEL=singleroot netroot=iscsi:192.168.50.1::::iqn.2009-06.dracut:target0" \
"ip=192.168.50.101::192.168.50.1:255.255.255.0:iscsi-1:ens3:off" \ "ip=192.168.50.101::192.168.50.1:255.255.255.0:iscsi-1:ens2:off" \
"rd.iscsi.initiator=$initiator" \ "rd.iscsi.initiator=$initiator" \
|| return 1 || return 1


@ -131,6 +135,7 @@ test_setup() {


kernel=$KVERSION kernel=$KVERSION
# Create what will eventually be our root filesystem onto an overlay # Create what will eventually be our root filesystem onto an overlay
rm -rf -- $TESTDIR/overlay
( (
export initdir=$TESTDIR/overlay/source export initdir=$TESTDIR/overlay/source
. $basedir/dracut-init.sh . $basedir/dracut-init.sh
@ -187,25 +192,10 @@ test_setup() {
-drive format=raw,index=1,media=disk,file=$TESTDIR/client.img \ -drive format=raw,index=1,media=disk,file=$TESTDIR/client.img \
-drive format=raw,index=2,media=disk,file=$TESTDIR/iscsidisk2.img \ -drive format=raw,index=2,media=disk,file=$TESTDIR/iscsidisk2.img \
-drive format=raw,index=3,media=disk,file=$TESTDIR/iscsidisk3.img \ -drive format=raw,index=3,media=disk,file=$TESTDIR/iscsidisk3.img \
-smp 2 -m 512M -nographic -net none \
-append "root=/dev/fakeroot rw rootfstype=ext3 quiet console=ttyS0,115200n81 selinux=0" \ -append "root=/dev/fakeroot rw rootfstype=ext3 quiet console=ttyS0,115200n81 selinux=0" \
-initrd $TESTDIR/initramfs.makeroot || return 1 -initrd $TESTDIR/initramfs.makeroot || return 1
grep -F -m 1 -q dracut-root-block-created $TESTDIR/client.img || return 1 grep -F -m 1 -q dracut-root-block-created $TESTDIR/client.img || return 1
rm -- $TESTDIR/client.img rm -- $TESTDIR/client.img
(
export initdir=$TESTDIR/overlay
. $basedir/dracut-init.sh
inst_multiple poweroff shutdown
inst_hook shutdown-emergency 000 ./hard-off.sh
inst_hook emergency 000 ./hard-off.sh
inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
)
$basedir/dracut.sh -l -i $TESTDIR/overlay / \
-o "dash plymouth dmraid nfs" \
-a "debug" \
-d "af_packet piix ide-gd_mod ata_piix ext3 sd_mod" \
--no-hostonly-cmdline -N \
-f $TESTDIR/initramfs.testing $KVERSION || return 1


# Make server root # Make server root
dd if=/dev/null of=$TESTDIR/server.ext3 bs=1M seek=60 dd if=/dev/null of=$TESTDIR/server.ext3 bs=1M seek=60
@ -214,6 +204,7 @@ test_setup() {
mount -o loop $TESTDIR/server.ext3 $TESTDIR/mnt mount -o loop $TESTDIR/server.ext3 $TESTDIR/mnt


kernel=$KVERSION kernel=$KVERSION
rm -rf -- $TESTDIR/overlay
( (
export initdir=$TESTDIR/mnt export initdir=$TESTDIR/mnt
. $basedir/dracut-init.sh . $basedir/dracut-init.sh
@ -256,6 +247,25 @@ test_setup() {
-d "af_packet piix ide-gd_mod ata_piix ext3 sd_mod e1000 drbg" \ -d "af_packet piix ide-gd_mod ata_piix ext3 sd_mod e1000 drbg" \
--no-hostonly-cmdline -N \ --no-hostonly-cmdline -N \
-f $TESTDIR/initramfs.server $KVERSION || return 1 -f $TESTDIR/initramfs.server $KVERSION || return 1
rm -rf -- $TESTDIR/overlay

# Make client dracut image
rm -rf -- $TESTDIR/overlay
(
export initdir=$TESTDIR/overlay
. $basedir/dracut-init.sh
inst_multiple poweroff shutdown
inst_hook shutdown-emergency 000 ./hard-off.sh
inst_hook emergency 000 ./hard-off.sh
inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
)
$basedir/dracut.sh -l -i $TESTDIR/overlay / \
-o "dash plymouth dmraid nfs ${OMIT_NETWORK}" \
-a "debug ${USE_NETWORK}" \
-d "af_packet piix ide-gd_mod ata_piix ext3 sd_mod" \
--no-hostonly-cmdline -N \
-f $TESTDIR/initramfs.testing $KVERSION || return 1
rm -rf -- $TESTDIR/overlay


} }



View File

@ -0,0 +1,12 @@
.PHONY: all setup clean run

BASETEST=../TEST-30-ISCSI

all:
@$(MAKE) NM=1 -s --no-print-directory -C $(BASETEST) all
setup:
@$(MAKE) NM=1 -s --no-print-directory -C $(BASETEST) setup
clean:
@$(MAKE) NM=1 -s --no-print-directory -C $(BASETEST) clean
run:
@$(MAKE) NM=1 -s --no-print-directory -C $(BASETEST) run

View File

@ -53,17 +53,17 @@ linkup() {
&& wait_for_if_up $1 2>/dev/null && wait_for_if_up $1 2>/dev/null
} }


wait_for_if_link eth0 ens3 wait_for_if_link eth0 ens2
wait_for_if_link eth1 ens4 wait_for_if_link eth1 ens3


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 ens3 ip link set dev eth0 name ens2
ip addr add 192.168.50.1/24 dev ens3 ip addr add 192.168.50.1/24 dev ens2
linkup ens2
ip link set dev eth1 name ens3
ip addr add 192.168.51.1/24 dev ens3
linkup ens3 linkup ens3
ip link set dev eth1 name ens4
ip addr add 192.168.51.1/24 dev ens4
linkup ens4


>/var/lib/dhcpd/dhcpd.leases >/var/lib/dhcpd/dhcpd.leases
chmod 777 /var/lib/dhcpd/dhcpd.leases chmod 777 /var/lib/dhcpd/dhcpd.leases

View File

@ -1,5 +1,14 @@
#!/bin/bash #!/bin/bash
TEST_DESCRIPTION="root filesystem over multiple iSCSI"
if [[ $NM ]]; then
USE_NETWORK="network-manager"
OMIT_NETWORK="network-legacy"
else
USE_NETWORK="network-legacy"
OMIT_NETWORK="network-manager"
fi

TEST_DESCRIPTION="root filesystem over multiple iSCSI with $USE_NETWORK"


KVERSION=${KVERSION-$(uname -r)} KVERSION=${KVERSION-$(uname -r)}


@ -18,14 +27,11 @@ run_server() {
-drive format=raw,index=1,media=disk,file=$TESTDIR/root.ext3 \ -drive format=raw,index=1,media=disk,file=$TESTDIR/root.ext3 \
-drive format=raw,index=2,media=disk,file=$TESTDIR/iscsidisk2.img \ -drive format=raw,index=2,media=disk,file=$TESTDIR/iscsidisk2.img \
-drive format=raw,index=3,media=disk,file=$TESTDIR/iscsidisk3.img \ -drive format=raw,index=3,media=disk,file=$TESTDIR/iscsidisk3.img \
-m 512M -smp 2 \
-display none \
${SERIAL:+-serial "$SERIAL"} \ ${SERIAL:+-serial "$SERIAL"} \
${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 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 \
-no-reboot \
-append "panic=1 systemd.crash_reboot root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 $SERVER_DEBUG" \ -append "panic=1 systemd.crash_reboot root=/dev/sda 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
@ -35,9 +41,10 @@ run_server() {
tty -s && stty sane tty -s && stty sane


if ! [[ $SERIAL ]]; then if ! [[ $SERIAL ]]; then
echo "Waiting for the server to startup"
while : ; do while : ; do
grep Serving "$TESTDIR"/server.log && break grep Serving "$TESTDIR"/server.log && break
echo "Waiting for the server to startup"
tail "$TESTDIR"/server.log
sleep 1 sleep 1
done done
else else
@ -54,11 +61,9 @@ run_client() {


$testdir/run-qemu \ $testdir/run-qemu \
-drive format=raw,index=0,media=disk,file=$TESTDIR/client.img \ -drive format=raw,index=0,media=disk,file=$TESTDIR/client.img \
-m 512M -smp 2 -nographic \
-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 \
-no-reboot \
-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 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 -F -m 1 -q iscsi-OK $TESTDIR/client.img; then if ! grep -F -m 1 -q iscsi-OK $TESTDIR/client.img; then
@ -74,8 +79,8 @@ do_test_run() {
initiator=$(iscsi-iname) initiator=$(iscsi-iname)
run_client "netroot=iscsi target1 target2" \ run_client "netroot=iscsi target1 target2" \
"root=LABEL=sysroot" \ "root=LABEL=sysroot" \
"ip=192.168.50.101:::255.255.255.0::ens3:off" \ "ip=192.168.50.101:::255.255.255.0::ens2:off" \
"ip=192.168.51.101:::255.255.255.0::ens4:off" \ "ip=192.168.51.101:::255.255.255.0::ens3:off" \
"netroot=iscsi:192.168.51.1::::iqn.2009-06.dracut:target1" \ "netroot=iscsi:192.168.51.1::::iqn.2009-06.dracut:target1" \
"netroot=iscsi:192.168.50.1::::iqn.2009-06.dracut:target2" \ "netroot=iscsi:192.168.50.1::::iqn.2009-06.dracut:target2" \
"rd.iscsi.initiator=$initiator" \ "rd.iscsi.initiator=$initiator" \
@ -83,8 +88,8 @@ do_test_run() {


run_client "netroot=iscsi target1 target2 rd.iscsi.waitnet=0" \ run_client "netroot=iscsi target1 target2 rd.iscsi.waitnet=0" \
"root=LABEL=sysroot" \ "root=LABEL=sysroot" \
"ip=192.168.50.101:::255.255.255.0::ens3:off" \ "ip=192.168.50.101:::255.255.255.0::ens2:off" \
"ip=192.168.51.101:::255.255.255.0::ens4:off" \ "ip=192.168.51.101:::255.255.255.0::ens3:off" \
"netroot=iscsi:192.168.51.1::::iqn.2009-06.dracut:target1" \ "netroot=iscsi:192.168.51.1::::iqn.2009-06.dracut:target1" \
"netroot=iscsi:192.168.50.1::::iqn.2009-06.dracut:target2" \ "netroot=iscsi:192.168.50.1::::iqn.2009-06.dracut:target2" \
"rd.iscsi.firmware" \ "rd.iscsi.firmware" \
@ -94,8 +99,8 @@ do_test_run() {


run_client "netroot=iscsi target1 target2 rd.iscsi.waitnet=0 rd.iscsi.testroute=0" \ run_client "netroot=iscsi target1 target2 rd.iscsi.waitnet=0 rd.iscsi.testroute=0" \
"root=LABEL=sysroot" \ "root=LABEL=sysroot" \
"ip=192.168.50.101:::255.255.255.0::ens3:off" \ "ip=192.168.50.101:::255.255.255.0::ens2:off" \
"ip=192.168.51.101:::255.255.255.0::ens4:off" \ "ip=192.168.51.101:::255.255.255.0::ens3:off" \
"netroot=iscsi:192.168.51.1::::iqn.2009-06.dracut:target1" \ "netroot=iscsi:192.168.51.1::::iqn.2009-06.dracut:target1" \
"netroot=iscsi:192.168.50.1::::iqn.2009-06.dracut:target2" \ "netroot=iscsi:192.168.50.1::::iqn.2009-06.dracut:target2" \
"rd.iscsi.firmware" \ "rd.iscsi.firmware" \
@ -105,8 +110,8 @@ do_test_run() {


run_client "netroot=iscsi target1 target2 rd.iscsi.waitnet=0 rd.iscsi.testroute=0 default GW" \ run_client "netroot=iscsi target1 target2 rd.iscsi.waitnet=0 rd.iscsi.testroute=0 default GW" \
"root=LABEL=sysroot" \ "root=LABEL=sysroot" \
"ip=192.168.50.101::192.168.50.1:255.255.255.0::ens3:off" \ "ip=192.168.50.101::192.168.50.1:255.255.255.0::ens2:off" \
"ip=192.168.51.101::192.168.51.1:255.255.255.0::ens4:off" \ "ip=192.168.51.101::192.168.51.1:255.255.255.0::ens3:off" \
"netroot=iscsi:192.168.51.1::::iqn.2009-06.dracut:target1" \ "netroot=iscsi:192.168.51.1::::iqn.2009-06.dracut:target1" \
"netroot=iscsi:192.168.50.1::::iqn.2009-06.dracut:target2" \ "netroot=iscsi:192.168.50.1::::iqn.2009-06.dracut:target2" \
"rd.iscsi.firmware" \ "rd.iscsi.firmware" \
@ -145,6 +150,7 @@ test_setup() {


kernel=$KVERSION kernel=$KVERSION
# Create what will eventually be our root filesystem onto an overlay # Create what will eventually be our root filesystem onto an overlay
rm -rf -- $TESTDIR/overlay
( (
export initdir=$TESTDIR/overlay/source export initdir=$TESTDIR/overlay/source
. $basedir/dracut-init.sh . $basedir/dracut-init.sh
@ -201,25 +207,10 @@ test_setup() {
-drive format=raw,index=1,media=disk,file=$TESTDIR/client.img \ -drive format=raw,index=1,media=disk,file=$TESTDIR/client.img \
-drive format=raw,index=2,media=disk,file=$TESTDIR/iscsidisk2.img \ -drive format=raw,index=2,media=disk,file=$TESTDIR/iscsidisk2.img \
-drive format=raw,index=3,media=disk,file=$TESTDIR/iscsidisk3.img \ -drive format=raw,index=3,media=disk,file=$TESTDIR/iscsidisk3.img \
-smp 2 -m 512M -nographic -net none \
-append "root=/dev/fakeroot rw rootfstype=ext3 quiet console=ttyS0,115200n81 selinux=0" \ -append "root=/dev/fakeroot rw rootfstype=ext3 quiet console=ttyS0,115200n81 selinux=0" \
-initrd $TESTDIR/initramfs.makeroot || return 1 -initrd $TESTDIR/initramfs.makeroot || return 1
grep -F -m 1 -q dracut-root-block-created $TESTDIR/client.img || return 1 grep -F -m 1 -q dracut-root-block-created $TESTDIR/client.img || return 1
rm -- $TESTDIR/client.img rm -- $TESTDIR/client.img
(
export initdir=$TESTDIR/overlay
. $basedir/dracut-init.sh
inst_multiple poweroff shutdown
inst_hook shutdown-emergency 000 ./hard-off.sh
inst_hook emergency 000 ./hard-off.sh
inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
)
$basedir/dracut.sh -l -i $TESTDIR/overlay / \
-o "dash plymouth dmraid nfs" \
-a "debug" \
-d "af_packet piix ide-gd_mod ata_piix ext3 sd_mod" \
--no-hostonly-cmdline -N \
-f $TESTDIR/initramfs.testing $KVERSION || return 1


# Make server root # Make server root
dd if=/dev/null of=$TESTDIR/server.ext3 bs=1M seek=60 dd if=/dev/null of=$TESTDIR/server.ext3 bs=1M seek=60
@ -228,6 +219,7 @@ test_setup() {
mount -o loop $TESTDIR/server.ext3 $TESTDIR/mnt mount -o loop $TESTDIR/server.ext3 $TESTDIR/mnt


kernel=$KVERSION kernel=$KVERSION
rm -rf -- $TESTDIR/overlay
( (
export initdir=$TESTDIR/mnt export initdir=$TESTDIR/mnt
. $basedir/dracut-init.sh . $basedir/dracut-init.sh
@ -271,6 +263,25 @@ test_setup() {
--no-hostonly-cmdline -N \ --no-hostonly-cmdline -N \
-f $TESTDIR/initramfs.server $KVERSION || return 1 -f $TESTDIR/initramfs.server $KVERSION || return 1



# Make client dracut image
rm -rf -- $TESTDIR/overlay
(
export initdir=$TESTDIR/overlay
. $basedir/dracut-init.sh
inst_multiple poweroff shutdown
inst_hook shutdown-emergency 000 ./hard-off.sh
inst_hook emergency 000 ./hard-off.sh
inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
)
$basedir/dracut.sh -l -i $TESTDIR/overlay / \
-o "dash plymouth dmraid nfs ${OMIT_NETWORK}" \
-a "debug ${USE_NETWORK}" \
-d "af_packet piix ide-gd_mod ata_piix ext3 sd_mod" \
--no-hostonly-cmdline -N \
-f $TESTDIR/initramfs.testing $KVERSION || return 1

rm -rf -- $TESTDIR/overlay
} }


test_cleanup() { test_cleanup() {

View File

@ -0,0 +1,12 @@
.PHONY: all setup clean run

BASETEST=../TEST-35-ISCSI-MULTI

all:
@$(MAKE) NM=1 -s --no-print-directory -C $(BASETEST) all
setup:
@$(MAKE) NM=1 -s --no-print-directory -C $(BASETEST) setup
clean:
@$(MAKE) NM=1 -s --no-print-directory -C $(BASETEST) clean
run:
@$(MAKE) NM=1 -s --no-print-directory -C $(BASETEST) run

View File

@ -33,13 +33,10 @@ run_server() {
-drive format=raw,index=0,media=disk,file=$TESTDIR/server.ext2 \ -drive format=raw,index=0,media=disk,file=$TESTDIR/server.ext2 \
-drive format=raw,index=1,media=disk,file=$TESTDIR/nbd.ext2 \ -drive format=raw,index=1,media=disk,file=$TESTDIR/nbd.ext2 \
-drive format=raw,index=2,media=disk,file=$TESTDIR/encrypted.ext2 \ -drive format=raw,index=2,media=disk,file=$TESTDIR/encrypted.ext2 \
-m 512M -smp 2 \
-display none \
-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 \
${SERIAL:+-serial "$SERIAL"} \ ${SERIAL:+-serial "$SERIAL"} \
${SERIAL:--serial file:"$TESTDIR"/server.log} \ ${SERIAL:--serial file:"$TESTDIR"/server.log} \
-no-reboot \
-append "panic=1 systemd.crash_reboot root=/dev/sda rootfstype=ext2 rw quiet console=ttyS0,115200n81 selinux=0" \ -append "panic=1 systemd.crash_reboot root=/dev/sda rootfstype=ext2 rw quiet console=ttyS0,115200n81 selinux=0" \
-initrd $TESTDIR/initramfs.server -pidfile $TESTDIR/server.pid -daemonize || return 1 -initrd $TESTDIR/initramfs.server -pidfile $TESTDIR/server.pid -daemonize || return 1
chmod 644 $TESTDIR/server.pid || return 1 chmod 644 $TESTDIR/server.pid || return 1
@ -80,11 +77,8 @@ client_test() {


$testdir/run-qemu \ $testdir/run-qemu \
-drive format=raw,index=0,media=disk,file=$TESTDIR/flag.img \ -drive format=raw,index=0,media=disk,file=$TESTDIR/flag.img \
-m 512M -smp 2 \
-nographic \
-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 \
-no-reboot \
-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 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


@ -279,8 +273,6 @@ make_encrypted_root() {
$testdir/run-qemu \ $testdir/run-qemu \
-drive format=raw,index=0,media=disk,file=$TESTDIR/flag.img \ -drive format=raw,index=0,media=disk,file=$TESTDIR/flag.img \
-drive format=raw,index=1,media=disk,file=$TESTDIR/encrypted.ext2 \ -drive format=raw,index=1,media=disk,file=$TESTDIR/encrypted.ext2 \
-m 512M -smp 2\
-nographic -net none \
-append "root=/dev/fakeroot rw quiet console=ttyS0,115200n81 selinux=0" \ -append "root=/dev/fakeroot rw quiet console=ttyS0,115200n81 selinux=0" \
-initrd $TESTDIR/initramfs.makeroot || return 1 -initrd $TESTDIR/initramfs.makeroot || return 1
grep -F -m 1 -q dracut-root-block-created $TESTDIR/flag.img || return 1 grep -F -m 1 -q dracut-root-block-created $TESTDIR/flag.img || return 1

View File

@ -0,0 +1,12 @@
.PHONY: all setup clean run

BASETEST=../TEST-20-NFS

all:
@$(MAKE) NM=1 -s --no-print-directory -C $(BASETEST) all
setup:
@$(MAKE) NM=1 -s --no-print-directory -C $(BASETEST) setup
clean:
@$(MAKE) NM=1 -s --no-print-directory -C $(BASETEST) clean
run:
@$(MAKE) NM=1 -s --no-print-directory -C $(BASETEST) run

View File

@ -84,7 +84,7 @@ rpc.nfsd
>/dev/watchdog >/dev/watchdog
rpc.mountd rpc.mountd
>/dev/watchdog >/dev/watchdog
rpc.idmapd rpc.idmapd -S
>/dev/watchdog >/dev/watchdog
exportfs -r exportfs -r
>/dev/watchdog >/dev/watchdog

View File

@ -1,5 +1,14 @@
#!/bin/bash #!/bin/bash
TEST_DESCRIPTION="root filesystem on NFS with multiple nics"
if [[ $NM ]]; then
USE_NETWORK="network-manager"
OMIT_NETWORK="network-legacy"
else
USE_NETWORK="network-legacy"
OMIT_NETWORK="network-manager"
fi

TEST_DESCRIPTION="root filesystem on NFS with multiple nics with $USE_NETWORK"


KVERSION=${KVERSION-$(uname -r)} KVERSION=${KVERSION-$(uname -r)}


@ -15,14 +24,11 @@ run_server() {


$testdir/run-qemu \ $testdir/run-qemu \
-drive format=raw,index=0,media=disk,file="$TESTDIR"/server.ext3 \ -drive format=raw,index=0,media=disk,file="$TESTDIR"/server.ext3 \
-m 512M -smp 2 \
-display none \
-net socket,listen=127.0.0.1:12350 \ -net socket,listen=127.0.0.1:12350 \
-net nic,macaddr=52:54:01:12:34:56,model=e1000 \ -net nic,macaddr=52:54:01:12:34:56,model=e1000 \
${SERIAL:+-serial "$SERIAL"} \ ${SERIAL:+-serial "$SERIAL"} \
${SERIAL:--serial file:"$TESTDIR"/server.log} \ ${SERIAL:--serial file:"$TESTDIR"/server.log} \
-watchdog i6300esb -watchdog-action poweroff \ -watchdog i6300esb -watchdog-action poweroff \
-no-reboot \
-append "panic=1 systemd.crash_reboot loglevel=7 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0" \ -append "panic=1 systemd.crash_reboot loglevel=7 root=/dev/sda 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
@ -33,9 +39,9 @@ run_server() {
tty -s && stty sane tty -s && stty sane


if ! [[ $SERIAL ]]; then if ! [[ $SERIAL ]]; then
echo "Waiting for the server to startup"
while : ; do while : ; do
grep Serving "$TESTDIR"/server.log && break grep Serving "$TESTDIR"/server.log && break
echo "Waiting for the server to startup"
sleep 1 sleep 1
done done
else else
@ -60,7 +66,7 @@ client_test() {
return 1 return 1
fi fi


$testdir/run-qemu -drive format=raw,index=0,media=disk,file="$TESTDIR"/client.img -m 512M -smp 2 -nographic \ $testdir/run-qemu -drive format=raw,index=0,media=disk,file="$TESTDIR"/client.img \
-net socket,connect=127.0.0.1:12350 \ -net socket,connect=127.0.0.1:12350 \
-net nic,macaddr=52:54:00:12:34:$mac1,model=e1000 \ -net nic,macaddr=52:54:00:12:34:$mac1,model=e1000 \
-net nic,macaddr=52:54:00:12:34:$mac2,model=e1000 \ -net nic,macaddr=52:54:00:12:34:$mac2,model=e1000 \
@ -70,8 +76,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 \
-no-reboot \ -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 "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 loglevel=7" \
-initrd "$TESTDIR"/initramfs.testing -initrd "$TESTDIR"/initramfs.testing


{ read OK; read IFACES; } < "$TESTDIR"/client.img { read OK; read IFACES; } < "$TESTDIR"/client.img
@ -122,45 +127,46 @@ test_client() {
client_test "MULTINIC root=nfs BOOTIF=" \ client_test "MULTINIC root=nfs BOOTIF=" \
00 01 02 \ 00 01 02 \
"root=nfs:192.168.50.1:/nfs/client BOOTIF=52-54-00-12-34-00" \ "root=nfs:192.168.50.1:/nfs/client BOOTIF=52-54-00-12-34-00" \
"ens3" || return 1 "ens2" || return 1


client_test "MULTINIC root=nfs BOOTIF= ip=ens4:dhcp" \ client_test "MULTINIC root=nfs BOOTIF= ip=ens4:dhcp" \
00 01 02 \ 00 01 02 \
"root=nfs:192.168.50.1:/nfs/client BOOTIF=52-54-00-12-34-00 ip=ens4:dhcp" \ "root=nfs:192.168.50.1:/nfs/client BOOTIF=52-54-00-12-34-00 ip=ens3:dhcp" \
"ens3 ens4" || return 1 "ens2 ens3" || return 1


# PXE Style BOOTIF= with dhcp root-path # PXE Style BOOTIF= with dhcp root-path
client_test "MULTINIC root=dhcp BOOTIF=" \ client_test "MULTINIC root=dhcp BOOTIF=" \
00 01 02 \ 00 01 02 \
"root=dhcp BOOTIF=52-54-00-12-34-02" \ "root=dhcp BOOTIF=52-54-00-12-34-02" \
"ens5" || return 1 "ens4" || return 1


# Multinic case, where only one nic works # Multinic case, where only one nic works
client_test "MULTINIC root=nfs ip=dhcp" \ client_test "MULTINIC root=nfs ip=dhcp" \
FF 00 FE \ FF 00 FE \
"root=nfs:192.168.50.1:/nfs/client ip=dhcp" \ "root=nfs:192.168.50.1:/nfs/client ip=dhcp" \
"ens4" || return 1 "ens3" || return 1


# Require two interfaces # Require two interfaces
client_test "MULTINIC root=nfs ip=ens4:dhcp ip=ens5:dhcp bootdev=ens4" \ client_test "MULTINIC root=nfs ip=ens3:dhcp ip=ens4:dhcp bootdev=ens3" \
00 01 02 \ 00 01 02 \
"root=nfs:192.168.50.1:/nfs/client ip=ens4:dhcp ip=ens5:dhcp bootdev=ens4" \ "root=nfs:192.168.50.1:/nfs/client ip=ens3:dhcp ip=ens4:dhcp bootdev=ens3" \
"ens4 ens5" || return 1 "ens3 ens4" || return 1


# Require three interfaces with dhcp root-path # Require three interfaces with dhcp root-path
client_test "MULTINIC root=dhcp ip=ens3:dhcp ip=ens4:dhcp ip=ens5:dhcp bootdev=ens5" \ client_test "MULTINIC root=dhcp ip=ens2:dhcp ip=ens3:dhcp ip=ens4:dhcp bootdev=ens4" \
00 01 02 \ 00 01 02 \
"root=dhcp ip=ens3:dhcp ip=ens4:dhcp ip=ens5:dhcp bootdev=ens5" \ "root=dhcp ip=ens2:dhcp ip=ens3:dhcp ip=ens4:dhcp bootdev=ens4" \
"ens3 ens4 ens5" || return 1 "ens2 ens3 ens4" || return 1


client_test "MULTINIC bonding" \ client_test "MULTINIC bonding" \
00 01 02 \ 00 01 02 \
"root=nfs:192.168.50.1:/nfs/client ip=bond0:dhcp bond=bond0:ens3,ens4,ens5:mode=balance-rr" \ "root=nfs:192.168.50.1:/nfs/client ip=bond0:dhcp bond=bond0:ens2,ens3,ens4:mode=balance-rr" \
"bond0" || return 1 "bond0" || return 1


# bridge, where only one interface is actually connected
client_test "MULTINIC bridging" \ client_test "MULTINIC bridging" \
00 01 02 \ 00 01 02 \
"root=nfs:192.168.50.1:/nfs/client ip=bridge0:dhcp bridge=bridge0:ens3,ens6,ens7" \ "root=nfs:192.168.50.1:/nfs/client ip=bridge0:dhcp bridge=bridge0:ens2,ens6,ens7" \
"bridge0" || return 1 "bridge0" || return 1
return 0 return 0
} }
@ -303,8 +309,8 @@ test_setup() {
# Make client's dracut image # Make client's dracut image
$basedir/dracut.sh \ $basedir/dracut.sh \
-l -i "$TESTDIR"/overlay / \ -l -i "$TESTDIR"/overlay / \
-o "plymouth" \ -o "plymouth ${OMIT_NETWORK}" \
-a "debug" \ -a "debug ${USE_NETWORK}" \
-d "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 "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" \
--no-hostonly-cmdline -N \ --no-hostonly-cmdline -N \
-f "$TESTDIR"/initramfs.testing "$KVERSION" || return 1 -f "$TESTDIR"/initramfs.testing "$KVERSION" || return 1

View File

@ -0,0 +1,12 @@
.PHONY: all setup clean run

BASETEST=../TEST-50-MULTINIC

all:
@$(MAKE) NM=1 -s --no-print-directory -C $(BASETEST) all
setup:
@$(MAKE) NM=1 -s --no-print-directory -C $(BASETEST) setup
clean:
@$(MAKE) NM=1 -s --no-print-directory -C $(BASETEST) clean
run:
@$(MAKE) NM=1 -s --no-print-directory -C $(BASETEST) run

View File

@ -53,38 +53,38 @@ linkup() {
&& wait_for_if_up $1 2>/dev/null && wait_for_if_up $1 2>/dev/null
} }


wait_for_if_link eth0 ens3 wait_for_if_link eth0 ens2
wait_for_if_link eth1 ens4 wait_for_if_link eth1 ens3
wait_for_if_link eth2 ens5 wait_for_if_link eth2 ens4
wait_for_if_link eth3 ens6 wait_for_if_link eth3 ens5


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 link set dev eth0 name ens2
ip addr add 192.168.50.1/24 dev ens3 ip addr add 192.168.50.1/24 dev ens2
linkup ens3 linkup ens2
>/dev/watchdog >/dev/watchdog
ip link set dev eth1 name ens4 ip link set dev eth1 name ens3
ip link add dev ens4.1 link ens4 type vlan id 1 ip link add dev ens3.1 link ens3 type vlan id 1
ip link add dev ens4.2 link ens4 type vlan id 2 ip link add dev ens3.2 link ens3 type vlan id 2
ip link add dev ens4.3 link ens4 type vlan id 3 ip link add dev ens3.3 link ens3 type vlan id 3
ip link add dev ens4.4 link ens4 type vlan id 4 ip link add dev ens3.4 link ens3 type vlan id 4
ip addr add 192.168.54.1/24 dev ens4.1 ip addr add 192.168.54.1/24 dev ens3.1
ip addr add 192.168.55.1/24 dev ens4.2 ip addr add 192.168.55.1/24 dev ens3.2
ip addr add 192.168.56.1/24 dev ens4.3 ip addr add 192.168.56.1/24 dev ens3.3
ip addr add 192.168.57.1/24 dev ens4.4 ip addr add 192.168.57.1/24 dev ens3.4
linkup ens3
ip link set dev ens3.1 up
ip link set dev ens3.2 up
ip link set dev ens3.3 up
ip link set dev ens3.4 up
ip link set dev eth2 name ens4
ip addr add 192.168.51.1/24 dev ens4
linkup ens4 linkup ens4
ip link set dev ens4.1 up ip link set dev eth3 name ens5
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 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
@ -107,7 +107,7 @@ rpc.nfsd
>/dev/watchdog >/dev/watchdog
rpc.mountd rpc.mountd
>/dev/watchdog >/dev/watchdog
rpc.idmapd rpc.idmapd -S
>/dev/watchdog >/dev/watchdog
exportfs -r exportfs -r
>/dev/watchdog >/dev/watchdog
@ -115,10 +115,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 ens2 ens4
#echo -n 'V' > /dev/watchdog #echo -n 'V' > /dev/watchdog
#sh -i #sh -i
#tcpdump -i ens3 #tcpdump -i ens2
# Wait forever for the VM to die # Wait forever for the VM to die
echo "Serving" echo "Serving"
while :; do while :; do

View File

@ -1,7 +1,18 @@
#!/bin/bash #!/bin/bash
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh # ex: ts=8 sw=4 sts=4 et filetype=sh
TEST_DESCRIPTION="root filesystem on NFS with bridging/bonding/vlan"

if [[ $NM ]]; then
USE_NETWORK="network-manager"
OMIT_NETWORK="network-legacy"
else
USE_NETWORK="network-legacy"
OMIT_NETWORK="network-manager"
fi

TEST_DESCRIPTION="root filesystem on NFS with bridging/bonding/vlan with $USE_NETWORK"

KVERSION=${KVERSION-$(uname -r)} KVERSION=${KVERSION-$(uname -r)}


# Uncomment this to debug failures # Uncomment this to debug failures
@ -17,8 +28,6 @@ run_server() {


$testdir/run-qemu \ $testdir/run-qemu \
-hda "$TESTDIR"/server.ext3 \ -hda "$TESTDIR"/server.ext3 \
-m 512M -smp 2 \
-display none \
-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 \
@ -30,7 +39,6 @@ run_server() {
${SERIAL:+-serial "$SERIAL"} \ ${SERIAL:+-serial "$SERIAL"} \
${SERIAL:--serial file:"$TESTDIR"/server.log} \ ${SERIAL:--serial file:"$TESTDIR"/server.log} \
-watchdog i6300esb -watchdog-action poweroff \ -watchdog i6300esb -watchdog-action poweroff \
-no-reboot \
-append "panic=1 loglevel=7 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 rd.debug" \ -append "panic=1 loglevel=7 root=/dev/sda 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
@ -75,9 +83,8 @@ client_test() {
nic3=" -netdev hubport,id=n3,hubid=3" nic3=" -netdev hubport,id=n3,hubid=3"
fi fi


if $testdir/run-qemu --help | grep -qF -m1 'netdev hubport,id=str,hubid=n[,netdev=nd]' && echo OK; then
$testdir/run-qemu \ $testdir/run-qemu \
-hda "$TESTDIR"/client.img -m 512M -smp 2 -nographic \ -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 e1000,mac=52:54:00:12:34:01,netdev=h2 \
@ -86,26 +93,8 @@ client_test() {
-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 e1000,mac=52:54:00:12:34:04,netdev=n2 \
$nic3 -device e1000,mac=52:54:00:12:34:05,netdev=n3 \ $nic3 -device e1000,mac=52:54:00:12:34:05,netdev=n3 \
-watchdog i6300esb -watchdog-action poweroff \ -watchdog i6300esb -watchdog-action poweroff \
-no-reboot \
-append "panic=1 $cmdline systemd.crash_reboot rd.debug $DEBUGFAIL rd.retry=5 rw console=ttyS0,115200n81 selinux=0 init=/sbin/init" \ -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 -initrd "$TESTDIR"/initramfs.testing
else
$testdir/run-qemu \
-hda "$TESTDIR"/client.img -m 512M -smp 2 -nographic \
-net socket,vlan=0,connect=127.0.0.1:12370 \
${do_vlan13:+-net socket,vlan=1,connect=127.0.0.1:12371} \
-net socket,vlan=2,connect=127.0.0.1:12372 \
${do_vlan13:+-net socket,vlan=3,connect=127.0.0.1:12373} \
-net nic,vlan=0,macaddr=52:54:00:12:34:01,model=e1000 \
-net nic,vlan=0,macaddr=52:54:00:12:34:02,model=e1000 \
-net nic,vlan=1,macaddr=52:54:00:12:34:03,model=e1000 \
-net nic,vlan=2,macaddr=52:54:00:12:34:04,model=e1000 \
-net nic,vlan=3,macaddr=52:54:00:12:34:05,model=e1000 \
-watchdog i6300esb -watchdog-action poweroff \
-no-reboot \
-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
fi


{ {
read OK read OK
@ -143,51 +132,12 @@ test_run() {
} }


test_client() { test_client() {
if $testdir/run-qemu --help | grep -qF -m1 'netdev hubport,id=str,hubid=n[,netdev=nd]'; then if [[ $NM ]]; then
client_test "Multiple VLAN" \ EXPECT='ens3 ens5.0004 ens5.3 vlan0001 vlan2 /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-* EOF '
"yes" \
"
vlan=vlan0001:ens6
vlan=vlan2:ens6
vlan=ens6.3:ens6
vlan=ens6.0004:ens6
ip=ens4: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:ens6.3:none
ip=192.168.57.104::192.168.57.1:24:test:ens6.0004:none
rd.neednet=1
root=nfs:192.168.50.1:/nfs/client bootdev=ens4
" \
'ens4 ens6.0004 ens6.3 vlan0001 vlan2 /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens4 # Generated by dracut initrd NAME="ens4" DEVICE="ens4" ONBOOT=yes NETBOOT=yes IPV6INIT=yes BOOTPROTO=dhcp TYPE=Ethernet /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens6.0004 # Generated by dracut initrd NAME="ens6.0004" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.57.104" PREFIX="24" GATEWAY="192.168.57.1" TYPE=Vlan DEVICE="ens6.0004" VLAN=yes PHYSDEV="ens6" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens6.3 # Generated by dracut initrd NAME="ens6.3" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.56.103" PREFIX="24" GATEWAY="192.168.56.1" TYPE=Vlan DEVICE="ens6.3" VLAN=yes PHYSDEV="ens6" /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="ens6" /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="ens6" EOF ' \
|| return 1

client_test "Multiple Bonds" \
"yes" \
"
bond=bond0:ens4,ens5
bond=bond1:ens7,ens8
ip=bond0:dhcp
ip=bond1:dhcp
rd.neednet=1
root=nfs:192.168.50.1:/nfs/client bootdev=bond0
" \
'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-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-ens5 # Generated by dracut initrd NAME="ens5" TYPE=Ethernet ONBOOT=yes NETBOOT=yes SLAVE=yes MASTER="bond0" DEVICE="ens5" /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" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens8 # Generated by dracut initrd NAME="ens8" TYPE=Ethernet ONBOOT=yes NETBOOT=yes SLAVE=yes MASTER="bond1" DEVICE="ens8" EOF ' \
|| return 1

client_test "Multiple Bridges" \
"no" \
"
bridge=br0:ens4,ens5
bridge=br1:ens7,ens8
ip=br0:dhcp
ip=br1:dhcp
rd.neednet=1
root=nfs:192.168.50.1:/nfs/client bootdev=br0
" \
'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-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-ens5 # Generated by dracut initrd NAME="ens5" TYPE=Ethernet ONBOOT=yes NETBOOT=yes BRIDGE="br0" DEVICE="ens5" /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" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens8 # Generated by dracut initrd NAME="ens8" TYPE=Ethernet ONBOOT=yes NETBOOT=yes BRIDGE="br1" DEVICE="ens8" EOF ' \
|| return 1
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 '
fi

client_test "Multiple VLAN" \ client_test "Multiple VLAN" \
"yes" \ "yes" \
" "
@ -203,35 +153,46 @@ ip=192.168.57.104::192.168.57.1:24:test:ens5.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=ens3
" \ " \
'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" \
|| return 1 || return 1


if [[ $NM ]]; then
EXPECT='bond0 bond1 /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 '
fi

client_test "Multiple Bonds" \ client_test "Multiple Bonds" \
"yes" \ "yes" \
" "
bond=bond0:ens4,ens5 bond=bond0:ens3,ens4
bond=bond1:ens6,ens7 bond=bond1:ens6,ens7
ip=bond0:dhcp ip=bond0:dhcp
ip=bond1:dhcp ip=bond1:dhcp
rd.neednet=1 rd.neednet=1
root=nfs:192.168.50.1:/nfs/client bootdev=bond0 root=nfs:192.168.50.1:/nfs/client bootdev=bond0
" \ " \
'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-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-ens5 # Generated by dracut initrd NAME="ens5" TYPE=Ethernet ONBOOT=yes NETBOOT=yes SLAVE=yes MASTER="bond0" DEVICE="ens5" /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" \
|| return 1 || return 1


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 '
fi

client_test "Multiple Bridges" \ client_test "Multiple Bridges" \
"no" \ "no" \
" "
bridge=br0:ens4,ens5 bridge=br0:ens3,ens4
bridge=br1:ens6,ens7 bridge=br1:ens6,ens7
ip=br0:dhcp ip=br0:dhcp
ip=br1:dhcp ip=br1:dhcp
rd.neednet=1 rd.neednet=1
root=nfs:192.168.50.1:/nfs/client bootdev=br0 root=nfs:192.168.50.1:/nfs/client bootdev=br0
" \ " \
'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-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-ens5 # Generated by dracut initrd NAME="ens5" TYPE=Ethernet ONBOOT=yes NETBOOT=yes BRIDGE="br0" DEVICE="ens5" /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" \
|| return 1 || return 1
fi
kill_server kill_server
return 0 return 0
} }
@ -369,8 +330,8 @@ test_setup() {
# 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" \ -o "plymouth ${OMIT_NETWORK}" \
-a "debug network-legacy" \ -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 e1000 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

View File

@ -0,0 +1,12 @@
.PHONY: all setup clean run

BASETEST=../TEST-60-BONDBRIDGEVLANIFCFG

all:
@$(MAKE) NM=1 -s --no-print-directory -C $(BASETEST) all
setup:
@$(MAKE) NM=1 -s --no-print-directory -C $(BASETEST) setup
clean:
@$(MAKE) NM=1 -s --no-print-directory -C $(BASETEST) clean
run:
@$(MAKE) NM=1 -s --no-print-directory -C $(BASETEST) run

View File

@ -3,12 +3,12 @@
# We prefer kvm, kqemu, userspace in that order. # We prefer kvm, kqemu, userspace in that order.
export PATH=/sbin:/bin:/usr/sbin:/usr/bin export PATH=/sbin:/bin:/usr/sbin:/usr/bin


[[ -x /usr/bin/qemu ]] && BIN=/usr/bin/qemu && ARGS="" [[ -x /usr/bin/qemu ]] && BIN=/usr/bin/qemu && ARGS="-cpu max"
$(lsmod | grep -q '^kqemu ') && BIN=/usr/bin/qemu && ARGS="-kernel-kqemu -cpu host" $(lsmod | grep -q '^kqemu ') && BIN=/usr/bin/qemu && ARGS="-kernel-kqemu -cpu host"
[[ -c /dev/kvm && -x /usr/bin/kvm ]] && BIN=/usr/bin/kvm && ARGS="-cpu host" [[ -c /dev/kvm && -x /usr/bin/kvm ]] && BIN=/usr/bin/kvm && ARGS="-cpu host"
[[ -c /dev/kvm && -x /usr/bin/qemu-kvm ]] && BIN=/usr/bin/qemu-kvm && ARGS="-cpu host" [[ -c /dev/kvm && -x /usr/bin/qemu-kvm ]] && BIN=/usr/bin/qemu-kvm && ARGS="-cpu host"
[[ -c /dev/kvm && -x /usr/libexec/qemu-kvm ]] && BIN=/usr/libexec/qemu-kvm && ARGS="-cpu host" [[ -c /dev/kvm && -x /usr/libexec/qemu-kvm ]] && BIN=/usr/libexec/qemu-kvm && ARGS="-cpu host"
[[ -x /usr/bin/qemu-system-$(uname -i) ]] && BIN=/usr/bin/qemu-system-$(uname -i) && ARGS="" [[ -x /usr/bin/qemu-system-$(uname -i) ]] && BIN=/usr/bin/qemu-system-$(uname -i) && ARGS="-cpu max"
[[ -c /dev/kvm && -x /usr/bin/qemu-system-$(uname -i) ]] && BIN=/usr/bin/qemu-system-$(uname -i) && ARGS="-enable-kvm -cpu host" [[ -c /dev/kvm && -x /usr/bin/qemu-system-$(uname -i) ]] && BIN=/usr/bin/qemu-system-$(uname -i) && ARGS="-enable-kvm -cpu host"


[[ $BIN ]] || { [[ $BIN ]] || {
@ -17,8 +17,12 @@ $(lsmod | grep -q '^kqemu ') && BIN=/usr/bin/qemu && ARGS="-kernel-kqemu -cpu ho
exit 1 exit 1
} }


# Provide rng device sourcing the hosts /dev/urandom # Provide rng device sourcing the hosts /dev/urandom and other standard parameters
ARGS="$ARGS -device virtio-rng-pci" ARGS="$ARGS -smp 2 -m 512 -nodefaults -vga none -display none -no-reboot -device virtio-rng-pci"

if ! [[ $* = *-daemonize* ]] && ! [[ $* = *-daemonize* ]]; then
ARGS="$ARGS -serial stdio"
fi


KVERSION=${KVERSION-$(uname -r)} KVERSION=${KVERSION-$(uname -r)}