[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <7507ab0b-7b18-4a99-a284-3dd5553a7669@nvidia.com>
Date: Fri, 9 May 2025 18:58:02 -0700
From: John Hubbard <jhubbard@...dia.com>
To: Miguel Ojeda <ojeda@...nel.org>,
Brendan Higgins <brendan.higgins@...ux.dev>, David Gow
<davidgow@...gle.com>, Alex Gaynor <alex.gaynor@...il.com>
Cc: Rae Moar <rmoar@...gle.com>, linux-kselftest@...r.kernel.org,
kunit-dev@...glegroups.com, Boqun Feng <boqun.feng@...il.com>,
Gary Guo <gary@...yguo.net>, Björn Roy Baron
<bjorn3_gh@...tonmail.com>, Benno Lossin <benno.lossin@...ton.me>,
Andreas Hindborg <a.hindborg@...nel.org>, Alice Ryhl <aliceryhl@...gle.com>,
Trevor Gross <tmgross@...ch.edu>, Danilo Krummrich <dakr@...nel.org>,
rust-for-linux@...r.kernel.org, linux-kernel@...r.kernel.org,
patches@...ts.linux.dev
Subject: Re: [PATCH 4/7] rust: str: convert `rusttest` tests into KUnit
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@...nel.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]
Powered by blists - more mailing lists