Currently in Rust, kunit tests are handled with `kunit_tests`, while the doctests generate a lot `extern "C"` functions and invoke them through a generated C wrapper.
This is currently needed because of the special treatment of file name and line numbers from doctests. Convert them to override `file!()` and `line!()` macro instead, and use them inside `kunit_assert!`. With this it is possible to just generate `#[kunit_tests]` and `#[test]` for doctests. David mentioned in [1] that this should route via the Rust tree. Link: https://lore.kernel.org/rust-for-linux/[email protected]/ [1] Signed-off-by: Gary Guo <[email protected]> --- Changes in v2: - Rebased on v7.3-rc1 - Picked up tags - Link to v1: https://patch.msgid.link/[email protected] --- Gary Guo (3): rust: kunit: use `file!()` inside `kunit_assert!` rust: kunit: use `line!()` inside `kunit_assert!` rust: doctest: generate Rust kunit test suites Documentation/rust/general-information.rst | 4 +- init/Kconfig | 3 -- rust/Makefile | 4 +- rust/kernel/kunit.rs | 11 +++-- rust/kernel/str.rs | 2 +- rust/macros/helpers.rs | 16 ------- rust/macros/kunit.rs | 5 +- rust/macros/lib.rs | 5 -- scripts/rustdoc_test_gen.rs | 73 ++++++++---------------------- 9 files changed, 30 insertions(+), 93 deletions(-) --- base-commit: cee9395acd8043be0644b25c34bfa86623f2b935 change-id: 20260616-kunit-348f2c029b1e Best regards, -- Gary Guo <[email protected]>

