Hi Linus, Please pull the following KUnit update for Linux 5.19-rc1. This KUnit update for Linux 5.19-rc1 consists of several fixes, cleanups, and enhancements to tests and framework: - introduces _NULL and _NOT_NULL macros to pointer error checks - reworks kunit_resource allocation policy to fix memory leaks when caller doesn't specify free() function to be used when allocating memory using kunit_add_resource() and kunit_alloc_resource() funcs. - adds ability to specify suite-level init and exit functions diff is attached. thanks, -- Shuah ---------------------------------------------------------------- The following changes since commit 3123109284176b1532874591f7c81f3837bbdc17: Linux 5.18-rc1 (2022-04-03 14:08:21 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest tags/linux-kselftest-kunit-5.19-rc1 for you to fetch changes up to e7eaffce47b7db72b077630dbe836f0c4132496d: kunit: tool: Use qemu-system-i386 for i386 runs (2022-05-18 17:03:54 -0600) ---------------------------------------------------------------- linux-kselftest-kunit-5.19-rc1 This KUnit update for Linux 5.19-rc1 consists of several fixes, cleanups, and enhancements to tests and framework: - introduces _NULL and _NOT_NULL macros to pointer error checks - reworks kunit_resource allocation policy to fix memory leaks when caller doesn't specify free() function to be used when allocating memory using kunit_add_resource() and kunit_alloc_resource() funcs. - adds ability to specify suite-level init and exit functions ---------------------------------------------------------------- Brendan Higgins (2): kunit: add support for kunit_suites that reference init code kunit: tool: update riscv QEMU config with new serial dependency Daniel Latypov (25): kunit: tool: make --json handling a bit clearer kunit: tool: drop unused KernelDirectoryPath var kunit: tool: drop last uses of collections.namedtuple kunit: tool: simplify code since build_dir can't be None kunit: tool: readability tweaks in KernelCI json generation logic kunit: tool: refactor how we plumb metadata into JSON kunit: tool: properly report the used arch for --json, or '' if not known kunit: tool: more descriptive metavars/--help output kunit: split resource API from test.h into new resource.h kunit: split resource API impl from test.c into new resource.c Documentation: kunit: update kconfig options needed for UML coverage kunit: rename print_subtest_{start,end} for clarity (s/subtest/suite) kunit: add ability to specify suite-level init and exit functions kfence: test: use new suite_{init/exit} support, add .kunitconfig kunit: fix debugfs code to use enum kunit_status, not bool lib/Kconfig.debug: change KUnit tests to default to KUNIT_ALL_TESTS kunit: bail out of test filtering logic quicker if OOM kunit: tool: update test counts summary line format kunit: tool: stop using a shell to run kernel under QEMU kunit: tool: print clearer error message when there's no TAP output kunit: tool: remove dead parse_crash_in_log() logic kunit: tool: make parser stop overwriting status of suites w/ no_tests kunit: tool: minor cosmetic cleanups in kunit_parser.py kunit: tool: misc cleanups kunit: fix executor OOM error handling logic on non-UML David Gow (5): list: test: Test the hlist structure kunit: Make kunit_remove_resource() idempotent kunit: Rework kunit_resource allocation policy kunit: tool: Add list of all valid test configs on UML kunit: tool: Use qemu-system-i386 for i386 runs Kees Cook (1): kunit: tool: Do not colorize output when redirected Marco Elver (1): kcsan: test: use new suite_{init,exit} support Miguel Ojeda (1): kunit: take `kunit_assert` as `const` Ricardo Ribalda (6): kunit: Introduce _NULL and _NOT_NULL macros kunit: use NULL macros thunderbolt: test: use NULL macros kasan: test: Use NULL macros mctp: test: Use NULL macros apparmor: test: Use NULL macros Documentation/dev-tools/kunit/api/index.rst | 5 + Documentation/dev-tools/kunit/api/resource.rst | 13 + Documentation/dev-tools/kunit/running_tips.rst | 3 +- Documentation/dev-tools/kunit/usage.rst | 19 +- drivers/thunderbolt/test.c | 134 +++---- include/kunit/resource.h | 406 ++++++++++++++++++++ include/kunit/test.h | 418 ++++++--------------- kernel/kcsan/kcsan_test.c | 31 +- lib/Kconfig.debug | 15 +- lib/kunit/Makefile | 1 + lib/kunit/debugfs.c | 2 +- lib/kunit/executor.c | 32 +- lib/kunit/executor_test.c | 4 +- lib/kunit/kunit-example-test.c | 16 + lib/kunit/kunit-test.c | 37 +- lib/kunit/resource.c | 79 ++++ lib/kunit/test.c | 145 ++----- lib/list-test.c | 397 ++++++++++++++++++- lib/test_kasan.c | 2 +- mm/kfence/.kunitconfig | 6 + mm/kfence/kfence_test.c | 31 +- net/mctp/test/route-test.c | 4 +- security/apparmor/policy_unpack_test.c | 6 +- tools/testing/kunit/configs/all_tests_uml.config | 37 ++ tools/testing/kunit/kunit.py | 63 ++-- tools/testing/kunit/kunit_config.py | 21 +- tools/testing/kunit/kunit_json.py | 66 ++-- tools/testing/kunit/kunit_kernel.py | 81 ++-- tools/testing/kunit/kunit_parser.py | 154 +++----- tools/testing/kunit/kunit_tool_test.py | 44 +-- tools/testing/kunit/qemu_config.py | 17 +- tools/testing/kunit/qemu_configs/alpha.py | 2 +- tools/testing/kunit/qemu_configs/arm.py | 2 +- tools/testing/kunit/qemu_configs/arm64.py | 2 +- tools/testing/kunit/qemu_configs/i386.py | 4 +- tools/testing/kunit/qemu_configs/powerpc.py | 2 +- tools/testing/kunit/qemu_configs/riscv.py | 7 +- tools/testing/kunit/qemu_configs/s390.py | 4 +- tools/testing/kunit/qemu_configs/sparc.py | 2 +- tools/testing/kunit/qemu_configs/x86_64.py | 2 +- tools/testing/kunit/run_checks.py | 2 +- .../kunit/test_data/test_is_test_passed-crash.log | 70 ---- .../test_is_test_passed-no_tests_no_plan.log | 2 +- 43 files changed, 1499 insertions(+), 891 deletions(-) create mode 100644 Documentation/dev-tools/kunit/api/resource.rst create mode 100644 include/kunit/resource.h create mode 100644 lib/kunit/resource.c create mode 100644 mm/kfence/.kunitconfig create mode 100644 tools/testing/kunit/configs/all_tests_uml.config delete mode 100644 tools/testing/kunit/test_data/test_is_test_passed-crash.log ----------------------------------------------------------------