On Thu, 15 Jun 2023 at 02:09, Miguel Ojeda <ojeda@xxxxxxxxxx> wrote: > > This is the initial KUnit integration for running Rust documentation > tests within the kernel. > > Thank you to the KUnit team for all the input and feedback on this > over the months, as well as the Intel LKP 0-Day team! > > This may be merged through either the KUnit or the Rust trees. If > the KUnit team wants to merge it, then that would be great. > > Please see the message in the main commit for the details. > > Thanks very much for putting this together! I've been looking forward to it, and it works well here. I've been running it on linux-next to get both the pending KUnit and Rust changes, and it works well apart from needing to fix a couple of conflicts from https://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git/commit/?h=kunit&id=260755184cbdb267a046e7ffd397c1d2ba09bb5e In particular, the tests run with: ./tools/testing/kunit/kunit.py run --kconfig_add CONFIG_RUST=y --make_options LLVM=1 'rust_doctests_kernel' And also under QEMU / x86_64 with: ./tools/testing/kunit/kunit.py run --arch x86_64 --kconfig_add CONFIG_RUST=y --make_options LLVM=1 'rust_doctests_kernel' (And I'm looking forward to trying out the other architecture support patches with it, too) The doctests also run nicely as part of the default test suite when CONFIG_RUST=y. At some point, we might want to add a Rust-specific .kunitconfig to make it easier to just run Rust-related test suites, but it's not a big deal for just these. I assume we'll take this in via the kselftest/kunit tree for 6.6, but if you'd rather take them via the Rust tree, that's fine too. Cheers, -- David > Miguel Ojeda (6): > rust: init: make doctests compilable/testable > rust: str: make doctests compilable/testable > rust: sync: make doctests compilable/testable > rust: types: make doctests compilable/testable > rust: support running Rust documentation tests as KUnit ones > MAINTAINERS: add Rust KUnit files to the KUnit entry > > MAINTAINERS | 2 + > lib/Kconfig.debug | 13 +++ > rust/.gitignore | 2 + > rust/Makefile | 29 ++++++ > rust/bindings/bindings_helper.h | 1 + > rust/helpers.c | 7 ++ > rust/kernel/init.rs | 25 +++-- > rust/kernel/kunit.rs | 156 ++++++++++++++++++++++++++++ > rust/kernel/lib.rs | 2 + > rust/kernel/str.rs | 4 +- > rust/kernel/sync/arc.rs | 9 +- > rust/kernel/sync/lock/mutex.rs | 1 + > rust/kernel/sync/lock/spinlock.rs | 1 + > rust/kernel/types.rs | 6 +- > scripts/.gitignore | 2 + > scripts/Makefile | 4 + > scripts/rustdoc_test_builder.rs | 73 ++++++++++++++ > scripts/rustdoc_test_gen.rs | 162 ++++++++++++++++++++++++++++++ > 18 files changed, 484 insertions(+), 15 deletions(-) > create mode 100644 rust/kernel/kunit.rs > create mode 100644 scripts/rustdoc_test_builder.rs > create mode 100644 scripts/rustdoc_test_gen.rs > > > base-commit: d2e3115d717197cb2bc020dd1f06b06538474ac3 > -- > 2.41.0 >
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature