History

rust: sync: make doctests compilable/testable

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.

Miguel Ojeda committed 3 years ago

Commit bfa7dff1 parent cf36a493 files · +9 −2Browse files

Unified · Split

3 files
  1. rust/kernel/sync/arc.rs +7 −2
  2. rust/kernel/sync/lock/mutex.rs +1 −0
  3. rust/kernel/sync/lock/spinlock.rs +1 −0
rust/kernel/sync/arc.rs+7−2
@@ -73,6 +73,7 @@ mod std_vendor; · 72 unmodified lines
7373 /// assert_eq!(cloned.b, 20);
7474 ///
7575 /// // The refcount drops to zero when `cloned` goes out of scope, and the memory is freed.
76+/// # Ok::<(), Error>(())
7677 /// ```
7778 ///
7879 /// Using `Arc<T>` as the type of `self`:
@@ -98,6 +99,7 @@ mod std_vendor; · 19 unmodified lines
9899 /// let obj = Arc::try_new(Example { a: 10, b: 20 })?;
99100 /// obj.use_reference();
100101 /// obj.take_over();
102+/// # Ok::<(), Error>(())
101103 /// ```
102104 ///
103105 /// Coercion from `Arc<Example>` to `Arc<dyn MyTrait>`:
@@ -121,6 +123,7 @@ mod std_vendor; · 17 unmodified lines
121123 ///
122124 /// // `coerced` has type `Arc<dyn MyTrait>`.
123125 /// let coerced: Arc<dyn MyTrait> = obj;
126+/// # Ok::<(), Error>(())
124127 /// ```
125128 pub struct Arc<T: ?Sized> {
126129 ptr: NonNull<ArcInner<T>>,
@@ -337,7 +340,7 @@ impl<T: ?Sized> From<Pin<UniqueArc<T>>> for Arc<T> { · 210 unmodified lines
337340 /// # Example
338341 ///
339342 /// ```
340−/// use crate::sync::{Arc, ArcBorrow};
343+/// use kernel::sync::{Arc, ArcBorrow};
341344 ///
342345 /// struct Example;
343346 ///
@@ -350,12 +353,13 @@ impl<T: ?Sized> From<Pin<UniqueArc<T>>> for Arc<T> { · 6 unmodified lines
350353 ///
351354 /// // Assert that both `obj` and `cloned` point to the same underlying object.
352355 /// assert!(core::ptr::eq(&*obj, &*cloned));
356+/// # Ok::<(), Error>(())
353357 /// ```
354358 ///
355359 /// Using `ArcBorrow<T>` as the type of `self`:
356360 ///
357361 /// ```
358−/// use crate::sync::{Arc, ArcBorrow};
362+/// use kernel::sync::{Arc, ArcBorrow};
359363 ///
360364 /// struct Example {
361365 /// a: u32,
@@ -370,6 +374,7 @@ impl<T: ?Sized> From<Pin<UniqueArc<T>>> for Arc<T> { · 8 unmodified lines
370374 ///
371375 /// let obj = Arc::try_new(Example { a: 10, b: 20 })?;
372376 /// obj.as_arc_borrow().use_reference();
377+/// # Ok::<(), Error>(())
373378 /// ```
374379 pub struct ArcBorrow<'a, T: ?Sized + 'a> {
375380 inner: NonNull<ArcInner<T>>,
rust/kernel/sync/lock/mutex.rs+1−0
@@ -63,6 +63,7 @@ macro_rules! new_mutex { · 62 unmodified lines
6363 /// assert_eq!(e.c, 10);
6464 /// assert_eq!(e.d.lock().a, 20);
6565 /// assert_eq!(e.d.lock().b, 30);
66+/// # Ok::<(), Error>(())
6667 /// ```
6768 ///
6869 /// The following example shows how to use interior mutability to modify the contents of a struct
rust/kernel/sync/lock/spinlock.rs+1−0
@@ -61,6 +61,7 @@ macro_rules! new_spinlock { · 60 unmodified lines
6161 /// assert_eq!(e.c, 10);
6262 /// assert_eq!(e.d.lock().a, 20);
6363 /// assert_eq!(e.d.lock().b, 30);
64+/// # Ok::<(), Error>(())
6465 /// ```
6566 ///
6667 /// The following example shows how to use interior mutability to modify the contents of a struct