Updates since v1: * Improve QEMU logging patch to make sure all data is written to the pipe before exiting (otherwise tests can fail because they don't get the last bit of QEMU output). * Improve QEMU firmware handling to prefer using the -bios option (for older setups) and prefer firmware files found in the source directory so that system firmware can be overridden and systems without packages providing the firmware can be used.
The only patch that might be considered a fix, as opposed to an improvement, would be patch #11, which fixes the issue where qemu-mips is given a non-existant machine type. And while this was discussed here on the list as a possible solution, I couldn't get the mips tests working, so I'm not sure it's the right fix. Glenn Glenn Washburn (12): grub-shell: Allow specifying non-default trim line contents grub-shell: Trim line should always be matched from the beginning of the line grub-shell: Only show grub-mkrescue output if it returns an error grub-shell: Allow setting default timeout via GRUB_SHELL_DEFAULT_TIMEOUT envvar grub-shell: Put all generated files into working dir and use better file names grub-shell: Add grub output logfile with grub-shell --debug grub-shell: Set exit status to qemu exit status tests: Allow turning on shell tracing from environment variables grub-shell: Add --verbose to mkrescue when $debug is greater than 2 grub-shell: Only turn on qemu head when large debug value is specified grub-shell: Use malta qemu-mips machine type instead off non-existant indy grub-shell: Add flexibility in QEMU firmware handling tests/util/grub-fs-tester.in | 2 + tests/util/grub-shell.in | 185 +++++++++++++++++++++++++++++------ 2 files changed, 158 insertions(+), 29 deletions(-) Range-diff against v1: 1: ee0b447e0 = 1: 52df3299f grub-shell: Allow specifying non-default trim line contents 2: 34ce88886 = 2: 7c8264aeb grub-shell: Trim line should always be matched from the beginning of the line 3: e2826567c = 3: c17da94e7 grub-shell: Only show grub-mkrescue output if it returns an error 4: 68fa49770 = 4: 27717b949 grub-shell: Allow setting default timeout via GRUB_SHELL_DEFAULT_TIMEOUT envvar 5: e113eba70 = 5: 17dd72798 grub-shell: Put all generated files into working dir and use better file names 6: 8acbe1a63 = 6: 428698acd grub-shell: Add grub output logfile with grub-shell --debug 7: 925d155ea ! 7: cdd28473c grub-shell: Set exit status to qemu exit status @@ tests/util/grub-shell.in: copy_extra_files() { done } ++setup_qemu_logger() { ++ cat < "$work_directory/qemu-pipe" | tr -d "\r" | tee "${goutfile}" | do_trim & ++} ++ +ret=0 +mkfifo "$work_directory/qemu-pipe" -+cat < "$work_directory/qemu-pipe" | tr -d "\r" | tee "${goutfile}" | do_trim & if [ x$boot = xnet ]; then netdir="$work_directory/netdir" mkdir -p "$netdir" @@ tests/util/grub-shell.in: if [ x$boot = xnet ]; then cp "${source}" "$netdir/boot/grub/testcase.cfg" [ -z "$files" ] || copy_extra_files "$netdir" $files - timeout -s KILL $timeout "${qemu}" ${qemuopts} ${serial_null} -serial file:/dev/stdout -boot n -net "user,tftp=$netdir,bootfile=/boot/grub/${grub_modinfo_target_cpu}-${grub_modinfo_platform}/core.$netbootext" -net nic | cat | tr -d "\r" | tee "${goutfile}" | do_trim ++ setup_qemu_logger + timeout -s KILL $timeout "${qemu}" ${qemuopts} ${serial_null} -serial file:/dev/stdout -boot n -net "user,tftp=$netdir,bootfile=/boot/grub/${grub_modinfo_target_cpu}-${grub_modinfo_platform}/core.$netbootext" -net nic > "$work_directory/qemu-pipe" || ret=$? elif [ x$boot = xemu ]; then rootdir="$work_directory/rootdir" @@ tests/util/grub-shell.in: elif [ x$boot = xemu ]; then roottar="$work_directory/root.tar" (cd "$rootdir"; tar cf "$roottar" .) - @builddir@/grub-core/grub-emu -m "$device_map" --memdisk "$roottar" -r memdisk -d "/boot/grub" | tr -d "\r" | tee "${goutfile}" | do_trim ++ 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 - timeout -s KILL $timeout "${qemu}" ${qemuopts} ${serial_null} -serial file:/dev/stdout -${device}"${isofile}" ${bootdev} | cat | tr -d "\r" | tee "${goutfile}" | do_trim ++ setup_qemu_logger + timeout -s KILL $timeout "${qemu}" ${qemuopts} ${serial_null} -serial file:/dev/stdout -${device}"${isofile}" ${bootdev} > "$work_directory/qemu-pipe" || ret=$? fi if [ x$boot = xcoreboot ]; then @@ tests/util/grub-shell.in: fi test -n "$debug" || rm -f "${tmpfile}" "${cfgfile}" -exit 0 +rm -f "$work_directory/qemu-pipe" ++wait +exit $ret 8: 7450f6e3a = 8: d82bb5b49 tests: Allow turning on shell tracing from environment variables 9: 856877947 = 9: 16e95b1aa grub-shell: Add --verbose to mkrescue when $debug is greater than 2 10: cbd92a430 = 10: 20e3f04db grub-shell: Only turn on qemu head when large debug value is specified 11: 5ec903f1a = 11: 10c55d9f3 grub-shell: Use malta qemu-mips machine type instead off non-existant indy 12: ce8684c76 < -: --------- grub-shell: Update qemu UEFI firmware names to be more generic -: --------- > 12: 059ef632e grub-shell: Add flexibility in QEMU firmware handling -- 2.27.0 _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel