linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Knut Omang <knut.omang@oracle.com>
To: Logan Gunthorpe <logang@deltatee.com>,
	Brendan Higgins <brendanhiggins@google.com>
Cc: Kees Cook <keescook@google.com>,
	Luis Chamberlain <mcgrof@kernel.org>,
	shuah@kernel.org, Rob Herring <robh@kernel.org>,
	Kieran Bingham <kieran.bingham@ideasonboard.com>,
	Frank Rowand <frowand.list@gmail.com>,
	Greg KH <gregkh@linuxfoundation.org>,
	Joel Stanley <joel@jms.id.au>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Joe Perches <joe@perches.com>,
	brakmo@fb.com, Steven Rostedt <rostedt@goodmis.org>,
	"Bird, Timothy" <Tim.Bird@sony.com>,
	Kevin Hilman <khilman@baylibre.com>,
	Julia Lawall <julia.lawall@lip6.fr>,
	linux-kselftest@vger.kernel.org, kunit-dev@googlegroups.com,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Jeff Dike <jdike@addtoit.com>,
	Richard Weinberger <richard@nod.at>,
	linux-um@lists.infradead.org, Daniel Vetter <daniel@ffwll.ch>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	Dan Williams <dan.j.williams@intel.com>,
	linux-nvdimm <linux-nvdimm@lists.01.org>,
	devicetree <devicetree@vger.kernel.org>,
	Petr Mladek <pmladek@suse.com>,
	Sasha Levin <Alexander.Levin@microsoft.com>,
	Amir Goldstein <amir73il@gmail.com>,
	Dan Carpenter <dan.carpenter@oracle.com>,
	wfg@linux.intel.com, Alan Maguire <alan.maguire@oracle.com>
Subject: Re: [RFC v4 00/17] kunit: introduce KUnit, the Linux kernel unit testing framework
Date: Thu, 21 Mar 2019 21:14:40 +0100	[thread overview]
Message-ID: <356e2b5f8d18b7789a38d0e6e3fe7a48784ba56b.camel@oracle.com> (raw)
In-Reply-To: <961494a3-d08c-2720-c59d-7d7008edb288@deltatee.com>

On Thu, 2019-03-21 at 13:29 -0600, Logan Gunthorpe wrote:
> 
> On 2019-03-21 1:13 p.m., Knut Omang wrote:
> > > Nevertheless, I don't really see KTF as a real unit testing framework
> > > for a number of different reasons; you pointed out some below, but I
> > > think the main one being that it requires booting a real kernel on
> > > actual hardware; 
> > 
> > That depends on what you want to test. If you need hardware (or simulated or
> > emulated hardware) for the test, of course you would need to have that
> > hardware,
> > but if, lets say, you just wanted to run tests like the skbuff example tests
> > (see link above) you wouldn't need anything more than what you need to run
> > KUnit
> > tests.
> 
> I'm starting to get the same impression: KTF isn't unit testing. When we
> are saying "unit tests" we are specifying exactly what we want to test:
> small sections of code in isolation. So by definition you should not
> need hardware for this.

In my world hardware is just that: a piece of code. It can be in many forms, but
it is still code to be tested, and code that can be changed (but sometimes at a
slightly higher cost than a recompile ;-)

But that's not the point here: KTF can be used for your narrower definition of
unit tests, and it can be used for small, precise tests, for particular bugs for
instance, that you would not characterize as a unit test, still it serves the
same purpose, and I believe in a pragmatic approach to this. We want to maximize
the value of our time. I believe there's a sweet point wrt return on investment
on the scale from purist unit testing to just writing code and test with
existing applications. We're targeting that ;-)

> > I have fulfilled that dream, so I know it is possible (Inifinband driver,
> > kernels from 2.6.39 to 4.8.x or so..) I know a lot of projects would benefit
> > from support for such workflows, but that's not really the point here - we
> > want
> > to achieve both goals!
> 
> This is what makes me think we are not talking about testing the same
> things. We are not talking about end to end testing of entire drivers
> but smaller sections of code.

No! I am talking about testing units within a driver, or within any kernel
component. I am sure you agree that what constitutes a unit depend on what 
level of abstraction you are looking at.

>  A unit test is far more granular and
> despite an infinband driver existing for 2.6.39 through 4.8, the
> internal implementation could be drastically different. But unit tests
> would be testing internal details which could be very different version
> to version and has to evolve with the implementation.

> > If your target component under test can be built as a kernel module, or set
> > of
> > modules, with KTF your workflow would not involve booting at all (unless you
> > happened to crash the system with one of your tests, that is :) )
> > You would just unload your module under test and the test module, recompile
> > the
> > two and insmod again. My work current work cycle on this is just a few
> > seconds.
> 
> Yes, I'm sure we've all done that many a time but it's really beside the
> point. Kunit offers a much nicer method for running a lot of unit tests
> on existing code.

Again, use cases and examples are the key here,..

