This patch chain changes the logging implementation to use string_stream so that the log will grow dynamically.
The first 8 patches add test code for string_stream, and make some changes to string_stream needed to be able to use it for the log.
The final patch adds a performance report of string_stream.
CHANGES SINCE V4: - Re-ordered the first 3 patches from V4 to squash the first two sets of string_stream tests into a single patch. - Changed is_literal() so it doesn't need a struct kunit. - Split out the new resource-managed alloc and free functions into a pre-patch to reduce the amount of code churn when the string_stream is decoupled from kunit. - Wrapped the call to string_stream_geT_string() in string-stream-test in a local function to reduce the amount of code churn when the string_stream is decoupled from kunit. - Some minor changes to test implementations. - string_stream is now completely separated from kunit and the 'test' member of struct string_stream has been eliminated.
Richard Fitzgerald (10): kunit: string-stream: Don't create a fragment for empty strings kunit: string-stream: Improve testing of string_stream kunit: string-stream: Add option to make all lines end with newline kunit: string-stream: Add cases for string_stream newline appending kunit: Don't use a managed alloc in is_literal() kunit: string-stream: Add kunit_alloc_string_stream() kunit: string-stream: Decouple string_stream from kunit kunit: string-stream: Add tests for freeing resource-managed string_stream kunit: Use string_stream for test log kunit: string-stream: Test performance of string_stream
include/kunit/test.h | 14 +- lib/kunit/assert.c | 14 +- lib/kunit/debugfs.c | 36 ++- lib/kunit/kunit-test.c | 46 ++- lib/kunit/string-stream-test.c | 508 +++++++++++++++++++++++++++++++-- lib/kunit/string-stream.c | 100 +++++-- lib/kunit/string-stream.h | 16 +- lib/kunit/test.c | 50 +--- 8 files changed, 662 insertions(+), 122 deletions(-)