On Fri, Mar 24, 2023 at 02:02:06PM +0100, Maxime Ripard wrote:
On Fri, Mar 24, 2023 at 01:43:07PM +0100, Greg Kroah-Hartman wrote:
On Fri, Mar 24, 2023 at 01:36:32PM +0100, Maxime Ripard wrote:
On Thu, Mar 23, 2023 at 11:21:58AM +0100, Greg Kroah-Hartman wrote:
On Thu, Mar 23, 2023 at 11:12:16AM +0100, Maxime Ripard wrote:
On Wed, Mar 22, 2023 at 07:57:10PM +0100, Greg Kroah-Hartman wrote:
> > > +/** > > > + * test_kunit_helper_alloc_device - Allocate a mock device for a KUnit test > > > + * @test: The test context object > > > + * > > > + * This allocates a fake struct &device to create a mock for a KUnit > > > + * test. The device will also be bound to a fake driver. It will thus be > > > + * able to leverage the usual infrastructure and most notably the > > > + * device-managed resources just like a "real" device. > > > > What specific "usual infrastructure" are you wanting to access here? > > > > And again, if you want a fake device, make a virtual one, by just > > calling device_create(). > > > > Or are you wanting to do "more" with that device pointer than > > device_create() can give you? > > Personally, I was (am) only interested in devm_ unwinding. I guess the > device_create(), device_add(), device_remove()... (didn't study this > sequence in details so sorry if there is errors) could've been sufficient > for me. I haven't looked how much of the code that there is for 'platform > devices' should be duplicated to support that sequence for testability > purposes.
Any device can access devm_ code, there's no need for it to be a platform device at all.
Sure but the resources are only released if the device is part of a bus, so it can't be a root_device (or bare device) either
The resources are not cleaned up when the device is freed no matter if it's on a bus or not? If so, then that's a bug that needs to be fixed, and tested :)
Please have a look at: https://lore.kernel.org/linux-kselftest/20230324123157.bbwvfq4gsxnlnfwb@houa...
I couldn't get an answer on whether it was considered a bug or not last time, but as you can see there's a clear difference between a root device and a platform device that has probed when it comes to resource cleanup.
Great, testing shows there are bugs! :)
I mean, it wasn't clear to me that it was indeed a bug or the intent behind devm was that it would only work when probed. Both seemed reasonable.
That's a great start of a test, how about submitting that in a way that I can test it and we can go from there?
Ack.
I guess I'd need to arrange them somewhat differently for it to be useful and merge-able.
How would you prefer them to be submitted, in two different files testing both the root devices and platform devices?
root devices are rare, but yes, one for each would be good, thanks!
greg k-h