linux-kselftest.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: brendanhiggins at google.com (Brendan Higgins)
Subject: [PATCH v2 00/17] kunit: introduce KUnit, the Linux kernel unit testing framework
Date: Tue, 14 May 2019 01:38:19 -0700	[thread overview]
Message-ID: <20190514083819.GC230665@google.com> (raw)
In-Reply-To: <d148a554-2a71-a5a4-4bb2-d84d2c483277@gmail.com>

On Fri, May 10, 2019 at 03:13:40PM -0700, Frank Rowand wrote:
> On 5/10/19 9:17 AM, Logan Gunthorpe wrote:
> > 
> > 
> > On 2019-05-09 11:18 p.m., Frank Rowand wrote:
> > 
> >> YES, kselftest has in-kernel tests.  (Excuse the shouting...)
> > 
> > Cool. From my cursory look, in my opinion, these would be greatly
> > improved by converting them to the framework Brendan is proposing for Kunit.
> > 
> >>> If they do exists, it seems like it would make sense to
> >>> convert those to kunit and have Kunit tests run-able in a VM or
> >>> baremetal instance.
> >>
> >> They already run in a VM.
> >>
> >> They already run on bare metal.
> >>
> >> They already run in UML.
> > 
> > Simply being able to run in UML is not the only thing here. Kunit
> > provides the infrastructure to quickly build, run and report results for
> > all the tests from userspace without needing to worry about the details
> > of building and running a UML kernel, then parsing dmesg to figure out
> > what tests were run or not.
> 
> Yes.  But that is not the only environment that KUnit must support to be
> of use to me for devicetree unittests (this is not new, Brendan is quite
> aware of my needs and is not ignoring them).
> 
> 
> >> This is not to say that KUnit does not make sense.  But I'm still trying
> >> to get a better description of the KUnit features (and there are
> >> some).
> > 
> > So read the patches, or the documentation[1] or the LWN article[2]. It's
> > pretty well described in a lot of places -- that's one of the big
> > advantages of it. In contrast, few people seems to have any concept of
> > what kselftests are or where they are or how to run them (I was
> > surprised to find the in-kernel tests in the lib tree).
> > 
> > Logan
> > 
> > [1] https://google.github.io/kunit-docs/third_party/kernel/docs/
> > [2] https://lwn.net/Articles/780985/
> 
> I have been following the RFC versions.  I have installed the RFC patches
> and run them to the extent that they worked (devicetree unittests were
> a guinea pig for test conversion in the RFC series, but the converted
> tests did not work).  I read portions of the code while trying to
> understand the unittests conversion.  I made review comments based on
> the portion of the code that I did read.  I have read the documentation
> (very nice btw, as I have said before, but should be expanded).
> 
> My comment is that the description to submit the patch series should
> be fuller -- KUnit potentially has a lot of nice attributes, and I
> still think I have only scratched the surface.  The average reviewer
> may have even less in-depth knowledge than I do.  And as I have
> commented before, I keep diving into areas that I had no previous
> experience with (such as kselftest) to be able to properly judge this
> patch series.

Thanks for the praise! That means a lot coming from you!

I really cannot disagree that I could use more documentation. You can
pretty much always use more documentation. Nevertheless, is there a
particular part of the documentation that you think it lacking?

It sounds like there was a pretty long discussion here about, a number
of different things.

Do you want a better description of what unit testing is and how KUnit
helps make it possible?

Do you want more of an explanation distinguishing KUnit from kselftest?
How so?

Do you just want better documentation on how to test the kernel? What
tools we have at our disposal and when to use what tools?

Thanks!

WARNING: multiple messages have this Message-ID (diff)
From: brendanhiggins@google.com (Brendan Higgins)
Subject: [PATCH v2 00/17] kunit: introduce KUnit, the Linux kernel unit testing framework
Date: Tue, 14 May 2019 01:38:19 -0700	[thread overview]
Message-ID: <20190514083819.GC230665@google.com> (raw)
Message-ID: <20190514083819.hKwempjUTFFFCIMfHumrM9ScT2oxTpTGopAy2xkjZtA@z> (raw)
In-Reply-To: <d148a554-2a71-a5a4-4bb2-d84d2c483277@gmail.com>

