Re: [GIT PULL] KUnit update for Linux 5.19-rc1

From: Shuah Khan
Date: Tue May 24 2022 - 11:17:03 EST


On 5/23/22 12:21 PM, Shuah Khan wrote:
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


This bounced from linux-kselftest list as the diff exceeded the message
size. Sorry for the noise for others that are seeing this twice (minus
the diff).

FYI that the following KUnit pull request has been sent for Linux 5.19-rc1

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
----------------------------------------------------------------