[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20230325043104.3761770-1-davidgow@google.com>
Date: Sat, 25 Mar 2023 12:31:02 +0800
From: David Gow <davidgow@...gle.com>
To: Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Matti Vaittinen <mazziesaccount@...il.com>,
Maxime Ripard <maxime@...no.tech>,
Brendan Higgins <brendan.higgins@...ux.dev>,
Stephen Boyd <sboyd@...nel.org>,
Shuah Khan <skhan@...uxfoundation.org>
Cc: David Gow <davidgow@...gle.com>,
"Rafael J . Wysocki" <rafael@...nel.org>,
Andy Shevchenko <andriy.shevchenko@...ux.intel.com>,
Heikki Krogerus <heikki.krogerus@...ux.intel.com>,
Jonathan Cameron <jic23@...nel.org>,
linux-kernel@...r.kernel.org, linux-kselftest@...r.kernel.org,
kunit-dev@...glegroups.com
Subject: [RFC PATCH 0/2] KUnit device API proposal
Hi all,
This is a follow-up to the conversation[1] about adding helpers to create a
struct device for use in KUnit tests. At the moment, most tests are
using root_device_register(), which doesn't quite fit, and a few are
using platform_devices instead.
This adds a KUnit-specific equivalent: kunit_device_register(), which
creates a device which will be automatically cleaned up on test exit
(such as, for example, if an assertion fails).
It's also possible to unregister it earlier with
kunit_device_unregister().
This can replace the root_device_register() users pretty comfortably,
though doesn't resolve the issue with devm_ resources not being released
properly as laid out in [2]. Updating the implementation here to use a
'kunit' bus should, I think, be reasonably straightforward.
The first patch in the series is an in-progress implementation of a
separate new 'kunit_defer()' API, upon which this device implementation
is built.
If the overall idea seems good, I'll make sure to add better
tests/documentation, and patches converting existing tests to this API.
Cheers,
-- David
[1]: https://lore.kernel.org/linux-kselftest/bad670ee135391eb902bd34b8bcbe777afabc7fd.1679474247.git.mazziesaccount@gmail.com/
[2]: https://lore.kernel.org/linux-kselftest/20230324123157.bbwvfq4gsxnlnfwb@houat/
---
David Gow (2):
kunit: resource: Add kunit_defer() functionality
kunit: Add APIs for managing devices
include/kunit/device.h | 25 +++++++++
include/kunit/resource.h | 87 +++++++++++++++++++++++++++++++
lib/kunit/Makefile | 1 +
lib/kunit/device.c | 68 ++++++++++++++++++++++++
lib/kunit/resource.c | 110 +++++++++++++++++++++++++++++++++++++++
5 files changed, 291 insertions(+)
create mode 100644 include/kunit/device.h
create mode 100644 lib/kunit/device.c
--
2.40.0.348.gf938b09366-goog
Powered by blists - more mailing lists