[v3,0/7] kunit: Add dynamically-extending log

Message ID 20230809155438.22470-1-rf@opensource.cirrus.com
Headers
Series kunit: Add dynamically-extending log |

Message

Richard Fitzgerald Aug. 9, 2023, 3:54 p.m. UTC
  Replace the original fixed-size log buffer with a dynamically-
extending log.

Patch 1 provides the basic implementation. The following patches
add test cases, support for logging long strings, and an optimization
to the string formatting that is now more thoroughly testable.

Changes since v2:
- Fixed uninitialized string bug in get_concatenated_log().
- Moved get_concatenated_log() into first patch so that
  kunit_log_newline_test() dumps the entire log on error.
- Moved kunit_log_frag_sized_line_test() to the correct point in
  the chain, after the change that it depends on. Also log another
  line after the long line to test that the log extends correctly.
- Added kunit_log_init_frag_test() to test kunit_init_log_frag()
  instead of testing it as part of every other test.

Richard Fitzgerald (7):
  kunit: Replace fixed-size log with dynamically-extending buffer
  kunit: kunit-test: Add test cases for extending log buffer
  kunit: Handle logging of lines longer than the fragment buffer size
  kunit: kunit-test: Test logging a line that exactly fills a fragment
  kunit: kunit-test: Add test cases for logging very long lines
  kunit: kunit-test: Add test of logging only a newline
  kunit: Don't waste first attempt to format string in
    kunit_log_append()

 include/kunit/test.h   |  25 ++-
 lib/kunit/debugfs.c    |  65 ++++++--
 lib/kunit/kunit-test.c | 339 ++++++++++++++++++++++++++++++++++++++++-
 lib/kunit/test.c       | 127 ++++++++++++---
 4 files changed, 507 insertions(+), 49 deletions(-)