mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf.git
synced 2026-04-17 22:24:18 -04:00
rust: use absolute paths in macros referencing core and kernel
Macros and auto-generated code should use absolute paths, `::core::...` and `::kernel::...`, for core and kernel references. This prevents issues where user-defined modules named `core` or `kernel` could be picked up instead of the `core` or `kernel` crates. Thus clean some references up. Suggested-by: Benno Lossin <benno.lossin@proton.me> Closes: https://github.com/Rust-for-Linux/linux/issues/1150 Signed-off-by: Igor Korotin <igor.korotin.linux@gmail.com> Reviewed-by: Benno Lossin <lossin@kernel.org> Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Link: https://lore.kernel.org/r/20250519164615.3310844-1-igor.korotin.linux@gmail.com [ Applied `rustfmt`. Reworded slightly. - Miguel ] Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
This commit is contained in:
committed by
Miguel Ojeda
parent
977c4308ee
commit
de7cd3e4d6
@@ -167,12 +167,14 @@ fn main() {
|
||||
rust_tests,
|
||||
r#"/// Generated `{name}` KUnit test case from a Rust documentation test.
|
||||
#[no_mangle]
|
||||
pub extern "C" fn {kunit_name}(__kunit_test: *mut kernel::bindings::kunit) {{
|
||||
pub extern "C" fn {kunit_name}(__kunit_test: *mut ::kernel::bindings::kunit) {{
|
||||
/// Overrides the usual [`assert!`] macro with one that calls KUnit instead.
|
||||
#[allow(unused)]
|
||||
macro_rules! assert {{
|
||||
($cond:expr $(,)?) => {{{{
|
||||
kernel::kunit_assert!("{kunit_name}", "{real_path}", __DOCTEST_ANCHOR - {line}, $cond);
|
||||
::kernel::kunit_assert!(
|
||||
"{kunit_name}", "{real_path}", __DOCTEST_ANCHOR - {line}, $cond
|
||||
);
|
||||
}}}}
|
||||
}}
|
||||
|
||||
@@ -180,13 +182,15 @@ pub extern "C" fn {kunit_name}(__kunit_test: *mut kernel::bindings::kunit) {{
|
||||
#[allow(unused)]
|
||||
macro_rules! assert_eq {{
|
||||
($left:expr, $right:expr $(,)?) => {{{{
|
||||
kernel::kunit_assert_eq!("{kunit_name}", "{real_path}", __DOCTEST_ANCHOR - {line}, $left, $right);
|
||||
::kernel::kunit_assert_eq!(
|
||||
"{kunit_name}", "{real_path}", __DOCTEST_ANCHOR - {line}, $left, $right
|
||||
);
|
||||
}}}}
|
||||
}}
|
||||
|
||||
// Many tests need the prelude, so provide it by default.
|
||||
#[allow(unused)]
|
||||
use kernel::prelude::*;
|
||||
use ::kernel::prelude::*;
|
||||
|
||||
// Unconditionally print the location of the original doctest (i.e. rather than the location in
|
||||
// the generated file) so that developers can easily map the test back to the source code.
|
||||
@@ -197,11 +201,11 @@ pub extern "C" fn {kunit_name}(__kunit_test: *mut kernel::bindings::kunit) {{
|
||||
// This follows the syntax for declaring test metadata in the proposed KTAP v2 spec, which may
|
||||
// be used for the proposed KUnit test attributes API. Thus hopefully this will make migration
|
||||
// easier later on.
|
||||
kernel::kunit::info(format_args!(" # {kunit_name}.location: {real_path}:{line}\n"));
|
||||
::kernel::kunit::info(format_args!(" # {kunit_name}.location: {real_path}:{line}\n"));
|
||||
|
||||
/// The anchor where the test code body starts.
|
||||
#[allow(unused)]
|
||||
static __DOCTEST_ANCHOR: i32 = core::line!() as i32 + {body_offset} + 1;
|
||||
static __DOCTEST_ANCHOR: i32 = ::core::line!() as i32 + {body_offset} + 1;
|
||||
{{
|
||||
{body}
|
||||
main();
|
||||
|
||||
Reference in New Issue
Block a user