From: Miguel Ojeda <ojeda@kernel.org>
To: David Gow <davidgow@google.com>,
Brendan Higgins <brendan.higgins@linux.dev>,
Miguel Ojeda <ojeda@kernel.org>,
Wedson Almeida Filho <wedsonaf@gmail.com>,
Alex Gaynor <alex.gaynor@gmail.com>
Cc: "Boqun Feng" <boqun.feng@gmail.com>,
"Gary Guo" <gary@garyguo.net>,
"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
"Benno Lossin" <benno.lossin@proton.me>,
"Alice Ryhl" <aliceryhl@google.com>,
"Andreas Hindborg" <nmi@metaspace.dk>,
"Philip Li" <philip.li@intel.com>,
kunit-dev@googlegroups.com, linux-kselftest@vger.kernel.org,
rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org,
patches@lists.linux.dev
Subject: [PATCH 1/6] rust: init: make doctests compilable/testable
Date: Wed, 14 Jun 2023 20:08:25 +0200 [thread overview]
Message-ID: <20230614180837.630180-2-ojeda@kernel.org> (raw)
In-Reply-To: <20230614180837.630180-1-ojeda@kernel.org>
Rust documentation tests are going to be build/run-tested
with the KUnit integration added in a future patch, thus
update them to make them compilable/testable so that we
may start enforcing it.
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
---
rust/kernel/init.rs | 25 ++++++++++++++++---------
1 file changed, 16 insertions(+), 9 deletions(-)
diff --git a/rust/kernel/init.rs b/rust/kernel/init.rs
index b4332a4ec1f4..1073515ed40e 100644
--- a/rust/kernel/init.rs
+++ b/rust/kernel/init.rs
@@ -120,14 +120,23 @@
//! `slot` gets called.
//!
//! ```rust
-//! use kernel::{prelude::*, init};
+//! # #![allow(unreachable_pub, clippy::disallowed_names)]
+//! use kernel::{prelude::*, init, types::Opaque};
//! use core::{ptr::addr_of_mut, marker::PhantomPinned, pin::Pin};
//! # mod bindings {
+//! # #![allow(non_camel_case_types)]
//! # pub struct foo;
//! # pub unsafe fn init_foo(_ptr: *mut foo) {}
//! # pub unsafe fn destroy_foo(_ptr: *mut foo) {}
//! # pub unsafe fn enable_foo(_ptr: *mut foo, _flags: u32) -> i32 { 0 }
//! # }
+//! # trait FromErrno {
+//! # fn from_errno(errno: core::ffi::c_int) -> Error {
+//! # // Dummy error that can be constructed outside the `kernel` crate.
+//! # Error::from(core::fmt::Error)
+//! # }
+//! # }
+//! # impl FromErrno for Error {}
//! /// # Invariants
//! ///
//! /// `foo` is always initialized
@@ -158,7 +167,7 @@
//! if err != 0 {
//! // Enabling has failed, first clean up the foo and then return the error.
//! bindings::destroy_foo(Opaque::raw_get(foo));
-//! return Err(Error::from_kernel_errno(err));
+//! return Err(Error::from_errno(err));
//! }
//!
//! // All fields of `RawFoo` have been initialized, since `_p` is a ZST.
@@ -226,8 +235,7 @@
///
/// ```rust
/// # #![allow(clippy::disallowed_names, clippy::new_ret_no_self)]
-/// # use kernel::{init, pin_init, stack_pin_init, init::*, sync::Mutex, new_mutex};
-/// # use macros::pin_data;
+/// # use kernel::{init, macros::pin_data, pin_init, stack_pin_init, init::*, sync::Mutex, new_mutex};
/// # use core::pin::Pin;
/// #[pin_data]
/// struct Foo {
@@ -277,7 +285,7 @@ macro_rules! stack_pin_init {
///
/// # Examples
///
-/// ```rust
+/// ```rust,ignore
/// # #![allow(clippy::disallowed_names, clippy::new_ret_no_self)]
/// # use kernel::{init, pin_init, stack_try_pin_init, init::*, sync::Mutex, new_mutex};
/// # use macros::pin_data;
@@ -303,7 +311,7 @@ macro_rules! stack_pin_init {
/// pr_info!("a: {}", &*foo.a.lock());
/// ```
///
-/// ```rust
+/// ```rust,ignore
/// # #![allow(clippy::disallowed_names, clippy::new_ret_no_self)]
/// # use kernel::{init, pin_init, stack_try_pin_init, init::*, sync::Mutex, new_mutex};
/// # use macros::pin_data;
@@ -513,8 +521,7 @@ macro_rules! stack_try_pin_init {
/// For instance:
///
/// ```rust
-/// # use kernel::pin_init;
-/// # use macros::pin_data;
+/// # use kernel::{macros::pin_data, pin_init};
/// # use core::{ptr::addr_of_mut, marker::PhantomPinned};
/// #[pin_data]
/// struct Buf {
@@ -841,7 +848,7 @@ macro_rules! init {
/// # Examples
///
/// ```rust
-/// use kernel::{init::PinInit, error::Error, InPlaceInit};
+/// use kernel::{init::{PinInit, zeroed}, error::Error};
/// struct BigBuf {
/// big: Box<[u8; 1024 * 1024 * 1024]>,
/// small: [u8; 1024 * 1024],
--
2.41.0
next prev parent reply other threads:[~2023-06-14 18:10 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-14 18:08 [PATCH 0/6] KUnit integration for Rust doctests Miguel Ojeda
2023-06-14 18:08 ` Miguel Ojeda [this message]
2023-06-14 20:32 ` [PATCH 1/6] rust: init: make doctests compilable/testable Alice Ryhl
2023-06-15 1:03 ` Martin Rodriguez Reboredo
2023-06-15 9:31 ` Miguel Ojeda
2023-06-15 13:33 ` Martin Rodriguez Reboredo
2023-06-15 23:47 ` Vincenzo Palazzo
2023-06-16 4:51 ` David Gow
2023-06-16 11:12 ` Björn Roy Baron
2023-06-25 10:13 ` Benno Lossin
2023-06-14 18:08 ` [PATCH 2/6] rust: str: " Miguel Ojeda
2023-06-14 20:32 ` Alice Ryhl
2023-06-15 1:04 ` Martin Rodriguez Reboredo
2023-06-15 23:47 ` Vincenzo Palazzo
2023-06-16 4:51 ` David Gow
2023-06-16 11:13 ` Björn Roy Baron
2023-06-14 18:08 ` [PATCH 3/6] rust: sync: " Miguel Ojeda
2023-06-14 20:32 ` Alice Ryhl
2023-06-15 1:04 ` Martin Rodriguez Reboredo
2023-06-16 4:51 ` David Gow
2023-06-16 11:14 ` Björn Roy Baron
2023-06-14 18:08 ` [PATCH 4/6] rust: types: " Miguel Ojeda
2023-06-14 20:32 ` Alice Ryhl
2023-06-15 1:06 ` Martin Rodriguez Reboredo
2023-06-16 4:52 ` David Gow
2023-06-16 11:14 ` Björn Roy Baron
2023-06-14 18:08 ` [PATCH 5/6] rust: support running Rust documentation tests as KUnit ones Miguel Ojeda
2023-06-14 20:38 ` Alice Ryhl
2023-06-14 22:09 ` Miguel Ojeda
2023-06-14 22:09 ` Miguel Ojeda
2023-06-15 0:19 ` Matt Gilbride
2023-06-15 3:49 ` Martin Rodriguez Reboredo
2023-06-15 9:23 ` Miguel Ojeda
2023-06-15 13:50 ` Martin Rodriguez Reboredo
2023-06-15 23:53 ` Vincenzo Palazzo
2023-06-16 4:52 ` David Gow
2023-06-19 17:16 ` Sergio González Collado
2023-06-30 18:17 ` Boqun Feng
2023-06-14 18:08 ` [PATCH 6/6] MAINTAINERS: add Rust KUnit files to the KUnit entry Miguel Ojeda
2023-06-15 3:49 ` Martin Rodriguez Reboredo
2023-06-15 23:46 ` Vincenzo Palazzo
2023-06-16 4:53 ` David Gow
2023-06-15 1:44 ` [PATCH 0/6] KUnit integration for Rust doctests Boqun Feng
2023-06-15 8:20 ` Miguel Ojeda
2023-06-16 4:44 ` David Gow
2023-06-16 4:51 ` David Gow
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230614180837.630180-2-ojeda@kernel.org \
--to=ojeda@kernel.org \
--cc=alex.gaynor@gmail.com \
--cc=aliceryhl@google.com \
--cc=benno.lossin@proton.me \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun.feng@gmail.com \
--cc=brendan.higgins@linux.dev \
--cc=davidgow@google.com \
--cc=gary@garyguo.net \
--cc=kunit-dev@googlegroups.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=nmi@metaspace.dk \
--cc=patches@lists.linux.dev \
--cc=philip.li@intel.com \
--cc=rust-for-linux@vger.kernel.org \
--cc=wedsonaf@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.