On Fri, Feb 15, 2019 at 1:01 PM Stephen Boyd <sboyd@xxxxxxxxxx> wrote: > > Quoting Brendan Higgins (2019-02-14 13:37:14) > > @@ -104,6 +167,7 @@ struct kunit { > > const char *name; /* Read only after initialization! */ > > spinlock_t lock; /* Gaurds all mutable test state. */ > > bool success; /* Protected by lock. */ > > + struct list_head resources; /* Protected by lock. */ > > void (*vprintk)(const struct kunit *test, > > const char *level, > > struct va_format *vaf); > > @@ -127,6 +191,51 @@ int kunit_run_tests(struct kunit_module *module); > > } \ > > late_initcall(module_kunit_init##module) > > > > +/** > > + * kunit_alloc_resource() - Allocates a *test managed resource*. > > + * @test: The test context object. > > + * @init: a user supplied function to initialize the resource. > > + * @free: a user supplied function to free the resource. > > + * @context: for the user to pass in arbitrary data. > > Nitpick: "pass in arbitrary data to the init function"? Maybe that > provides some more clarity. I think that makes sense. Will fix in next revision.