[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [XEN PATCH] CI: Rework RISCV smoke test
Hello Anthony, On Thu, 2023-11-09 at 15:49 +0000, Anthony PERARD wrote: > Currently, the test rely on QEMU and Xen finishing the boot in under > two seconds. That's both very long and very short. Xen usually > managed > to print "All set up" under a second. Unless for some reason we try > to > run the test on a machine that's busy doing something else. > > Rework the test to exit as soon as Xen is done. > > There's two `tail -f`, the first one is there simply to monitor test > progress in GitLab console. The second one is used to detect the test > result as soon as QEMU add it to the file. Both `tail` exit as soon > as > QEMU exit. > > If QEMU fails at start, and exit early, both `tail` will simply exit, > resulting in a failure. > > If the line we are looking for is never printed, the `timeout` on the > second `tail` will force the test to exit with an error. > > Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> > --- > > Notes: > The "machine might be busy" bits refere to having a gitlab-runner > running two jobs, one been a build with no restriction on CPU > resource use. > > We could use "-daemonize" with "-pidfile" to more easly detect > qemu's > initialisation failure, but needs "-display none" instead of > "-nographic" > > automation/scripts/qemu-smoke-riscv64.sh | 32 ++++++++++++++++++---- > -- > 1 file changed, 24 insertions(+), 8 deletions(-) > > diff --git a/automation/scripts/qemu-smoke-riscv64.sh > b/automation/scripts/qemu-smoke-riscv64.sh > index 4008191302..ba7b61db8b 100755 > --- a/automation/scripts/qemu-smoke-riscv64.sh > +++ b/automation/scripts/qemu-smoke-riscv64.sh > @@ -2,19 +2,35 @@ > > set -ex > > -# Run the test > -rm -f smoke.serial > -set +e > +# Truncate or create serial output file > +echo -n > smoke.serial > > -timeout -k 1 2 \ > +# cleanup: kill QEMU when the script exit for any reason > +qemu_pid= > +cleanup() { > + if [ "$qemu_pid" ]; then > + kill -s SIGKILL "$qemu_pid" > + fi > +} > + > +trap 'cleanup' EXIT > + > +# Run the test > qemu-system-riscv64 \ > -M virt \ > -smp 1 \ > -nographic \ > -m 2g \ > + -monitor none \ > + -chardev file,id=serial-out,path=smoke.serial \ > + -serial chardev:serial-out \ > -kernel binaries/xen \ > - |& tee smoke.serial > + & > +qemu_pid=$! > > -set -e > -(grep -q "All set up" smoke.serial) || exit 1 > -exit 0 > +# Monitor test progression until QEMU exit > +tail --pid=$qemu_pid -f smoke.serial & > + > +# Check boot test result > +timeout 60 tail --pid=$qemu_pid -f smoke.serial | \ > + grep -a -q "All set up" I am OK with provided changes. Thanks! Acked-by: Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx> ~ Oleksii
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |