rust: kernel: remove support for unused host #[test]s

Since commit 028df914e5 ("rust: str: convert `rusttest` tests into
KUnit"), we do not have anymore host `#[test]`s that run in the host.

Moreover, we do not plan to add any new ones -- tests should generally
run within KUnit, since there they are built the same way the kernel
does. While we may want to have some way to define tests that can also
be run outside the kernel, we still want to test within the kernel too
[1], and thus would likely use a custom syntax anyway to define them.

Thus simplify the `rusttest` target by removing support for host
`#[test]`s for the `kernel` crate.

This still maintains the support for the `macros` crate, even though we
do not have any such tests there.

Link: https://lore.kernel.org/rust-for-linux/CABVgOS=AKHSfifp0S68K3jgNZAkALBr=7iFb=niryG5WDxjSrg@mail.gmail.com/ [1]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
Reviewed-by: Danilo Krummrich <dakr@kernel.org>
Reviewed-by: David Gow <davidgow@google.com>
Link: https://lore.kernel.org/r/20250726180750.2735836-1-ojeda@kernel.org
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
This commit is contained in:
Miguel Ojeda 2025-07-26 20:07:50 +02:00 committed by Danilo Krummrich
parent ac9eea3d08
commit 17d5efcbfe
4 changed files with 7 additions and 14 deletions

View file

@ -238,7 +238,7 @@ quiet_cmd_rustc_test = $(RUSTC_OR_CLIPPY_QUIET) T $<
$(objtree)/$(obj)/test/$(subst rusttest-,,$@) $(rust_test_quiet) \ $(objtree)/$(obj)/test/$(subst rusttest-,,$@) $(rust_test_quiet) \
$(rustc_test_run_flags) $(rustc_test_run_flags)
rusttest: rusttest-macros rusttest-kernel rusttest: rusttest-macros
rusttest-macros: private rustc_target_flags = --extern proc_macro \ rusttest-macros: private rustc_target_flags = --extern proc_macro \
--extern macros --extern kernel --extern pin_init --extern macros --extern kernel --extern pin_init
@ -248,13 +248,6 @@ rusttest-macros: $(src)/macros/lib.rs \
+$(call if_changed,rustc_test) +$(call if_changed,rustc_test)
+$(call if_changed,rustdoc_test) +$(call if_changed,rustdoc_test)
rusttest-kernel: private rustc_target_flags = --extern ffi --extern pin_init \
--extern build_error --extern macros --extern bindings --extern uapi
rusttest-kernel: $(src)/kernel/lib.rs rusttestlib-ffi rusttestlib-kernel \
rusttestlib-build_error rusttestlib-macros rusttestlib-bindings \
rusttestlib-uapi rusttestlib-pin_init FORCE
+$(call if_changed,rustc_test)
ifdef CONFIG_CC_IS_CLANG ifdef CONFIG_CC_IS_CLANG
bindgen_c_flags = $(c_flags) bindgen_c_flags = $(c_flags)
else else

View file

@ -2,16 +2,16 @@
//! Implementation of the kernel's memory allocation infrastructure. //! Implementation of the kernel's memory allocation infrastructure.
#[cfg(not(any(test, testlib)))] #[cfg(not(testlib))]
pub mod allocator; pub mod allocator;
pub mod kbox; pub mod kbox;
pub mod kvec; pub mod kvec;
pub mod layout; pub mod layout;
#[cfg(any(test, testlib))] #[cfg(testlib)]
pub mod allocator_test; pub mod allocator_test;
#[cfg(any(test, testlib))] #[cfg(testlib)]
pub use self::allocator_test as allocator; pub use self::allocator_test as allocator;
pub use self::kbox::Box; pub use self::kbox::Box;

View file

@ -158,7 +158,7 @@ pub fn to_ptr<T>(self) -> *mut T {
} }
/// Returns a string representing the error, if one exists. /// Returns a string representing the error, if one exists.
#[cfg(not(any(test, testlib)))] #[cfg(not(testlib))]
pub fn name(&self) -> Option<&'static CStr> { pub fn name(&self) -> Option<&'static CStr> {
// SAFETY: Just an FFI call, there are no extra safety requirements. // SAFETY: Just an FFI call, there are no extra safety requirements.
let ptr = unsafe { bindings::errname(-self.0.get()) }; let ptr = unsafe { bindings::errname(-self.0.get()) };
@ -175,7 +175,7 @@ pub fn name(&self) -> Option<&'static CStr> {
/// When `testlib` is configured, this always returns `None` to avoid the dependency on a /// When `testlib` is configured, this always returns `None` to avoid the dependency on a
/// kernel function so that tests that use this (e.g., by calling [`Result::unwrap`]) can still /// kernel function so that tests that use this (e.g., by calling [`Result::unwrap`]) can still
/// run in userspace. /// run in userspace.
#[cfg(any(test, testlib))] #[cfg(testlib)]
pub fn name(&self) -> Option<&'static CStr> { pub fn name(&self) -> Option<&'static CStr> {
None None
} }

View file

@ -206,7 +206,7 @@ pub const fn as_ptr(&self) -> *mut bindings::module {
} }
} }
#[cfg(not(any(testlib, test)))] #[cfg(not(testlib))]
#[panic_handler] #[panic_handler]
fn panic(info: &core::panic::PanicInfo<'_>) -> ! { fn panic(info: &core::panic::PanicInfo<'_>) -> ! {
pr_emerg!("{}\n", info); pr_emerg!("{}\n", info);