From: John Hubbard <jhubbard@nvidia.com>
To: Miguel Ojeda <ojeda@kernel.org>,
Brendan Higgins <brendan.higgins@linux.dev>,
David Gow <davidgow@google.com>,
Alex Gaynor <alex.gaynor@gmail.com>
Cc: "Rae Moar" <rmoar@google.com>,
linux-kselftest@vger.kernel.org, kunit-dev@googlegroups.com,
"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>,
"Andreas Hindborg" <a.hindborg@kernel.org>,
"Alice Ryhl" <aliceryhl@google.com>,
"Trevor Gross" <tmgross@umich.edu>,
"Danilo Krummrich" <dakr@kernel.org>,
rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org,
patches@lists.linux.dev
Subject: Re: [PATCH 4/7] rust: str: convert `rusttest` tests into KUnit
Date: Fri, 9 May 2025 18:58:02 -0700 [thread overview]
Message-ID: <7507ab0b-7b18-4a99-a284-3dd5553a7669@nvidia.com> (raw)
In-Reply-To: <20250502215133.1923676-5-ojeda@kernel.org>
On 5/2/25 2:51 PM, Miguel Ojeda wrote:
> In general, we should aim to test as much as possible within the actual
> kernel, and not in the build host.
>
> Thus convert these `rusttest` tests into KUnit tests.
yes yes yes! :)
Like many, many kernel developers, I've been using separate development
and test machines, and so "make test" approaches are broken by
design.
In other works, launching tests from make(1) usually includes the
fatal flaw of leaving all the dependencies connected. And so when
you try to run on your test machine, it tries to rebuild, but the
kernel was build on the development machine...
It's just a constraint that should not be imposed on developers.
thanks,
--
John Hubbard
>
> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
> ---
> rust/kernel/str.rs | 10 ++++------
> 1 file changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/rust/kernel/str.rs b/rust/kernel/str.rs
> index 878111cb77bc..cf2caa2db168 100644
> --- a/rust/kernel/str.rs
> +++ b/rust/kernel/str.rs
> @@ -6,7 +6,7 @@
> use core::fmt::{self, Write};
> use core::ops::{self, Deref, DerefMut, Index};
>
> -use crate::error::{code::*, Error};
> +use crate::prelude::*;
>
> /// Byte string without UTF-8 validity guarantee.
> #[repr(transparent)]
> @@ -572,8 +572,7 @@ macro_rules! c_str {
> }};
> }
>
> -#[cfg(test)]
> -#[expect(clippy::items_after_test_module)]
> +#[kunit_tests(rust_kernel_str)]
> mod tests {
> use super::*;
>
> @@ -622,11 +621,10 @@ fn test_cstr_to_str() {
> }
>
> #[test]
> - #[should_panic]
> - fn test_cstr_to_str_panic() {
> + fn test_cstr_to_str_invalid_utf8() {
> let bad_bytes = b"\xc3\x28\0";
> let checked_cstr = CStr::from_bytes_with_nul(bad_bytes).unwrap();
> - checked_cstr.to_str().unwrap();
> + assert!(checked_cstr.to_str().is_err());
> }
>
> #[test]
next prev parent reply other threads:[~2025-05-10 1:58 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-02 21:51 [PATCH 0/7] Rust KUnit `#[test]` support improvements Miguel Ojeda
2025-05-02 21:51 ` [PATCH 1/7] rust: kunit: support KUnit-mapped `assert!` macros in `#[test]`s Miguel Ojeda
2025-05-04 17:41 ` Tamir Duberstein
2025-05-27 0:02 ` Miguel Ojeda
2025-05-05 6:02 ` David Gow
2025-05-27 0:08 ` Miguel Ojeda
2025-05-02 21:51 ` [PATCH 2/7] rust: kunit: support checked `-> Result`s in KUnit `#[test]`s Miguel Ojeda
2025-05-04 17:33 ` Tamir Duberstein
2025-05-04 17:59 ` Miguel Ojeda
2025-05-05 6:03 ` David Gow
2025-05-05 6:02 ` David Gow
2025-05-05 19:34 ` Boqun Feng
2025-05-06 6:32 ` David Gow
2025-05-27 15:22 ` Miguel Ojeda
2025-05-02 21:51 ` [PATCH 3/7] rust: add `kunit_tests` to the prelude Miguel Ojeda
2025-05-05 6:02 ` David Gow
2025-05-02 21:51 ` [PATCH 4/7] rust: str: convert `rusttest` tests into KUnit Miguel Ojeda
2025-05-04 17:30 ` Tamir Duberstein
2025-05-04 18:31 ` Miguel Ojeda
2025-05-04 18:39 ` Tamir Duberstein
2025-05-04 19:02 ` Miguel Ojeda
2025-05-05 6:03 ` David Gow
2025-05-05 6:02 ` David Gow
2025-05-10 1:58 ` John Hubbard [this message]
2025-05-02 21:51 ` [PATCH 5/7] rust: str: take advantage of the `-> Result` support in KUnit `#[test]`'s Miguel Ojeda
2025-05-04 17:29 ` Tamir Duberstein
2025-05-04 18:15 ` Miguel Ojeda
2025-05-04 18:22 ` Tamir Duberstein
2025-05-04 21:54 ` Miguel Ojeda
2025-05-05 6:03 ` David Gow
2025-05-05 6:02 ` David Gow
2025-05-02 21:51 ` [PATCH 6/7] Documentation: rust: rename `#[test]`s to "`rusttest` host tests" Miguel Ojeda
2025-05-05 6:02 ` David Gow
2025-05-02 21:51 ` [PATCH 7/7] Documentation: rust: testing: add docs on the new KUnit `#[test]` tests Miguel Ojeda
2025-05-05 6:02 ` David Gow
2025-05-05 16:57 ` [PATCH 0/7] Rust KUnit `#[test]` support improvements Danilo Krummrich
2025-05-05 17:07 ` Miguel Ojeda
2025-05-27 0:10 ` Miguel Ojeda
2025-05-27 0:12 ` Miguel Ojeda
2025-05-28 8:03 ` Miguel Ojeda
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=7507ab0b-7b18-4a99-a284-3dd5553a7669@nvidia.com \
--to=jhubbard@nvidia.com \
--cc=a.hindborg@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=dakr@kernel.org \
--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=ojeda@kernel.org \
--cc=patches@lists.linux.dev \
--cc=rmoar@google.com \
--cc=rust-for-linux@vger.kernel.org \
--cc=tmgross@umich.edu \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®