grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v2 00/12] Grub-shell improvements


From: Glenn Washburn
Subject: [PATCH v2 00/12] Grub-shell improvements
Date: Sat, 1 Jan 2022 22:07:10 -0600

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]