Centos-kernel-stream-9/tools/testing/kunit
Ryan Sullivan 3a7cd16f34 landlock: Add support for KUnit tests
JIRA: https://issues.redhat.com/browse/RHEL-8810

Conflicts:
- Handle whitespace errors in
tools/testing/kunit/configs/all_tests.config

Add the SECURITY_LANDLOCK_KUNIT_TEST option to enable KUnit tests for
Landlock.  The minimal required configuration is listed in the
security/landlock/.kunitconfig file.

Add an initial landlock_fs KUnit test suite with 7 test cases for
filesystem helpers.  These are related to the LANDLOCK_ACCESS_FS_REFER
right.

There is one KUnit test case per:
* mutated state (e.g. test_scope_to_request_*) or,
* shared state between tests (e.g. test_is_eaccess_*).

Add macros to improve readability of tests (i.e. one per line).  Test
cases are collocated with the tested functions to help maintenance and
improve documentation.  This is why SECURITY_LANDLOCK_KUNIT_TEST cannot
be set as module.

This is a nice complement to Landlock's user space kselftests.  We
expect new Landlock features to come with KUnit tests as well.

Thanks to UML support, we can run all KUnit tests for Landlock with:
./tools/testing/kunit/kunit.py run --kunitconfig security/landlock

[00:00:00] ======================= landlock_fs  =======================
[00:00:00] [PASSED] test_no_more_access
[00:00:00] [PASSED] test_scope_to_request_with_exec_none
[00:00:00] [PASSED] test_scope_to_request_with_exec_some
[00:00:00] [PASSED] test_scope_to_request_without_access
[00:00:00] [PASSED] test_is_eacces_with_none
[00:00:00] [PASSED] test_is_eacces_with_refer
[00:00:00] [PASSED] test_is_eacces_with_write
[00:00:00] =================== [PASSED] landlock_fs ===================
[00:00:00] ============================================================
[00:00:00] Testing complete. Ran 7 tests: passed: 7

Cc: Konstantin Meskhidze <konstantin.meskhidze@huawei.com>
Reviewed-by: Günther Noack <gnoack@google.com>
Link: https://lore.kernel.org/r/20240118113632.1948478-1-mic@digikod.net
Signed-off-by: Mickaël Salaün <mic@digikod.net>
(cherry picked from commit b4007fd27206c478a4b76e299bddf4a71787f520)
Signed-off-by: Ryan Sullivan <rysulliv@redhat.com>
2025-02-07 17:06:38 -05:00
..
configs landlock: Add support for KUnit tests 2025-02-07 17:06:38 -05:00
qemu_configs kunit: tool: Add support for SH under QEMU 2024-07-31 20:27:46 -06:00
test_data kunit: tool: add test for parsing attributes 2024-07-31 20:32:27 -06:00
.gitignore
kunit.py kunit: tool: Add command line interface to filter and report attributes 2024-07-31 20:27:47 -06:00
kunit_config.py kunit: tool: fix pre-existing `mypy --strict` errors and update run_checks.py 2024-07-31 20:27:46 -06:00
kunit_json.py kunit: tool: misc cleanups 2023-04-17 11:47:35 -06:00
kunit_kernel.py kunit: tool: Print UML command 2024-07-31 20:32:28 -06:00
kunit_parser.py kunit: tool: fix parsing of test attributes 2024-07-31 20:32:27 -06:00
kunit_printer.py kunit: tool: add subscripts for type annotations where appropriate 2024-07-31 20:27:46 -06:00
kunit_tool_test.py kunit: tool: add test for parsing attributes 2024-07-31 20:32:27 -06:00
mypy.ini kunit: tool: undo type subscripts for subprocess.Popen 2024-07-31 20:27:46 -06:00
qemu_config.py kunit: tool: Add support for overriding the QEMU serial port 2024-07-31 20:27:46 -06:00
run_checks.py kunit: tool: undo type subscripts for subprocess.Popen 2024-07-31 20:27:46 -06:00