Message ID | 20230614180837.630180-4-ojeda@kernel.org (mailing list archive) |
---|---|
State | Accepted |
Commit | bfa7dff036f0cbb2ccb0385c8b666204d6b8eb3a |
Headers | show |
Series | KUnit integration for Rust doctests | expand |
Miguel Ojeda <ojeda@kernel.org> writes: > 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> Reviewed-by: Alice Ryhl <aliceryhl@google.com>
On 6/14/23 15:08, Miguel Ojeda wrote: > 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> > --- > [...] Reviewed-by: Martin Rodriguez Reboredo <yakoyoku@gmail.com>
On Thu, 15 Jun 2023 at 02:09, Miguel Ojeda <ojeda@kernel.org> wrote: > > 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> > --- Looks good, thanks! Reviewed-by: David Gow <davidgow@google.com> Cheers, -- David
------- Original Message ------- On Wednesday, June 14th, 2023 at 20:08, Miguel Ojeda <ojeda@kernel.org> wrote: > 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/sync/arc.rs | 9 +++++++-- > rust/kernel/sync/lock/mutex.rs | 1 + > rust/kernel/sync/lock/spinlock.rs | 1 + > 3 files changed, 9 insertions(+), 2 deletions(-) > > diff --git a/rust/kernel/sync/arc.rs b/rust/kernel/sync/arc.rs > index a89843cacaad..1ecb2efab51e 100644 > --- a/rust/kernel/sync/arc.rs > +++ b/rust/kernel/sync/arc.rs > @@ -73,6 +73,7 @@ > /// assert_eq!(cloned.b, 20); > /// > /// // The refcount drops to zero when `cloned` goes out of scope, and the memory is freed. > +/// # Ok::<(), Error>(()) > /// ``` > /// > /// Using `Arc<T>` as the type of `self`: > @@ -98,6 +99,7 @@ > /// let obj = Arc::try_new(Example { a: 10, b: 20 })?; > /// obj.use_reference(); > /// obj.take_over(); > +/// # Ok::<(), Error>(()) > /// ``` > /// > /// Coercion from `Arc<Example>` to `Arc<dyn MyTrait>`: > @@ -121,6 +123,7 @@ > /// > /// // `coerced` has type `Arc<dyn MyTrait>`. > /// let coerced: Arc<dyn MyTrait> = obj; > +/// # Ok::<(), Error>(()) > /// ``` > pub struct Arc<T: ?Sized> { > ptr: NonNull<ArcInner<T>>, > @@ -337,7 +340,7 @@ fn from(item: Pin<UniqueArc<T>>) -> Self { > /// # Example > /// > /// ``` > -/// use crate::sync::{Arc, ArcBorrow}; > +/// use kernel::sync::{Arc, ArcBorrow}; > /// > /// struct Example; > /// > @@ -350,12 +353,13 @@ fn from(item: Pin<UniqueArc<T>>) -> Self { > /// > /// // Assert that both `obj` and `cloned` point to the same underlying object. > /// assert!(core::ptr::eq(&*obj, &*cloned)); > +/// # Ok::<(), Error>(()) > /// ``` > /// > /// Using `ArcBorrow<T>` as the type of `self`: > /// > /// ``` > -/// use crate::sync::{Arc, ArcBorrow}; > +/// use kernel::sync::{Arc, ArcBorrow}; > /// > /// struct Example { > /// a: u32, > @@ -370,6 +374,7 @@ fn from(item: Pin<UniqueArc<T>>) -> Self { > /// > /// let obj = Arc::try_new(Example { a: 10, b: 20 })?; > /// obj.as_arc_borrow().use_reference(); > +/// # Ok::<(), Error>(()) > /// ``` > pub struct ArcBorrow<'a, T: ?Sized + 'a> { > inner: NonNull<ArcInner<T>>, > diff --git a/rust/kernel/sync/lock/mutex.rs b/rust/kernel/sync/lock/mutex.rs > index 923472f04af4..09276fedc091 100644 > --- a/rust/kernel/sync/lock/mutex.rs > +++ b/rust/kernel/sync/lock/mutex.rs > @@ -63,6 +63,7 @@ macro_rules! new_mutex { > /// assert_eq!(e.c, 10); > /// assert_eq!(e.d.lock().a, 20); > /// assert_eq!(e.d.lock().b, 30); > +/// # Ok::<(), Error>(()) > /// ``` > /// > /// The following example shows how to use interior mutability to modify the contents of a struct > diff --git a/rust/kernel/sync/lock/spinlock.rs b/rust/kernel/sync/lock/spinlock.rs > index 979b56464a4e..91eb2c9e9123 100644 > --- a/rust/kernel/sync/lock/spinlock.rs > +++ b/rust/kernel/sync/lock/spinlock.rs > @@ -61,6 +61,7 @@ macro_rules! new_spinlock { > /// assert_eq!(e.c, 10); > /// assert_eq!(e.d.lock().a, 20); > /// assert_eq!(e.d.lock().b, 30); > +/// # Ok::<(), Error>(()) > /// ``` > /// > /// The following example shows how to use interior mutability to modify the contents of a struct > -- > 2.41.0 Reviewed-by: Björn Roy Baron <bjorn3_gh@protonmail.com>
diff --git a/rust/kernel/sync/arc.rs b/rust/kernel/sync/arc.rs index a89843cacaad..1ecb2efab51e 100644 --- a/rust/kernel/sync/arc.rs +++ b/rust/kernel/sync/arc.rs @@ -73,6 +73,7 @@ /// assert_eq!(cloned.b, 20); /// /// // The refcount drops to zero when `cloned` goes out of scope, and the memory is freed. +/// # Ok::<(), Error>(()) /// ``` /// /// Using `Arc<T>` as the type of `self`: @@ -98,6 +99,7 @@ /// let obj = Arc::try_new(Example { a: 10, b: 20 })?; /// obj.use_reference(); /// obj.take_over(); +/// # Ok::<(), Error>(()) /// ``` /// /// Coercion from `Arc<Example>` to `Arc<dyn MyTrait>`: @@ -121,6 +123,7 @@ /// /// // `coerced` has type `Arc<dyn MyTrait>`. /// let coerced: Arc<dyn MyTrait> = obj; +/// # Ok::<(), Error>(()) /// ``` pub struct Arc<T: ?Sized> { ptr: NonNull<ArcInner<T>>, @@ -337,7 +340,7 @@ fn from(item: Pin<UniqueArc<T>>) -> Self { /// # Example /// /// ``` -/// use crate::sync::{Arc, ArcBorrow}; +/// use kernel::sync::{Arc, ArcBorrow}; /// /// struct Example; /// @@ -350,12 +353,13 @@ fn from(item: Pin<UniqueArc<T>>) -> Self { /// /// // Assert that both `obj` and `cloned` point to the same underlying object. /// assert!(core::ptr::eq(&*obj, &*cloned)); +/// # Ok::<(), Error>(()) /// ``` /// /// Using `ArcBorrow<T>` as the type of `self`: /// /// ``` -/// use crate::sync::{Arc, ArcBorrow}; +/// use kernel::sync::{Arc, ArcBorrow}; /// /// struct Example { /// a: u32, @@ -370,6 +374,7 @@ fn from(item: Pin<UniqueArc<T>>) -> Self { /// /// let obj = Arc::try_new(Example { a: 10, b: 20 })?; /// obj.as_arc_borrow().use_reference(); +/// # Ok::<(), Error>(()) /// ``` pub struct ArcBorrow<'a, T: ?Sized + 'a> { inner: NonNull<ArcInner<T>>, diff --git a/rust/kernel/sync/lock/mutex.rs b/rust/kernel/sync/lock/mutex.rs index 923472f04af4..09276fedc091 100644 --- a/rust/kernel/sync/lock/mutex.rs +++ b/rust/kernel/sync/lock/mutex.rs @@ -63,6 +63,7 @@ macro_rules! new_mutex { /// assert_eq!(e.c, 10); /// assert_eq!(e.d.lock().a, 20); /// assert_eq!(e.d.lock().b, 30); +/// # Ok::<(), Error>(()) /// ``` /// /// The following example shows how to use interior mutability to modify the contents of a struct diff --git a/rust/kernel/sync/lock/spinlock.rs b/rust/kernel/sync/lock/spinlock.rs index 979b56464a4e..91eb2c9e9123 100644 --- a/rust/kernel/sync/lock/spinlock.rs +++ b/rust/kernel/sync/lock/spinlock.rs @@ -61,6 +61,7 @@ macro_rules! new_spinlock { /// assert_eq!(e.c, 10); /// assert_eq!(e.d.lock().a, 20); /// assert_eq!(e.d.lock().b, 30); +/// # Ok::<(), Error>(()) /// ``` /// /// The following example shows how to use interior mutability to modify the contents of a struct
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/sync/arc.rs | 9 +++++++-- rust/kernel/sync/lock/mutex.rs | 1 + rust/kernel/sync/lock/spinlock.rs | 1 + 3 files changed, 9 insertions(+), 2 deletions(-)