On Fri, May 10, 2019@03:13:40PM -0700, Frank Rowand wrote:
> On 5/10/19 9:17 AM, Logan Gunthorpe wrote:
> > 
> > 
> > On 2019-05-09 11:18 p.m., Frank Rowand wrote:
> > 
> >> YES, kselftest has in-kernel tests.  (Excuse the shouting...)
> > 
> > Cool. From my cursory look, in my opinion, these would be greatly
> > improved by converting them to the framework Brendan is proposing for Kunit.
> > 
> >>> If they do exists, it seems like it would make sense to
> >>> convert those to kunit and have Kunit tests run-able in a VM or
> >>> baremetal instance.
> >>
> >> They already run in a VM.
> >>
> >> They already run on bare metal.
> >>
> >> They already run in UML.
> > 
> > Simply being able to run in UML is not the only thing here. Kunit
> > provides the infrastructure to quickly build, run and report results for
> > all the tests from userspace without needing to worry about the details
> > of building and running a UML kernel, then parsing dmesg to figure out
> > what tests were run or not.
> 
> Yes.  But that is not the only environment that KUnit must support to be
> of use to me for devicetree unittests (this is not new, Brendan is quite
> aware of my needs and is not ignoring them).
> 
> 
> >> This is not to say that KUnit does not make sense.  But I'm still trying
> >> to get a better description of the KUnit features (and there are
> >> some).
> > 
> > So read the patches, or the documentation[1] or the LWN article[2]. It's
> > pretty well described in a lot of places -- that's one of the big
> > advantages of it. In contrast, few people seems to have any concept of
> > what kselftests are or where they are or how to run them (I was
> > surprised to find the in-kernel tests in the lib tree).
> > 
> > Logan
> > 
> > [1] https://google.github.io/kunit-docs/third_party/kernel/docs/
> > [2] https://lwn.net/Articles/780985/
> 
> I have been following the RFC versions.  I have installed the RFC patches
> and run them to the extent that they worked (devicetree unittests were
> a guinea pig for test conversion in the RFC series, but the converted
> tests did not work).  I read portions of the code while trying to
> understand the unittests conversion.  I made review comments based on
> the portion of the code that I did read.  I have read the documentation
> (very nice btw, as I have said before, but should be expanded).
> 
> My comment is that the description to submit the patch series should
> be fuller -- KUnit potentially has a lot of nice attributes, and I
> still think I have only scratched the surface.  The average reviewer
> may have even less in-depth knowledge than I do.  And as I have
> commented before, I keep diving into areas that I had no previous
> experience with (such as kselftest) to be able to properly judge this
> patch series.

Thanks for the praise! That means a lot coming from you!

I really cannot disagree that I could use more documentation. You can
pretty much always use more documentation. Nevertheless, is there a
particular part of the documentation that you think it lacking?

It sounds like there was a pretty long discussion here about, a number
of different things.

Do you want a better description of what unit testing is and how KUnit
helps make it possible?

Do you want more of an explanation distinguishing KUnit from kselftest?
How so?

Do you just want better documentation on how to test the kernel? What
tools we have at our disposal and when to use what tools?

Thanks!

  parent reply	other threads:[~2019-05-14  8:38 UTC|newest]

