On 25/08/2023 07:49, David Gow wrote:
On Thu, 24 Aug 2023 at 22:32, 'Richard Fitzgerald' via KUnit Development kunit-dev@googlegroups.com wrote:
string_stream_managed_free_test() allocates a resource-managed string_stream and tests that kunit_free_string_stream() calls string_stream_destroy().
string_stream_resource_free_test() allocates a resource-managed string_stream and tests that string_stream_destroy() is called when the test resources are cleaned up.
The old string_stream_init_test() has been split into two tests, one for kunit_alloc_string_stream() and the other for alloc_string_stream().
Signed-off-by: Richard Fitzgerald rf@opensource.cirrus.com
Changes since V4:
- Added test case for kunit_free_string_stream().
- Split the initialization test into separate tests for managed and unmanaged allocations.
Looking over this again, I'm not convinced the streams are actually getting freed. Once the stub has finished, the stream is removed from the list of deferred actions / resources.
Argh, I think you're right. My original version stashed the stream into the private data and freed it in a test exit() function so that it was guaranteed to be freed even if the resource cleanup wasn't called and the test function aborted before it could do a manual cleanup. I decided to simplify that but actually that original implementation was better.