[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 07/12] grub-shell: Set exit status to qemu exit status
From: |
Glenn Washburn |
Subject: |
[PATCH v2 07/12] grub-shell: Set exit status to qemu exit status |
Date: |
Sat, 1 Jan 2022 22:07:17 -0600 |
This allows us to test if unexpected output in test scripts is because of a
bug in grub, because there was an error in qemu, or qemu was killed due to a
timeout.
Signed-off-by: Glenn Washburn <development@efficientek.com>
---
tests/util/grub-shell.in | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
diff --git a/tests/util/grub-shell.in b/tests/util/grub-shell.in
index c6d7860e9..f4b733858 100644
--- a/tests/util/grub-shell.in
+++ b/tests/util/grub-shell.in
@@ -498,6 +498,12 @@ 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"
if [ x$boot = xnet ]; then
netdir="$work_directory/netdir"
mkdir -p "$netdir"
@@ -505,7 +511,8 @@ if [ x$boot = xnet ]; then
cp "${cfgfile}" "$netdir/boot/grub/grub.cfg"
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"
grubdir="$rootdir/boot/grub"
@@ -524,11 +531,13 @@ elif [ x$boot = xemu ]; then
[ -z "$files" ] || copy_extra_files "$rootdir" $files
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
test -n "$debug" || rm -f "${imgfile}"
@@ -536,6 +545,8 @@ fi
test -n "$debug" || rm -f "${isofile}"
test -n "$debug" || rm -rf "${rom_directory}"
test -n "$debug" || rm -f "${tmpfile}" "${cfgfile}"
-exit 0
+rm -f "$work_directory/qemu-pipe"
+wait
+exit $ret
--
2.27.0
- [PATCH v2 00/12] Grub-shell improvements, Glenn Washburn, 2022/01/01
- [PATCH v2 01/12] grub-shell: Allow specifying non-default trim line contents, Glenn Washburn, 2022/01/01
- [PATCH v2 02/12] grub-shell: Trim line should always be matched from the beginning of the line, Glenn Washburn, 2022/01/01
- [PATCH v2 03/12] grub-shell: Only show grub-mkrescue output if it returns an error, Glenn Washburn, 2022/01/01
- [PATCH v2 04/12] grub-shell: Allow setting default timeout via GRUB_SHELL_DEFAULT_TIMEOUT envvar, Glenn Washburn, 2022/01/01
- [PATCH v2 06/12] grub-shell: Add grub output logfile with grub-shell --debug, Glenn Washburn, 2022/01/01
- [PATCH v2 07/12] grub-shell: Set exit status to qemu exit status,
Glenn Washburn <=
- [PATCH v2 05/12] grub-shell: Put all generated files into working dir and use better file names, Glenn Washburn, 2022/01/01
- [PATCH v2 09/12] grub-shell: Add --verbose to mkrescue when $debug is greater than 2, Glenn Washburn, 2022/01/01
- [PATCH v2 08/12] tests: Allow turning on shell tracing from environment variables, Glenn Washburn, 2022/01/01
- [PATCH v2 10/12] grub-shell: Only turn on qemu head when large debug value is specified, Glenn Washburn, 2022/01/01
- [PATCH v2 11/12] grub-shell: Use malta qemu-mips machine type instead off non-existant indy, Glenn Washburn, 2022/01/01
- [PATCH v2 12/12] grub-shell: Add flexibility in QEMU firmware handling, Glenn Washburn, 2022/01/01