Thread overview: 262+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-01 23:01 [PATCH v2 00/17] kunit: introduce KUnit, the Linux kernel unit testing framework brendanhiggins
2019-05-01 23:01 ` Brendan Higgins
2019-05-01 23:01 ` [PATCH v2 01/17] kunit: test: add KUnit test runner core brendanhiggins
2019-05-01 23:01   ` Brendan Higgins
2019-05-01 23:01 ` [PATCH v2 02/17] kunit: test: add test resource management API brendanhiggins
2019-05-01 23:01   ` Brendan Higgins
2019-05-01 23:01 ` [PATCH v2 03/17] kunit: test: add string_stream a std::stream like string builder brendanhiggins
2019-05-01 23:01   ` Brendan Higgins
2019-05-03  1:26   ` shuah
2019-05-03  1:26     ` shuah
2019-05-03  4:37     ` brendanhiggins
2019-05-03  4:37       ` Brendan Higgins
2019-05-01 23:01 ` [PATCH v2 04/17] kunit: test: add kunit_stream a std::stream like logger brendanhiggins
2019-05-01 23:01   ` Brendan Higgins
2019-05-02 11:00   ` gregkh
2019-05-02 11:00     ` Greg KH
2019-05-02 20:25     ` brendanhiggins
2019-05-02 20:25       ` Brendan Higgins
2019-05-02 21:18       ` frowand.list
2019-05-02 21:18         ` Frank Rowand
2019-05-03  1:50   ` shuah
2019-05-03  1:50     ` shuah
2019-05-03  5:48     ` brendanhiggins
2019-05-03  5:48       ` Brendan Higgins
2019-05-01 23:01 ` [PATCH v2 05/17] kunit: test: add the concept of expectations brendanhiggins
2019-05-01 23:01   ` Brendan Higgins
2019-05-01 23:01 ` [PATCH v2 06/17] kbuild: enable building KUnit brendanhiggins
2019-05-01 23:01   ` Brendan Higgins
2019-05-10  3:03   ` yamada.masahiro
2019-05-10  3:03     ` Masahiro Yamada
2019-05-10 10:27     ` brendanhiggins
2019-05-10 10:27       ` Brendan Higgins
2019-05-10 10:30       ` yamada.masahiro
2019-05-10 10:30         ` Masahiro Yamada
2019-05-10 10:33         ` brendanhiggins
2019-05-10 10:33           ` Brendan Higgins
2019-05-01 23:01 ` [PATCH v2 07/17] kunit: test: add initial tests brendanhiggins
2019-05-01 23:01   ` Brendan Higgins
2019-05-02 10:58   ` gregkh
2019-05-02 10:58     ` Greg KH
2019-05-02 20:30     ` brendanhiggins
2019-05-02 20:30       ` Brendan Higgins
2019-05-03  1:27   ` shuah
2019-05-03  1:27     ` shuah
2019-05-03  5:18     ` brendanhiggins
2019-05-03  5:18       ` Brendan Higgins
2019-05-01 23:01 ` [PATCH v2 08/17] kunit: test: add support for test abort brendanhiggins
2019-05-01 23:01   ` Brendan Higgins
2019-05-03  3:14   ` logang
2019-05-03  3:14     ` Logan Gunthorpe
2019-05-03  6:48     ` brendanhiggins
2019-05-03  6:48       ` Brendan Higgins
2019-05-03 12:33       ` logang
2019-05-03 12:33         ` Logan Gunthorpe
2019-05-06  8:48         ` brendanhiggins
2019-05-06  8:48           ` Brendan Higgins
2019-05-01 23:01 ` [PATCH v2 09/17] kunit: test: add tests for kunit " brendanhiggins
2019-05-01 23:01   ` Brendan Higgins
2019-05-01 23:01 ` [PATCH v2 10/17] kunit: test: add the concept of assertions brendanhiggins
2019-05-01 23:01   ` Brendan Higgins
2019-05-01 23:01 ` [PATCH v2 11/17] kunit: test: add test managed resource tests brendanhiggins
2019-05-01 23:01   ` Brendan Higgins
2019-05-03 14:34   ` shuah
2019-05-03 14:34     ` shuah
2019-05-06  9:03     ` brendanhiggins
2019-05-06  9:03       ` Brendan Higgins
2019-05-01 23:01 ` [PATCH v2 12/17] kunit: tool: add Python wrappers for running KUnit tests brendanhiggins
2019-05-01 23:01   ` Brendan Higgins
2019-05-02 11:02   ` gregkh
2019-05-02 11:02     ` Greg KH
2019-05-02 18:07     ` brendanhiggins
2019-05-02 18:07       ` Brendan Higgins
2019-05-02 21:16       ` frowand.list
2019-05-02 21:16         ` Frank Rowand
2019-05-02 23:45         ` brendanhiggins
2019-05-02 23:45           ` Brendan Higgins
2019-05-03  1:45           ` frowand.list
2019-05-03  1:45             ` Frank Rowand
2019-05-03  5:36             ` brendanhiggins
2019-05-03  5:36               ` Brendan Higgins
2019-05-03 18:59               ` frowand.list
2019-05-03 18:59                 ` Frank Rowand
2019-05-03 23:14                 ` brendanhiggins
2019-05-03 23:14                   ` Brendan Higgins
2019-05-04 10:42                   ` gregkh
2019-05-04 10:42                     ` Greg KH
2019-05-06  0:19                   ` frowand.list
2019-05-06  0:19                     ` Frank Rowand
2019-05-06 17:43                     ` keescook
2019-05-06 17:43                       ` Kees Cook
2019-05-06 21:42                       ` brendanhiggins
2019-05-06 21:42                         ` Brendan Higgins
2019-05-06 21:39                     ` brendanhiggins
2019-05-06 21:39                       ` Brendan Higgins
2019-05-07 19:13                       ` Tim.Bird
2019-05-07 19:13                         ` Tim.Bird
2019-05-03  6:41           ` gregkh
2019-05-03  6:41             ` Greg KH
2019-05-01 23:01 ` [PATCH v2 13/17] kunit: defconfig: add defconfigs for building " brendanhiggins
2019-05-01 23:01   ` Brendan Higgins
2019-05-01 23:01 ` [PATCH v2 14/17] Documentation: kunit: add documentation for KUnit brendanhiggins
2019-05-01 23:01   ` Brendan Higgins
2019-05-09  5:08   ` rdunlap
2019-05-09  5:08     ` Randy Dunlap
2019-05-09 17:38     ` brendanhiggins
2019-05-09 17:38       ` Brendan Higgins
2019-05-01 23:01 ` [PATCH v2 15/17] MAINTAINERS: add entry for KUnit the unit testing framework brendanhiggins
2019-05-01 23:01   ` Brendan Higgins
2019-05-03 14:38   ` shuah
2019-05-03 14:38     ` shuah
2019-05-06  9:18     ` brendanhiggins
2019-05-06  9:18       ` Brendan Higgins
2019-05-01 23:01 ` [PATCH v2 16/17] kernel/sysctl-test: Add null pointer test for sysctl.c:proc_dointvec() brendanhiggins
2019-05-01 23:01   ` Brendan Higgins
2019-05-02 11:03   ` gregkh
2019-05-02 11:03     ` Greg KH
2019-05-02 18:14     ` Tim.Bird
2019-05-02 18:14       ` Tim.Bird
2019-05-02 18:45       ` brendanhiggins
2019-05-02 18:45         ` Brendan Higgins
2019-05-03  6:42         ` gregkh
2019-05-03  6:42           ` Greg KH
2019-05-03 23:41           ` brendanhiggins
2019-05-03 23:41             ` Brendan Higgins
2019-05-04 10:40             ` gregkh
2019-05-04 10:40               ` Greg KH
2019-05-01 23:01 ` [PATCH v2 17/17] MAINTAINERS: add proc sysctl KUnit test to PROC SYSCTL section brendanhiggins
2019-05-01 23:01   ` Brendan Higgins
2019-05-02 10:50 ` [PATCH v2 00/17] kunit: introduce KUnit, the Linux kernel unit testing framework gregkh
2019-05-02 10:50   ` Greg KH
2019-05-02 11:05   ` gregkh
2019-05-02 11:05     ` Greg KH
2019-05-03  0:41     ` brendanhiggins
2019-05-03  0:41       ` Brendan Higgins
2019-05-02 14:04   ` shuah
2019-05-02 14:04     ` shuah
2019-05-03  0:44     ` brendanhiggins
2019-05-03  0:44       ` Brendan Higgins
2019-05-03  3:18 ` logang
2019-05-03  3:18   ` Logan Gunthorpe
2019-05-07  3:14 ` frowand.list
2019-05-07  3:14   ` Frank Rowand
2019-05-07  8:01   ` gregkh
2019-05-07  8:01     ` Greg KH
2019-05-07 15:23     ` shuah
2019-05-07 15:23       ` shuah
2019-05-09  1:01       ` frowand.list
2019-05-09  1:01         ` Frank Rowand
2019-05-07 17:22     ` tytso
2019-05-07 17:22       ` Theodore Ts'o
2019-05-08 19:17       ` brendanhiggins
2019-05-08 19:17         ` Brendan Higgins
2019-05-09  0:58       ` frowand.list
2019-05-09  0:58         ` Frank Rowand
2019-05-09  1:44         ` tytso
2019-05-09  1:44           ` Theodore Ts'o
2019-05-09  2:18           ` frowand.list
2019-05-09  2:18             ` Frank Rowand
2019-05-14  8:22         ` brendanhiggins
2019-05-14  8:22           ` Brendan Higgins
2019-05-09  0:43     ` frowand.list
2019-05-09  0:43       ` Frank Rowand
2019-05-09  1:58       ` tytso
2019-05-09  1:58         ` Theodore Ts'o
2019-05-09  2:13         ` frowand.list
2019-05-09  2:13           ` Frank Rowand
2019-05-09  3:20           ` tytso
2019-05-09  3:20             ` Theodore Ts'o
2019-05-09 11:52             ` knut.omang
2019-05-09 11:52               ` Knut Omang
2019-05-09 13:35               ` tytso
2019-05-09 13:35                 ` Theodore Ts'o
2019-05-09 14:48                 ` knut.omang
2019-05-09 14:48                   ` Knut Omang
2019-05-09 17:00                 ` Tim.Bird
2019-05-09 17:00                   ` Tim.Bird
2019-05-09 17:42                   ` daniel
2019-05-09 17:42                     ` Daniel Vetter
2019-05-09 18:12                   ` frowand.list
2019-05-09 18:12                     ` Frank Rowand
2019-05-09 21:42                     ` tytso
2019-05-09 21:42                       ` Theodore Ts'o
2019-05-09 22:20                       ` logang
2019-05-09 22:20                         ` Logan Gunthorpe
2019-05-09 23:30                         ` tytso
2019-05-09 23:30                           ` Theodore Ts'o
2019-05-09 23:40                           ` logang
2019-05-09 23:40                             ` Logan Gunthorpe
2019-05-10  4:47                             ` tytso
2019-05-10  4:47                               ` Theodore Ts'o
2019-05-10  5:18                             ` frowand.list
2019-05-10  5:18                               ` Frank Rowand
2019-05-10  5:48                               ` knut.omang
2019-05-10  5:48                                 ` Knut Omang
2019-05-10  8:12                                 ` daniel
2019-05-10  8:12                                   ` Daniel Vetter
2019-05-10 10:23                                   ` brendanhiggins
2019-05-10 10:23                                     ` Brendan Higgins
2019-05-10 12:12                                     ` knut.omang
2019-05-10 12:12                                       ` Knut Omang
2019-05-10 20:54                                       ` brendanhiggins
2019-05-10 20:54                                         ` Brendan Higgins
2019-05-10 22:18                                         ` frowand.list
2019-05-10 22:18                                           ` Frank Rowand
2019-05-11  6:17                                           ` knut.omang
2019-05-11  6:17                                             ` Knut Omang
2019-05-14  6:39                                             ` brendanhiggins
2019-05-14  6:39                                               ` Brendan Higgins
2019-05-10 21:59                                     ` frowand.list
2019-05-10 21:59                                       ` Frank Rowand
2019-05-11  6:43                                       ` knut.omang
2019-05-11  6:43                                         ` Knut Omang
2019-05-14  8:00                                         ` brendanhiggins
2019-05-14  8:00                                           ` Brendan Higgins
2019-05-10 11:36                                   ` knut.omang
2019-05-10 11:36                                     ` Knut Omang
2019-05-10 16:17                               ` logang
2019-05-10 16:17                                 ` Logan Gunthorpe
2019-05-10 22:13                                 ` frowand.list
2019-05-10 22:13                                   ` Frank Rowand
2019-05-14  8:38                                   ` brendanhiggins [this message]
2019-05-14  8:38                                     ` Brendan Higgins
2019-05-15  0:14                                     ` frowand.list
2019-05-15  0:14                                       ` Frank Rowand
2019-05-15  0:26                                       ` logang
2019-05-15  0:26                                         ` Logan Gunthorpe
2019-05-10 21:52                         ` frowand.list
2019-05-10 21:52                           ` Frank Rowand
2019-05-14 20:54                           ` brendanhiggins
2019-05-14 20:54                             ` Brendan Higgins
2019-05-10 21:12                       ` frowand.list
2019-05-10 21:12                         ` Frank Rowand
2019-05-11 17:33                         ` tytso
2019-05-11 17:33                           ` Theodore Ts'o
2019-05-13 14:44                           ` daniel
2019-05-13 14:44                             ` Daniel Vetter
2019-05-14  6:04                             ` brendanhiggins
2019-05-14  6:04                               ` Brendan Higgins
2019-05-14 12:05                               ` daniel
2019-05-14 12:05                                 ` Daniel Vetter
2019-05-14 18:36                                 ` brendanhiggins
2019-05-14 18:36                                   ` Brendan Higgins
2019-05-15  7:41                                   ` daniel
2019-05-15  7:41                                     ` Daniel Vetter
2019-05-22 21:38                                     ` brendanhiggins
2019-05-22 21:38                                       ` Brendan Higgins
2019-05-23  8:40                                       ` daniel
2019-05-23  8:40                                         ` Daniel Vetter
2019-05-15  0:26                           ` frowand.list
2019-05-15  0:26                             ` Frank Rowand
2019-05-15  4:28                             ` tytso
2019-05-15  4:28                               ` Theodore Ts'o
2019-05-10  5:11           ` frowand.list
2019-05-10  5:11             ` Frank Rowand
2019-05-10 10:43             ` tytso
2019-05-10 10:43               ` Theodore Ts'o
2019-05-10 21:05               ` frowand.list
2019-05-10 21:05                 ` Frank Rowand
2019-05-09 15:19 ` yamada.masahiro
2019-05-09 15:19   ` Masahiro Yamada
2019-05-10 10:25   ` brendanhiggins
2019-05-10 10:25     ` 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=20190514083819.GC230665@google.com \
    --to=linux-kselftest@vger.kernel.org \
    /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).