On Wed Jun 12, 2024 at 5:26 PM AEST, Andrew Jones wrote: > On Wed, Jun 12, 2024 at 03:23:17PM GMT, Nicholas Piggin wrote: > > run_qemu_status() looks for "EXIT: STATUS=%d" if the harness command > > returned 1, to determine the final status of the test. In the case of > > panic tests, QEMU should terminate before successful exit status is > > known, so the run_panic() command must produce the "EXIT: STATUS" line. > > > > With this change, running a panic test returns 0 on success (panic), > > and the run_test.sh unit test correctly displays it as PASS rather than > > FAIL. > > > > Signed-off-by: Nicholas Piggin <npiggin@xxxxxxxxx> > > --- > > scripts/arch-run.bash | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/scripts/arch-run.bash b/scripts/arch-run.bash > > index 8643bab3b..9bf2f0bbd 100644 > > --- a/scripts/arch-run.bash > > +++ b/scripts/arch-run.bash > > @@ -378,6 +378,7 @@ run_panic () > > else > > # some QEMU versions report multiple panic events > > echo "PASS: guest panicked" > > + echo "EXIT: STATUS=1" > > ret=1 > > fi > > > > -- > > 2.45.1 > > > > Do we also need an 'echo "EXIT: STATUS=3"' in the if-arm of this if-else? In that case we don't need it because run_panic() returns 3 in that case. run_qemu_status() only checks guest status if harness said QEMU ran successfully. Arguably this is a bit hacky because "EXIT: STATUS" should really be a guest-printed status, and we would have a different success code for expected-QEMU-crash type of tests where guest can't provide status. I can do that incrementally after this if you like, but it's a bit more code. Thanks, Nick