On Tue, Jan 28, 2020 at 10:33 PM Stephen Boyd <sboyd@xxxxxxxxxx> wrote: > > Quoting Brendan Higgins (2020-01-27 23:20:01) > > From: David Gow <davidgow@xxxxxxxxxx> > > > > Add a new kernel command-line option, 'kunit_shutdown', which allows the > > user to specify that the kernel poweroff, halt, or reboot after > > completing all KUnit tests; this is very handy for running KUnit tests > > on UML or a VM so that the UML/VM process exits cleanly immediately > > after running all tests without needing a special initramfs. > > > > Signed-off-by: David Gow <davidgow@xxxxxxxxxx> > > Signed-off-by: Brendan Higgins <brendanhiggins@xxxxxxxxxx> > > --- > > Two nitpicks below > > Reviewed-by: Stephen Boyd <sboyd@xxxxxxxxxx> > > > diff --git a/lib/kunit/executor.c b/lib/kunit/executor.c > > index 7fd16feff157e..d3ec1265a72fd 100644 > > --- a/lib/kunit/executor.c > > +++ b/lib/kunit/executor.c > > @@ -1,6 +1,7 @@ > > // SPDX-License-Identifier: GPL-2.0 > > > > #include <kunit/test.h> > > +#include <linux/reboot.h> > > Should this include come before kunit/test.h? I imagine the order of > includes would be linux, kunit, local? I think some reviewers/maintainers want them all to be alphabetical. So I have probably done it both ways in the past. Will fix. > > > > /* > > * These symbols point to the .kunit_test_suites section and are defined in > > @@ -11,6 +12,23 @@ extern struct kunit_suite * const * const __kunit_suites_end[]; > > > > #if IS_BUILTIN(CONFIG_KUNIT) > > > > +static char *kunit_shutdown; > > +core_param(kunit_shutdown, kunit_shutdown, charp, 0644); > > + > > +static void kunit_handle_shutdown(void) > > +{ > > + if (!kunit_shutdown) > > + return; > > + > > + if (!strcmp(kunit_shutdown, "poweroff")) { > > + kernel_power_off(); > > + } else if (!strcmp(kunit_shutdown, "halt")) { > > + kernel_halt(); > > + } else if (!strcmp(kunit_shutdown, "reboot")) { > > + kernel_restart(NULL); > > + } > > Kernel style would be to not have braces on single line if statements. Whoops. Sometimes I forget :-) > > +} > > + > > static void kunit_print_tap_header(void) > > { > > struct kunit_suite * const * const *suites, * const *subsuite; Thanks!