tests: Do not occlude subshell error codes when used as input to the test command

When using the output of a subshell as input, its error code is ignored in
the context of "set -e". Many test scripts use grub-shell in a subshell with
output used as an argument to the test command to test for expected output.
Refactor these tests so that the subshell output goes to a shell variable,
so that if the subshell errors the script will immediately exit with an
error code.

Signed-off-by: Glenn Washburn <development@efficientek.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
Glenn Washburn 2021-10-12 19:39:58 -05:00 committed by Daniel Kiper
parent 5e0a8129ef
commit 9bbcfb71ce
13 changed files with 44 additions and 14 deletions

View File

@ -41,7 +41,12 @@ echo "hello" > "$outfile"
tar cf "$imgfile" "$outfile"
if [ "$(echo "nativedisk; source '(ahci0)/$outfile';" | "${grubshell}" --qemu-opts="-drive id=disk,file=$imgfile,if=none -device ahci,id=ahci -device ide-hd,drive=disk,bus=ahci.0 " | tail -n 1)" != "Hello World" ]; then
v=$(echo "nativedisk; source '(ahci0)/$outfile';" |
"${grubshell}" --qemu-opts="-drive id=disk,file=$imgfile,if=none
-device ahci,id=ahci
-device ide-hd,drive=disk,bus=ahci.0" |
tail -n 1)
if [ "$v" != "Hello World" ]; then
rm "$imgfile"
rm "$outfile"
exit 1

View File

@ -34,6 +34,7 @@ case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in
exit 0;;
esac
if [ "$(echo hello | "${grubshell}" --boot=cd)" != "Hello World" ]; then
v=$(echo hello | "${grubshell}" --boot=cd)
if [ "$v" != "Hello World" ]; then
exit 1
fi

View File

@ -27,10 +27,12 @@ case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in
esac
if [ "$(echo hello | "${grubshell}" --grub-mkimage-extra=--compress=xz)" != "Hello World" ]; then
v=$(echo hello | "${grubshell}" --grub-mkimage-extra=--compress=xz)
if [ "$v" != "Hello World" ]; then
exit 1
fi
if [ "$(echo hello | "${grubshell}" --grub-mkimage-extra=--compress=none)" != "Hello World" ]; then
v=$(echo hello | "${grubshell}" --grub-mkimage-extra=--compress=none)
if [ "$v" != "Hello World" ]; then
exit 1
fi

View File

@ -41,7 +41,12 @@ echo "hello" > "$outfile"
tar cf "$imgfile" "$outfile"
if [ "$(echo "nativedisk; source '(usb0)/$outfile';" | "${grubshell}" --qemu-opts="-device ich9-usb-ehci1 -drive id=my_usb_disk,file=$imgfile,if=none -device usb-storage,drive=my_usb_disk" | tail -n 1)" != "Hello World" ]; then
v=$(echo "nativedisk; source '(usb0)/$outfile';" |
"${grubshell}" --qemu-opts="-device ich9-usb-ehci1
-drive id=my_usb_disk,file=$imgfile,if=none
-device usb-storage,drive=my_usb_disk" |
tail -n 1)
if [ "$v" != "Hello World" ]; then
rm "$imgfile"
rm "$outfile"
exit 1

View File

@ -46,6 +46,7 @@ case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in
exit 0;;
esac
if [ "$(echo hello | "${grubshell}" --boot=fd --mkrescue-arg="--compress=xz --fonts= --locales= --themes= -no-pad")" != "Hello World" ]; then
v=$(echo hello | "${grubshell}" --boot=fd --mkrescue-arg="--compress=xz --fonts= --locales= --themes= -no-pad")
if [ "$v" != "Hello World" ]; then
exit 1
fi

View File

@ -24,6 +24,7 @@ if ! which gzip >/dev/null 2>&1; then
exit 77
fi
if [ "$(echo hello | "${grubshell}" --mkrescue-arg=--compress=gz)" != "Hello World" ]; then
v=$(echo hello | "${grubshell}" --mkrescue-arg=--compress=gz)
if [ "$v" != "Hello World" ]; then
exit 1
fi

View File

@ -31,7 +31,8 @@ case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in
exit 0;;
esac
if [ "$(echo hello | "${grubshell}" --boot=hd)" != "Hello World" ]; then
v=$(echo hello | "${grubshell}" --boot=hd)
if [ "$v" != "Hello World" ]; then
exit 1
fi

View File

@ -24,6 +24,7 @@ if ! which lzop >/dev/null 2>&1; then
exit 77
fi
if [ "$(echo hello | "${grubshell}" --mkrescue-arg=--compress=lzo)" != "Hello World" ]; then
v=$(echo hello | "${grubshell}" --mkrescue-arg=--compress=lzo)
if [ "$v" != "Hello World" ]; then
exit 1
fi

View File

@ -40,6 +40,7 @@ case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in
exit 0;;
esac
if [ "$(echo hello | "${grubshell}" --boot=net)" != "Hello World" ]; then
v=$(echo hello | "${grubshell}" --boot=net)
if [ "$v" != "Hello World" ]; then
exit 1
fi

View File

@ -41,7 +41,12 @@ echo "hello" > "$outfile"
tar cf "$imgfile" "$outfile"
if [ "$(echo "nativedisk; source '(usb0)/$outfile';" | "${grubshell}" --qemu-opts="-device pci-ohci -drive id=my_usb_disk,file=$imgfile,if=none -device usb-storage,drive=my_usb_disk" | tail -n 1)" != "Hello World" ]; then
v=$(echo "nativedisk; source '(usb0)/$outfile';" |
"${grubshell}" --qemu-opts="-device pci-ohci
-drive id=my_usb_disk,file=$imgfile,if=none
-device usb-storage,drive=my_usb_disk" |
tail -n 1)
if [ "$v" != "Hello World" ]; then
rm "$imgfile"
rm "$outfile"
exit 1

View File

@ -45,7 +45,8 @@ echo "hello" > "$outfile"
tar cf "$imgfile" "$outfile"
if [ "$(echo "nativedisk; source '($indisk)/$outfile';" | "${grubshell}" --qemu-opts="-$disk $imgfile")" != "Hello World" ]; then
v=$(echo "nativedisk; source '($indisk)/$outfile';" | "${grubshell}" --qemu-opts="-$disk $imgfile")
if [ "$v" != "Hello World" ]; then
rm "$imgfile"
rm "$outfile"
exit 1

View File

@ -41,7 +41,12 @@ echo "hello" > "$outfile"
tar cf "$imgfile" "$outfile"
if [ "$(echo "nativedisk; source '(usb0)/$outfile';" | "${grubshell}" --qemu-opts="-device ich9-usb-uhci1 -drive id=my_usb_disk,file=$imgfile,if=none -device usb-storage,drive=my_usb_disk" | tail -n 1)" != "Hello World" ]; then
v=$(echo "nativedisk; source '(usb0)/$outfile';" |
"${grubshell}" --qemu-opts="-device ich9-usb-uhci1
-drive id=my_usb_disk,file=$imgfile,if=none
-device usb-storage,drive=my_usb_disk" |
tail -n 1)
if [ "$v" != "Hello World" ]; then
rm "$imgfile"
rm "$outfile"
exit 1

View File

@ -24,6 +24,7 @@ if ! which xz >/dev/null 2>&1; then
exit 77
fi
if [ "$(echo hello | "${grubshell}" --mkrescue-arg=--compress=xz)" != "Hello World" ]; then
v=$(echo hello | "${grubshell}" --mkrescue-arg=--compress=xz)
if [ "$v" != "Hello World" ]; then
exit 1
fi