Message ID | 20181128193636.254378-7-brendanhiggins@google.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Series | kunit: introduce KUnit, the Linux kernel unit testing framework | expand |
On Wed, Nov 28, 2018 at 1:37 PM Brendan Higgins <brendanhiggins@google.com> wrote: > > Make minimum number of changes outside of the KUnit directories for > KUnit to build and run using UML. There's nothing in this patch limiting this to UML. Only patch 1 does that and I would remove that depends. I'd guess most folks will want to run under something other than UML. DRM for instance (though the virtual KMS stuff may work in UML?). Plus you want to make sure this all builds with allmodconfig for x86 (or ARM) because those get the most (and quickest) compile coverage. Rob
On Wed, Nov 28, 2018 at 11:36:23AM -0800, Brendan Higgins wrote: > Make minimum number of changes outside of the KUnit directories for > KUnit to build and run using UML. > > Signed-off-by: Brendan Higgins <brendanhiggins@google.com> > --- > Kconfig | 2 ++ > Makefile | 2 +- > 2 files changed, 3 insertions(+), 1 deletion(-) > > diff --git a/Kconfig b/Kconfig > index 48a80beab6853..10428501edb78 100644 > --- a/Kconfig > +++ b/Kconfig > @@ -30,3 +30,5 @@ source "crypto/Kconfig" > source "lib/Kconfig" > > source "lib/Kconfig.debug" > + > +source "kunit/Kconfig" Since this is all UML why not source it from arch/um/Kconfig instead? Luis
On Wed, Nov 28, 2018 at 03:26:03PM -0600, Rob Herring wrote: > On Wed, Nov 28, 2018 at 1:37 PM Brendan Higgins > <brendanhiggins@google.com> wrote: > > > > Make minimum number of changes outside of the KUnit directories for > > KUnit to build and run using UML. > > There's nothing in this patch limiting this to UML. Not that one, but the abort thing segv thing is, eventually. To support other architectures we'd need to make a wrapper to that hack which Brendan added, and then allow each os to implement its own call, and add an asm-generic helper. Are you volunteering to add the x86 hook? Luis
On Thu, Nov 29, 2018 at 9:37 PM Luis Chamberlain <mcgrof@kernel.org> wrote: > > On Wed, Nov 28, 2018 at 03:26:03PM -0600, Rob Herring wrote: > > On Wed, Nov 28, 2018 at 1:37 PM Brendan Higgins > > <brendanhiggins@google.com> wrote: > > > > > > Make minimum number of changes outside of the KUnit directories for > > > KUnit to build and run using UML. > > > > There's nothing in this patch limiting this to UML. > > Not that one, but the abort thing segv thing is, eventually. > To support other architectures we'd need to make a wrapper to that > hack which Brendan added, and then allow each os to implement > its own call, and add an asm-generic helper. I've not looked into why this is needed, but can't you make the abort support optional and arches can select it when they support it. At least before, the DT unittests didn't need this to run and shouldn't depend on it after converting to kunit. Rob
On Fri, Nov 30, 2018 at 08:05:34AM -0600, Rob Herring wrote: > On Thu, Nov 29, 2018 at 9:37 PM Luis Chamberlain <mcgrof@kernel.org> wrote: > > > > On Wed, Nov 28, 2018 at 03:26:03PM -0600, Rob Herring wrote: > > > On Wed, Nov 28, 2018 at 1:37 PM Brendan Higgins > > > <brendanhiggins@google.com> wrote: > > > > > > > > Make minimum number of changes outside of the KUnit directories for > > > > KUnit to build and run using UML. > > > > > > There's nothing in this patch limiting this to UML. > > > > Not that one, but the abort thing segv thing is, eventually. > > To support other architectures we'd need to make a wrapper to that > > hack which Brendan added, and then allow each os to implement > > its own call, and add an asm-generic helper. > > I've not looked into why this is needed, but can't you make the abort > support optional and arches can select it when they support it. Its why I have asked for it to be properly documented. The patches in no way illustrate *why* such thing is done. And if we are going to potentially have other archs do something similar best to make it explicit. > At > least before, the DT unittests didn't need this to run and shouldn't > depend on it after converting to kunit. Luis
On Fri, Nov 30, 2018 at 10:22 AM Luis Chamberlain <mcgrof@kernel.org> wrote: > > On Fri, Nov 30, 2018 at 08:05:34AM -0600, Rob Herring wrote: > > On Thu, Nov 29, 2018 at 9:37 PM Luis Chamberlain <mcgrof@kernel.org> wrote: > > > > > > On Wed, Nov 28, 2018 at 03:26:03PM -0600, Rob Herring wrote: > > > > On Wed, Nov 28, 2018 at 1:37 PM Brendan Higgins > > > > <brendanhiggins@google.com> wrote: > > > > > > > > > > Make minimum number of changes outside of the KUnit directories for > > > > > KUnit to build and run using UML. > > > > > > > > There's nothing in this patch limiting this to UML. > > > > > > Not that one, but the abort thing segv thing is, eventually. > > > To support other architectures we'd need to make a wrapper to that > > > hack which Brendan added, and then allow each os to implement > > > its own call, and add an asm-generic helper. I think Rob is referring to the description for this patch. This patch previously did what you suggested, Luis, (source the KUnit kconfig from arch/um/) but Kees asked me to change it to how it is now (which probably makes sense if we are saying KUnit is not intended to be tied to a particular architecture, no?), and I forgot to update the commit description, sorry. > > > > I've not looked into why this is needed, but can't you make the abort > > support optional and arches can select it when they support it. > > Its why I have asked for it to be properly documented. The patches in no > way illustrate *why* such thing is done. And if we are going to > potentially have other archs do something similar best to make it > explicit. Yeah, I should better document it. I should also probably not include any UML specific header files in kunit/test.h; that seems like I am asking to get more tightly coupled if I am not careful about exactly what things I depend on. I think Luis is right, I need to add a wrapper around the features needed for the hack to support abort() and then write a UML specific implementation. For the asm-generic case, we could probably just have abort() call BUG(), with that KUnit should work on most architectures, albeit with pretty reduced functionality. > > > At > > least before, the DT unittests didn't need this to run and shouldn't > > depend on it after converting to kunit. Fair enough.
diff --git a/Kconfig b/Kconfig index 48a80beab6853..10428501edb78 100644 --- a/Kconfig +++ b/Kconfig @@ -30,3 +30,5 @@ source "crypto/Kconfig" source "lib/Kconfig" source "lib/Kconfig.debug" + +source "kunit/Kconfig" diff --git a/Makefile b/Makefile index 69fa5c0310d83..197f01cbddf03 100644 --- a/Makefile +++ b/Makefile @@ -966,7 +966,7 @@ endif ifeq ($(KBUILD_EXTMOD),) -core-y += kernel/ certs/ mm/ fs/ ipc/ security/ crypto/ block/ +core-y += kernel/ certs/ mm/ fs/ ipc/ security/ crypto/ block/ kunit/ vmlinux-dirs := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \ $(core-y) $(core-m) $(drivers-y) $(drivers-m) \
Make minimum number of changes outside of the KUnit directories for KUnit to build and run using UML. Signed-off-by: Brendan Higgins <brendanhiggins@google.com> --- Kconfig | 2 ++ Makefile | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-)