Re: [PATCH] kunit: split resource API from test.h into new resource.h

From: Brendan Higgins
Date: Wed Mar 23 2022 - 19:52:55 EST


On Tue, Mar 15, 2022 at 10:44 PM Daniel Latypov <dlatypov@xxxxxxxxxx> wrote:
>
> Background:
> Currently, a reader looking at kunit/test.h will find the file is quite
> long, and the first meaty comment is a doc comment about struct
> kunit_resource.
>
> Most users will not ever use the KUnit resource API directly.
> They'll use kunit_kmalloc() and friends, or decide it's simpler to do
> cleanups via labels (it often can be) instead of figuring out how to use
> the API.
>
> It's also logically separate from everything else in test.h.
> Removing it from the file doesn't cause any compilation errors (since
> struct kunit has `struct list_head resources` to store them).
>
> This commit:
> Let's move it into a kunit/resource.h file and give it a separate page
> in the docs, kunit/api/resource.rst.
>
> We include resource.h at the bottom of test.h since
> * don't want to force existing users to add a new include if they use the API
> * it accesses `lock` inside `struct kunit` in a inline func
> * so we can't just forward declare, and the alternatives require
> uninlining the func, adding hepers to lock/unlock, or other more
> invasive changes.
>
> Now the first big comment in test.h is about kunit_case, which is a lot
> more relevant to what a new user wants to know.
>
> A side effect of this is git blame won't properly track history by
> default, users need to run
> $ git blame -L ,1 -C17 include/kunit/resource.h
>
> Signed-off-by: Daniel Latypov <dlatypov@xxxxxxxxxx>

Aside from the discussion below,

Reviewed-by: Brendan Higgins <brendanhiggins@xxxxxxxxxx>