Knut



  reply	other threads:[~2019-03-21 20:16 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-14 21:37 [RFC v4 00/17] kunit: introduce KUnit, the Linux kernel unit testing framework Brendan Higgins
2019-02-14 21:37 ` [RFC v4 01/17] kunit: test: add KUnit test runner core Brendan Higgins
2019-02-14 21:37 ` [RFC v4 02/17] kunit: test: add test resource management API Brendan Higgins
2019-02-15 21:01   ` Stephen Boyd
2019-02-19 23:24     ` Brendan Higgins
2019-02-14 21:37 ` [RFC v4 03/17] kunit: test: add string_stream a std::stream like string builder Brendan Higgins
2019-02-14 21:37 ` [RFC v4 04/17] kunit: test: add test_stream a std::stream like logger Brendan Higgins
2019-02-14 21:37 ` [RFC v4 05/17] kunit: test: add the concept of expectations Brendan Higgins
2019-02-14 21:37 ` [RFC v4 06/17] kbuild: enable building KUnit Brendan Higgins
2019-02-14 21:37 ` [RFC v4 07/17] kunit: test: add initial tests Brendan Higgins
2019-02-14 21:37 ` [RFC v4 08/17] kunit: test: add support for test abort Brendan Higgins
2019-02-18 19:52   ` Frank Rowand
2019-02-20  3:39     ` Brendan Higgins
2019-02-20  6:44       ` Frank Rowand
2019-02-28  7:42         ` Brendan Higgins
2019-03-22  1:09           ` Frank Rowand
2019-03-22  1:41             ` Brendan Higgins
2019-03-22  7:10               ` Knut Omang
2019-03-25 22:32                 ` Brendan Higgins
2019-03-26  7:44                   ` Knut Omang
2019-02-26 20:35   ` Stephen Boyd
2019-02-28  9:03     ` Brendan Higgins
2019-02-28 13:54       ` Dan Carpenter
2019-03-04 22:28         ` Brendan Higgins
     [not found]       ` <155137694423.260864.2846034318906225490@swboyd.mtv.corp.google.com>
2019-03-04 22:39         ` Brendan Higgins
2019-02-14 21:37 ` [RFC v4 09/17] kunit: test: add the concept of assertions Brendan Higgins
2019-02-14 21:37 ` [RFC v4 10/17] kunit: test: add test managed resource tests Brendan Higgins
2019-02-15 20:54   ` Stephen Boyd
2019-02-19 23:20     ` Brendan Higgins
2019-02-14 21:37 ` [RFC v4 11/17] kunit: tool: add Python wrappers for running KUnit tests Brendan Higgins
2019-02-14 21:37 ` [RFC v4 12/17] kunit: defconfig: add defconfigs for building " Brendan Higgins
2019-02-14 21:37 ` [RFC v4 13/17] Documentation: kunit: add documentation for KUnit Brendan Higgins
2019-02-14 21:37 ` [RFC v4 14/17] MAINTAINERS: add entry for KUnit the unit testing framework Brendan Higgins
2019-02-14 21:37 ` [RFC v4 15/17] of: unittest: migrate tests to run on KUnit Brendan Higgins
2019-02-16  0:24   ` Frank Rowand
2019-02-20  2:24     ` Brendan Higgins
2019-02-14 21:37 ` [RFC v4 16/17] of: unittest: split out a couple of test cases from unittest Brendan Higgins
2019-03-22  1:14   ` Frank Rowand
2019-03-22  1:45     ` Brendan Higgins
2019-02-14 21:37 ` [RFC v4 17/17] of: unittest: split up some super large test cases Brendan Higgins
2019-03-22  1:16   ` Frank Rowand
2019-03-22  1:45     ` Brendan Higgins
2019-02-18 20:02 ` [RFC v4 00/17] kunit: introduce KUnit, the Linux kernel unit testing framework Frank Rowand
2019-02-20  6:34   ` Brendan Higgins
2019-02-20  6:46     ` Frank Rowand
2019-02-22 20:52       ` Thiago Jung Bauermann
2019-02-28  4:18         ` Brendan Higgins
2019-02-28  4:15       ` Brendan Higgins
2019-03-04 23:01 ` Brendan Higgins
2019-03-22  1:23   ` Frank Rowand
2019-03-25 22:11     ` Brendan Higgins
2019-03-21  1:07 ` Logan Gunthorpe
2019-03-21  5:23   ` Knut Omang
2019-03-21 15:56     ` Logan Gunthorpe
2019-03-21 16:55       ` Brendan Higgins
2019-03-21 19:13         ` Knut Omang
2019-03-21 19:29           ` Logan Gunthorpe
2019-03-21 20:14             ` Knut Omang [this message]
2019-03-21 22:07   ` Brendan Higgins
2019-03-21 22:26     ` Logan Gunthorpe
2019-03-21 23:33       ` Brendan Higgins
2019-03-22  1:12         ` Frank Rowand
2019-03-25 22:12           ` Brendan Higgins

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=356e2b5f8d18b7789a38d0e6e3fe7a48784ba56b.camel@oracle.com \
    --to=knut.omang@oracle.com \
    --cc=Alexander.Levin@microsoft.com \
    --cc=Tim.Bird@sony.com \
    --cc=alan.maguire@oracle.com \
    --cc=amir73il@gmail.com \
    --cc=brakmo@fb.com \
    --cc=brendanhiggins@google.com \
    --cc=dan.carpenter@oracle.com \
    --cc=dan.j.williams@intel.com \
    --cc=daniel@ffwll.ch \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=frowand.list@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jdike@addtoit.com \
    --cc=joe@perches.com \
    --cc=joel@jms.id.au \
    --cc=julia.lawall@lip6.fr \
    --cc=keescook@google.com \
    --cc=khilman@baylibre.com \
    --cc=kieran.bingham@ideasonboard.com \
    --cc=kunit-dev@googlegroups.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-nvdimm@lists.01.org \
    --cc=linux-um@lists.infradead.org \
    --cc=logang@deltatee.com \
    --cc=mcgrof@kernel.org \
    --cc=mpe@ellerman.id.au \
    --cc=pmladek@suse.com \
    --cc=richard@nod.at \
    --cc=robh@kernel.org \
    --cc=rostedt@goodmis.org \
    --cc=shuah@kernel.org \
    --cc=wfg@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).