]> git.ipfire.org Git - thirdparty/dracut.git/blobdiff - test/TEST-50-MULTINIC/test.sh
Add github workflow
[thirdparty/dracut.git] / test / TEST-50-MULTINIC / test.sh
index d7cec4374565f0151d38e4581f576b1608b28298..dfddfbd7df91e5b8eeace14b7055748b995f6d7d 100755 (executable)
@@ -13,45 +13,35 @@ run_server() {
 
     fsck -a "$TESTDIR"/server.ext3 || return 1
 
-    if $testdir/run-qemu --help | grep -qF -m1 'netdev hubport,id=str,hubid=n[,netdev=nd]' && echo OK; then
-        $testdir/run-qemu \
-            -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 nic,macaddr=52:54:01:12:34:56,model=e1000 \
-            ${SERIAL:+-serial "$SERIAL"} \
-            ${SERIAL:--serial file:"$TESTDIR"/server.log} \
-            -watchdog i6300esb -watchdog-action poweroff \
-            -no-reboot \
-            -append "panic=1 loglevel=7 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0" \
-            -initrd "$TESTDIR"/initramfs.server \
-            -pidfile "$TESTDIR"/server.pid -daemonize || return 1
-    else
-        $testdir/run-qemu \
-            -drive format=raw,index=0,media=disk,file="$TESTDIR"/server.ext3 \
-            -m 512M  -smp 2 \
-            -display none \
-            -net socket,vlan=0,connect=127.0.0.1:12350 \
-            -net nic,vlan=0,macaddr=52:54:00:12:34:$mac1,model=e1000 \
-            -net nic,vlan=0,macaddr=52:54:00:12:34:$mac2,model=e1000 \
-            -net nic,vlan=0,macaddr=52:54:00:12:34:$mac3,model=e1000 \
-            -net nic,vlan=1,macaddr=52:54:00:12:34:98,model=e1000 \
-            -net nic,vlan=2,macaddr=52:54:00:12:34:99,model=e1000 \
-            -watchdog i6300esb -watchdog-action poweroff \
-            -no-reboot \
-            -append "panic=1 loglevel=7 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0" \
-            -initrd "$TESTDIR"/initramfs.server \
-            -pidfile "$TESTDIR"/server.pid -daemonize || return 1
-    fi
+    $testdir/run-qemu \
+        -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 nic,macaddr=52:54:01:12:34:56,model=e1000 \
+        ${SERIAL:+-serial "$SERIAL"} \
+        ${SERIAL:--serial file:"$TESTDIR"/server.log} \
+        -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" \
+        -initrd "$TESTDIR"/initramfs.server \
+        -pidfile "$TESTDIR"/server.pid -daemonize || return 1
 
     sudo chmod 644 -- "$TESTDIR"/server.pid || return 1
 
     # Cleanup the terminal if we have one
     tty -s && stty sane
 
-    echo Sleeping 10 seconds to give the server a head start
-    sleep 10
+    if ! [[ $SERIAL ]]; then
+        echo "Waiting for the server to startup"
+        while : ; do
+            grep Serving "$TESTDIR"/server.log && break
+            sleep 1
+        done
+    else
+        echo Sleeping 10 seconds to give the server a head start
+        sleep 10
+    fi
 }
 
 client_test() {
@@ -81,7 +71,7 @@ client_test() {
                       -device e1000,netdev=n2,mac=52:54:00:12:34:99 \
                       -watchdog i6300esb -watchdog-action poweroff \
                       -no-reboot \
-                      -append "panic=1 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" \
+                      -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
 
     { read OK; read IFACES; } < "$TESTDIR"/client.img
@@ -299,12 +289,13 @@ test_setup() {
         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
+        inst_simple ./99-default.link /etc/systemd/network/99-default.link
     )
 
     # Make server's dracut image
     $basedir/dracut.sh \
         -l -i "$TESTDIR"/overlay / \
-        -m "dash udev-rules base rootfs-block fs-lib debug kernel-modules watchdog" \
+        -m "dash udev-rules base rootfs-block fs-lib debug kernel-modules watchdog qemu" \
         -d "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