> On Jul 12, 2021, at 10:07 AM, Andrew Jones wrote: > > On Mon, Jul 12, 2021 at 05:51:55PM +0100, Andre Przywara wrote: >> On Fri, 2 Jul 2021 17:31:18 +0100 >> Alexandru Elisei wrote: >> >> Hi, >> >>> The arm64 tests can be run under kvmtool, which doesn't emulate a >>> chr-testdev device. In preparation for adding run script support for >>> kvmtool, print the test exit status so the scripts can pick it up and >>> correctly mark the test as pass or fail. >>> >>> Signed-off-by: Alexandru Elisei >>> --- >>> lib/chr-testdev.h | 1 + >>> lib/arm/io.c | 10 +++++++++- >>> lib/chr-testdev.c | 5 +++++ >>> 3 files changed, 15 insertions(+), 1 deletion(-) >>> >>> diff --git a/lib/chr-testdev.h b/lib/chr-testdev.h >>> index ffd9a851aa9b..09b4b424670e 100644 >>> --- a/lib/chr-testdev.h >>> +++ b/lib/chr-testdev.h >>> @@ -11,4 +11,5 @@ >>> */ >>> extern void chr_testdev_init(void); >>> extern void chr_testdev_exit(int code); >>> +extern bool chr_testdev_available(void); >>> #endif >>> diff --git a/lib/arm/io.c b/lib/arm/io.c >>> index 343e10822263..9e62b571a91b 100644 >>> --- a/lib/arm/io.c >>> +++ b/lib/arm/io.c >>> @@ -125,7 +125,15 @@ extern void halt(int code); >>> >>> void exit(int code) >>> { >>> - chr_testdev_exit(code); >>> + if (chr_testdev_available()) { >>> + chr_testdev_exit(code); >>> + } else { >>> + /* >>> + * Print the test return code in the format used by chr-testdev >>> + * so the runner script can parse it. >>> + */ >>> + printf("\nEXIT: STATUS=%d\n", ((code) << 1) | 1); >> >> It's more me being clueless here rather than a problem, but where does >> this "EXIT: STATUS" line come from? In lib/chr-testdev.c I see "%dq", >> so it this coming from QEMU (but I couldn't find it in there)? >> >> But anyways the patch looks good and matches what PPC and s390 do. > > I invented the 'EXIT: STATUS' format for PPC, which didn't/doesn't have an > exit code testdev. Now that it has also been adopted by s390 I guess we've > got a kvm-unit-tests standard to follow for arm :-) I was unaware of this “standard” and I mistakenly used a different format for x86, in case someone wants to fix it. [1] [1] https://gitlab.com/kvm-unit-tests/kvm-unit-tests/-/commit/5747945371b47c51cb16187a26111d06f58f06b2