On Fri, Jul 5, 2019 at 1:15 PM Luis Chamberlain <mcg...@kernel.org> wrote:
>
> On Wed, Jul 03, 2019 at 05:35:58PM -0700, Brendan Higgins wrote:
> > Add core facilities for defining unit tests; this provides a common way
> > to define test cases, functions that execute code which is under test
> > and determine whether the code under test behaves as expected; this also
> > provides a way to group together related test cases in test suites (here
> > we call them test_modules).
> >
> > Just define test cases and how to execute them for now; setting
> > expectations on code will be defined later.
> >
> > Signed-off-by: Brendan Higgins <brendanhigg...@google.com>
> > Reviewed-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>
> > Reviewed-by: Logan Gunthorpe <log...@deltatee.com>
>
> Reviewed-by: Luis Chamberlain <mcg...@kernel.org>
>
> But a nitpick below, I think that can be fixed later with a follow up
> patch.
>
> > +/**
> > + * struct kunit - represents a running instance of a test.
> > + * @priv: for user to store arbitrary data. Commonly used to pass data 
> > created
> > + * in the init function (see &struct kunit_suite).
> > + *
> > + * Used to store information about the current context under which the 
> > test is
> > + * running. Most of this data is private and should only be accessed 
> > indirectly
> > + * via public functions; the one exception is @priv which can be used by 
> > the
> > + * test writer to store arbitrary data.
> > + *
> > + * A brief note on locking:
> > + *
> > + * First off, we need to lock because in certain cases a user may want to 
> > use an
> > + * expectation in a thread other than the thread that the test case is 
> > running
> > + * in.
>
> This as a prefix to the struct without a lock seems odd. It would be
> clearer I think if you'd explain here what locking mechanism we decided
> to use and why it suffices today.

Whoops, sorry this should have been in the next patch. Will fix.

> > +/**
> > + * suite_test() - used to register a &struct kunit_suite with KUnit.
>
> You mean kunit_test_suite()?

Yep, sorry about that. Will fix.

> > + * @suite: a statically allocated &struct kunit_suite.
> > + *
> > + * Registers @suite with the test framework. See &struct kunit_suite for 
> > more
> > + * information.
> > + *
> > + * NOTE: Currently KUnit tests are all run as late_initcalls; this means 
> > that
> > + * they cannot test anything where tests must run at a different init 
> > phase. One
> > + * significant restriction resulting from this is that KUnit cannot 
> > reliably
> > + * test anything that is initialize in the late_init phase.
>                             initialize prior to the late init phase.
>
>
> That is, this is useless to test things running early.

Yeah, I can add that phrasing in.

> > + *
> > + * TODO(brendanhigg...@google.com): Don't run all KUnit tests as 
> > late_initcalls.
> > + * I have some future work planned to dispatch all KUnit tests from the 
> > same
> > + * place, and at the very least to do so after everything else is 
> > definitely
> > + * initialized.
>
> TODOs are odd to be adding to documentation, this is just not common
> place practice. The NOTE should suffice for you.

Because it is a kernel doc? Would you usually make a separate
non-kernel doc comment for a TODO? I guess that makes sense.

Thanks!
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to