]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
tests/util/grub-shell: Only cleanup working directory file if QEMU does not fail...
authorGlenn Washburn <development@efficientek.com>
Tue, 10 Jan 2023 22:08:56 +0000 (16:08 -0600)
committerDaniel Kiper <daniel.kiper@oracle.com>
Thu, 19 Jan 2023 16:39:05 +0000 (17:39 +0100)
This keeps the generated files to aid in diagnosing the source of the failure.

Signed-off-by: Glenn Washburn <development@efficientek.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
tests/util/grub-shell.in

index 936f918b3637f0ad8db5c5bd5c619e1fbdf1f7f7..53aa04e3294553bf74d351ce401e0799d4c5d365 100644 (file)
@@ -534,8 +534,6 @@ elif [ x$boot = xemu ]; then
     (cd "$rootdir"; tar cf "$roottar" .)
     setup_qemu_logger
     "${builddir}/grub-core/grub-emu" -m "$device_map" --memdisk "$roottar" -r memdisk -d "/boot/grub" > "$work_directory/qemu-pipe" || ret=$?
-    test -n "$debug" || rm -rf "$rootdir"
-    test -n "$debug" || rm -f "$roottar"
 else
     setup_qemu_logger
     timeout -s KILL $timeout "${qemu}" ${qemuopts} ${serial_null} -serial file:/dev/stdout -${device}"${isofile}" ${bootdev} > "$work_directory/qemu-pipe" || ret=$?
@@ -544,8 +542,16 @@ fi
 wait
 rm -f "$work_directory/qemu-pipe"
 
+if [ "$ret" -ne 0 ]; then
+    # If QEMU failure, keep generated files to reproduce
+    exit $ret
+fi
+
 if [ x$boot = xcoreboot ]; then
     test -n "$debug" || rm -f "${imgfile}"
+elif [ x$boot = xemu ]; then
+    test -n "$debug" || rm -rf "$rootdir"
+    test -n "$debug" || rm -f "$roottar"
 fi
 test -n "$debug" || rm -f "${isofile}"
 test -n "$debug" || rm -rf "${rom_directory}"