Commit 17d5efcb authored by Miguel Ojeda's avatar Miguel Ojeda Committed by Danilo Krummrich
Browse files

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

Since commit 028df914 ("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: default avatarMiguel Ojeda <ojeda@kernel.org>
Reviewed-by: default avatarDanilo Krummrich <dakr@kernel.org>
Reviewed-by: default avatarDavid Gow <davidgow@google.com>
Link: https://lore.kernel.org/r/20250726180750.2735836-1-ojeda@kernel.org


Signed-off-by: default avatarDanilo Krummrich <dakr@kernel.org>
parent ac9eea3d
Loading
Loading
Loading
Loading
+1 −8
Original line number Diff line number Diff line
@@ -238,7 +238,7 @@ quiet_cmd_rustc_test = $(RUSTC_OR_CLIPPY_QUIET) T $<
	$(objtree)/$(obj)/test/$(subst rusttest-,,$@) $(rust_test_quiet) \
		$(rustc_test_run_flags)

rusttest: rusttest-macros rusttest-kernel
rusttest: rusttest-macros

rusttest-macros: private rustc_target_flags = --extern proc_macro \
	--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,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
bindgen_c_flags = $(c_flags)
else
+3 −3
Original line number Diff line number Diff line
@@ -2,16 +2,16 @@

//! Implementation of the kernel's memory allocation infrastructure.

#[cfg(not(any(test, testlib)))]
#[cfg(not(testlib))]
pub mod allocator;
pub mod kbox;
pub mod kvec;
pub mod layout;

#[cfg(any(test, testlib))]
#[cfg(testlib)]
pub mod allocator_test;

#[cfg(any(test, testlib))]
#[cfg(testlib)]
pub use self::allocator_test as allocator;

pub use self::kbox::Box;
+2 −2
Original line number Diff line number Diff line
@@ -158,7 +158,7 @@ pub fn to_ptr<T>(self) -> *mut T {
    }

    /// Returns a string representing the error, if one exists.
    #[cfg(not(any(test, testlib)))]
    #[cfg(not(testlib))]
    pub fn name(&self) -> Option<&'static CStr> {
        // SAFETY: Just an FFI call, there are no extra safety requirements.
        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
    /// kernel function so that tests that use this (e.g., by calling [`Result::unwrap`]) can still
    /// run in userspace.
    #[cfg(any(test, testlib))]
    #[cfg(testlib)]
    pub fn name(&self) -> Option<&'static CStr> {
        None
    }
+1 −1
Original line number Diff line number Diff line
@@ -206,7 +206,7 @@ pub const fn as_ptr(&self) -> *mut bindings::module {
    }
}

#[cfg(not(any(testlib, test)))]
#[cfg(not(testlib))]
#[panic_handler]
fn panic(info: &core::panic::PanicInfo<'_>) -> ! {
    pr_emerg!("{}\n", info);