torture: Cause mkinitrd.sh to indicate failure on compile errors
authorPaul E. McKenney <paulmck@kernel.org>
Fri, 14 Jul 2023 01:29:36 +0000 (18:29 -0700)
committerPaul E. McKenney <paulmck@kernel.org>
Fri, 21 Jul 2023 00:54:53 +0000 (17:54 -0700)
Currently, if the C program created by mkinitrd.sh has compile errors,
the errors are printed, but kvm.sh soldiers on, building kernels that
have init-less initrd setups.  The kernels then fail on boot when they
attempt to mount non-existent root filesystems.

This commit therefore improves user friendliness by making mkinitrd.sh
return non-zero exit status on compile errors, which in turn causes kvm.sh
to take an early exit, with the compile errors still clearly visible.

Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
tools/testing/selftests/rcutorture/bin/mkinitrd.sh

index 558f5a6..212c52c 100755 (executable)
@@ -74,8 +74,16 @@ if echo -e "#if __x86_64__||__i386__||__i486__||__i586__||__i686__" \
         ${CROSS_COMPILE}gcc -fno-asynchronous-unwind-tables -fno-ident \
                -nostdlib -include ../../../../include/nolibc/nolibc.h \
                -s -static -Os -o init init.c -lgcc
+       ret=$?
 else
        ${CROSS_COMPILE}gcc -s -static -Os -o init init.c
+       ret=$?
+fi
+
+if [ "$ret" -ne 0 ]
+then
+       echo "Failed to create a statically linked C-language initrd"
+       exit "$ret"
 fi
 
 rm init.c