[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 09/15] grub-shell: Create run.sh in working directory for easi
From: |
Glenn Washburn |
Subject: |
[PATCH v3 09/15] grub-shell: Create run.sh in working directory for easily running test again |
Date: |
Thu, 10 Feb 2022 15:51:26 -0600 |
Now it becomes trivial to re-run a test from the output in its working
directory. This also makes it easy to send a reproducible failing test to
the mailing list. This has allowed a a refactor so that the duplicated
code to call QEMU has be condensed (eg. the use of timeout and file
descriptor redirection).
Signed-off-by: Glenn Washburn <development@efficientek.com>
---
tests/util/grub-shell.in | 25 ++++++++++++++++++++-----
1 file changed, 20 insertions(+), 5 deletions(-)
diff --git a/tests/util/grub-shell.in b/tests/util/grub-shell.in
index 96869184c..48c7fde48 100644
--- a/tests/util/grub-shell.in
+++ b/tests/util/grub-shell.in
@@ -511,8 +511,10 @@ 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
- 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=$?
+ cat >"$work_directory/run.sh" <<EOF
+#! @BUILD_SHEBANG@
+exec "${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
+EOF
elif [ x$boot = xemu ]; then
rootdir="$work_directory/rootdir"
grubdir="$rootdir/boot/grub"
@@ -531,11 +533,23 @@ elif [ x$boot = xemu ]; then
[ -z "$files" ] || copy_extra_files "$rootdir" $files
roottar="$work_directory/root.tar"
(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=$?
+ cat >"$work_directory/run.sh" <<EOF
+#! @BUILD_SHEBANG@
+exec @builddir@/grub-core/grub-emu -m "$device_map" --memdisk "$roottar" -r
memdisk -d "/boot/grub"
+EOF
else
+ cat >"$work_directory/run.sh" <<EOF
+#! @BUILD_SHEBANG@
+SDIR=\$(realpath -e \${0%/*})
+cd "\$SDIR"
+exec "${qemu}" ${qemuopts} ${serial_null} -serial file:/dev/stdout
-${device}"\${SDIR}/${isofile##*/}" ${bootdev}
+EOF
+fi
+
+if [ -f "$work_directory/run.sh" ]; then
setup_qemu_logger
- timeout -s KILL $timeout "${qemu}" ${qemuopts} ${serial_null} -serial
file:/dev/stdout -${device}"${isofile}" ${bootdev} >
"$work_directory/qemu-pipe" || ret=$?
+ chmod +x "$work_directory/run.sh"
+ timeout -s KILL $timeout "$work_directory/run.sh" >
"$work_directory/qemu-pipe" || ret=$?
fi
wait
@@ -555,6 +569,7 @@ fi
test -n "$debug" || rm -f "${isofile}"
test -n "$debug" || rm -rf "${rom_directory}"
test -n "$debug" || rm -f "${tmpfile}" "${cfgfile}" "${goutfile}"
+test -n "$debug" || rm -f "$work_directory/run.sh"
exit $ret
--
2.27.0
- [PATCH v3 00/15] Grub-shell improvements, Glenn Washburn, 2022/02/10
- [PATCH v3 01/15] grub-shell: Allow specifying non-default trim line contents, Glenn Washburn, 2022/02/10
- [PATCH v3 02/15] grub-shell: Trim line should always be matched from the beginning of the line, Glenn Washburn, 2022/02/10
- [PATCH v3 03/15] grub-shell: Only show grub-mkrescue output if it returns an error, Glenn Washburn, 2022/02/10
- [PATCH v3 04/15] grub-shell: Allow setting default timeout via GRUB_SHELL_DEFAULT_TIMEOUT envvar, Glenn Washburn, 2022/02/10
- [PATCH v3 05/15] grub-shell: Put all generated files into working dir and use better file names, Glenn Washburn, 2022/02/10
- [PATCH v3 06/15] grub-shell: Add grub output logfile with grub-shell --debug, Glenn Washburn, 2022/02/10
- [PATCH v3 07/15] grub-shell: Set exit status to qemu exit status, Glenn Washburn, 2022/02/10
- [PATCH v3 08/15] grub-shell: Only cleanup working directory file if QEMU does not fail or timeout, Glenn Washburn, 2022/02/10
- [PATCH v3 09/15] grub-shell: Create run.sh in working directory for easily running test again,
Glenn Washburn <=
- [PATCH v3 10/15] grub-shell: Add $GRUB_QEMU_OPTS to run.sh to easily see unofficial QEMU arguments, Glenn Washburn, 2022/02/10
- [PATCH v3 11/15] tests: Allow turning on shell tracing from environment variables, Glenn Washburn, 2022/02/10
- [PATCH v3 12/15] grub-shell: Add --verbose to mkrescue when $debug is greater than 2, Glenn Washburn, 2022/02/10
- [PATCH v3 14/15] grub-shell: Use malta qemu-mips machine type instead off non-existant indy, Glenn Washburn, 2022/02/10
- [PATCH v3 13/15] grub-shell: Only turn on qemu head when large debug value is specified, Glenn Washburn, 2022/02/10
- [PATCH v3 15/15] grub-shell: Add flexibility in QEMU firmware handling, Glenn Washburn, 2022/02/10