kunit: split resource API from test.h into new resource.h
authorDaniel Latypov <dlatypov@google.com>
Mon, 28 Mar 2022 17:41:42 +0000 (10:41 -0700)
committerShuah Khan <skhan@linuxfoundation.org>
Mon, 4 Apr 2022 22:23:08 +0000 (16:23 -0600)
commit61695f8c5d5190db11aece403304f06d22c90597
tree6bcb0bc11b75105d35cf856c78fea249d46d45c0
parentbaa3331503271c84c252ab42475729c028b07acf
kunit: split resource API from test.h into new resource.h

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@google.com>
Reviewed-by: David Gow <davidgow@google.com>
Reviewed-by: Brendan Higgins <brendanhiggins@google.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
Documentation/dev-tools/kunit/api/index.rst
Documentation/dev-tools/kunit/api/resource.rst [new file with mode: 0644]
include/kunit/resource.h [new file with mode: 0644]
include/kunit/test.h