<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/source/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in Kconfig.test</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>b079329b8691768962aa514b8f8c9077ca352459 - Merge tag &apos;rust-7.2&apos; of gitolite.kernel.org:pub/scm/linux/kernel/git/ojeda/linux</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/Kconfig.test#b079329b8691768962aa514b8f8c9077ca352459</link>
        <description>Merge tag &apos;rust-7.2&apos; of gitolite.kernel.org:pub/scm/linux/kernel/git/ojeda/linuxPull Rust updates from Miguel Ojeda: &quot;This one is big due to the vendoring of the `zerocopy` library, which  allows us to replace a bunch of `unsafe` code dealing with conversions  between byte sequences and other types with safe alternatives. More  details on that below (and in its merge commit).  Toolchain and infrastructure:   - Introduce support for the &apos;zerocopy&apos; library [1][2]:         Fast, safe, compile error. Pick two.         Zerocopy makes zero-cost memory manipulation effortless. We write         `unsafe` so you don&apos;t have to.     It essentially provides derivable traits (e.g. &apos;FromBytes&apos;) and     macros (e.g. &apos;transmute!&apos;) for safely converting between byte     sequences and other types. Having such support allows us to remove     some &apos;unsafe&apos; code.     It is among the most downloaded Rust crates and it is also used by     the Rust compiler itself.     It is licensed under &quot;BSD-2-Clause OR Apache-2.0 OR MIT&quot;.     The crates are imported essentially as-is (only +2/-3 lines needed     to be adapted), plus SPDX identifiers. Upstream has since added the     SPDX identifiers as well as one of the tweaks at my request, thus     reducing our future diffs on updates -- I keep the details in one     of our usual live lists [3].     In total, it is about ~39k lines added, ~32k without counting     &apos;benches/&apos; which are just for documentation purposes.     The series includes a few Kbuild and rust-analyzer improvements and     an example patch using it in Nova, removing one &apos;unsafe impl&apos;.     I checked that the codegen of an isolated example function (similar     to the Nova patch on top) is essentially identical. It also turns     out that (for that particular case) the &apos;zerocopy&apos; version, even     with &apos;debug-assertions&apos; enabled, has no remaining panics, unlike a     few in the current code (since the compiler can prove the remaining     &apos;ub_checks&apos; statically).     So their &quot;fast, safe&quot; does indeed check out -- at least in that     case.   - Support AutoFDO. This allows Rust code to be profiled and optimized     based on the profile. Tested with Rust Binder: ~13% slower without     AutoFDO in the binderAddInts benchmark (using an app-launch     benchmark for the profile).   - Support Software Tag-Based KASAN.     In addition, fix KASAN Kconfig by requiring Clang.   - Add Kconfig options for each existing Rust KUnit test suite, such     as &apos;CONFIG_RUST_BITMAP_KUNIT_TEST&apos;.     They are placed within a new menu, &apos;CONFIG_RUST_KUNIT_TESTS&apos;, in     the new &apos;rust/kernel/Kconfig.test&apos; file.   - Support the upcoming Rust 1.98.0 release (expected 2026-08-20):     lint cleanups and an unstable flag rename.   - Disable &apos;rustdoc&apos; documentation inlining for all prelude items,     which bloats the generated documentation.   - Ignore (in Git) and clean (in Kbuild) the (rarely) &apos;rustc&apos;-generated     &apos;*.long-type-*.txt&apos; files.  &apos;kernel&apos; crate:   - Add new &apos;bitfield&apos; module with the &apos;bitfield!&apos; macro (extracted     from the existing &apos;register!&apos; one), which declares integer types     that are split into distinct bit fields of arbitrary length.     Each field is a &apos;Bounded&apos; of the appropriate bit width (ensuring     values are properly validated and avoiding implicit data loss) and     gets several generated getters and setters (infallible, &apos;const&apos; and     fallible) as well as associated constants (&apos;_MASK&apos;, &apos;_SHIFT&apos; and     &apos;_RANGE&apos;). It also supports fields that can be converted from/to     custom types, either fallibly (&apos;?=&gt;&apos;) or infallibly (&apos;=&gt;&apos;).     For instance:         bitfield! {             struct Rgb(u16) {                 15:11 blue;                 10:5 green;                 4:0 red;             }         }         // Compile-time checks.         let color = Rgb::zeroed().with_const_green::&lt;0x1f&gt;();         assert_eq!(color.green(), 0x1f);         assert_eq!(color.into_raw(), 0x1f &lt;&lt; Rgb::GREEN_SHIFT);     Add as well documentation and a test suite for it, as usual; and     update the &apos;register!&apos; macro to use it.     It will be maintained by Alexandre Courbot (with Yury Norov as     reviewer) under a new &apos;MAINTAINERS&apos; entry: &apos;RUST [BITFIELD]&apos;.   - &apos;ptr&apos; module: rework index projection syntax into keyworded syntax     and introduce panicking variant.     The keyword syntax (&apos;build:&apos;, &apos;try:&apos;, &apos;panic:&apos;) is more explicit     and paves the way of perhaps adding more flavors in the future,     e.g. an &apos;unsafe&apos; index projection.     For instance, projections now look like this:         fn f(p: *const [u8; 32]) -&gt; Result {             // Ok, within bounds, checked at build time.             project!(p, [build: 1]);             // Build error.             project!(p, [build: 128]);             // `OutOfBound` runtime error (convertible to `ERANGE`).             project!(p, [try: 128]);             // Runtime panic.             project!(p, [panic: 128]);             Ok(())         }     Update as well the users, which now look like e.g.         // Pointer to the first entry of the GSP message queue.         let data = project!(self.0.as_ptr(), .gspq.msgq.data[build: 0]);   - &apos;build_assert&apos; module: make the module the home of its macros     instead of rendering them twice.   - &apos;sync&apos; module: add &apos;UniqueArc::as_ptr()&apos; associated function.   - &apos;alloc&apos; module:       - Fix the &apos;Vec::reserve()&apos; doctest to properly account for the         existing vector length in the capacity assertion.       - Fix an incorrect operator in the &apos;Vec::extend_with()&apos; &apos;SAFETY&apos;         comment; add a doc test demonstrating basic usage and the         zero-length case.   - Clean imports across several modules to follow the &quot;kernel     vertical&quot; import style in order to minimize conflicts.  &apos;pin-init&apos; crate:   - User visible changes:       - Do not generate &apos;non_snake_case&apos; warnings for identifiers that         are syntactically just users of a field name. This would allow         all &apos;#[allow(non_snake_case)]&apos; in nova-core to be removed,         which Gary will send to the nova tree next cycle.       - Filter non-cfg attributes out properly in derived structs. This         improves pin-init compatibility with other derive macros.       - Insert projection types&apos; where clause properly.   - Other changes:       - Bump MSRV to 1.82, plus associated cleanups.       - Overhaul how init slots are projected. The new approach is         easier to justify with safety comments.       - Mark more functions as inline, which should help mitigate the         super-long symbol name issue due to lack of inlining.  rust-analyzer:   - Support &apos;--envs&apos; for passing env vars for crates like &apos;zerocopy&apos;.  &apos;MAINTAINERS&apos;:   - Add the following reviewers to the &apos;RUST&apos; entry:       - Daniel Almeida       - Tamir Duberstein       - Alexandre Courbot       - Onur &#214;zkan     They have been involved in the Rust for Linux project for about 7     collective years and bring expertise across several domains, which     will be very useful to have around in the future.     Thanks everyone for stepping up!  And some other fixes, cleanups and improvements&quot;Link: https://github.com/google/zerocopy [1]Link: https://docs.rs/zerocopy [2]Link: https://github.com/Rust-for-Linux/linux/issues/1239 [3]* tag &apos;rust-7.2&apos; of gitolite.kernel.org:pub/scm/linux/kernel/git/ojeda/linux: (86 commits)  MAINTAINERS: add Onur &#214;zkan as Rust reviewer  MAINTAINERS: add Alexandre Courbot as Rust reviewer  MAINTAINERS: add Tamir Duberstein as Rust reviewer  MAINTAINERS: add Daniel Almeida as Rust reviewer  kbuild: rust: clean `zerocopy-derive` in `mrproper`  rust: make `build_assert` module the home of related macros  rust: str: clean unused import for Rust &gt;= 1.98  rust: str: use the &quot;kernel vertical&quot; imports style  rust: aref: use the &quot;kernel vertical&quot; imports style  rust: page: use the &quot;kernel vertical&quot; imports style  gpu: nova-core: firmware: parse `FalconUCodeDescV2` via `zerocopy`  rust: prelude: add `zerocopy{,_derive}::FromBytes`  rust: zerocopy-derive: enable support in kbuild  rust: zerocopy-derive: add `README.md`  rust: zerocopy-derive: avoid generating non-ASCII identifiers  rust: zerocopy-derive: add SPDX License Identifiers  rust: zerocopy-derive: import crate  rust: zerocopy: enable support in kbuild  rust: zerocopy: add `README.md`  rust: zerocopy: remove float `Display` support  ...

            List of files:
            /linux/rust/kernel/Kconfig.test</description>
        <pubDate>Mon, 15 Jun 2026 05:55:48 +0200</pubDate>
        <dc:creator>Linus Torvalds &lt;torvalds@linux-foundation.org&gt;</dc:creator>
    </item>
<item>
        <title>7f502747bc0019acf40d620b50a98b62851fa0cc - rust: bitfield: Add KUnit tests for bitfield</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/Kconfig.test#7f502747bc0019acf40d620b50a98b62851fa0cc</link>
        <description>rust: bitfield: Add KUnit tests for bitfieldAdd KUnit tests to make sure the macro is working correctly. The unittests are put behind the new `RUST_BITFIELD_KUNIT_TEST` Kconfig option.Acked-by: Danilo Krummrich &lt;dakr@kernel.org&gt;Reviewed-by: Eliot Courtney &lt;ecourtney@nvidia.com&gt;Signed-off-by: Joel Fernandes &lt;joelagnelf@nvidia.com&gt;[acourbot:- Use a consistent test axis where each test focuses on a single thing.- Rename members to generic name including range for readability.- Add test exercising `try_with`.- Add test checking that unallocated bits are left untouched.]Co-developed-by: Alexandre Courbot &lt;acourbot@nvidia.com&gt;Signed-off-by: Alexandre Courbot &lt;acourbot@nvidia.com&gt;Reviewed-by: Yury Norov &lt;ynorov@nvidia.com&gt;Link: https://patch.msgid.link/20260606-bitfield-v5-2-b92188820914@nvidia.com[ Prefixed test suite name with `rust_` as mentioned. Markdown-formatted  a few comments with Markdown. - Miguel ]Signed-off-by: Miguel Ojeda &lt;ojeda@kernel.org&gt;

            List of files:
            /linux/rust/kernel/Kconfig.test</description>
        <pubDate>Sat, 06 Jun 2026 14:43:05 +0200</pubDate>
        <dc:creator>Joel Fernandes &lt;joelagnelf@nvidia.com&gt;</dc:creator>
    </item>
<item>
        <title>e74b7a3f5aee02c7df33c79991fd867ce421051b - rust: tests: add Kconfig for KUnit test</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/Kconfig.test#e74b7a3f5aee02c7df33c79991fd867ce421051b</link>
        <description>rust: tests: add Kconfig for KUnit testThere are 6 individual Rust KUnit test suites (plus the doctests one). Allthe tests are compiled unconditionally now, which adds ~200 kB to thekernel image for me on x86_64. As Rust matures, this bloating willinevitably grow.Add Kconfig.test which includes a RUST_KUNIT_TESTS menu, and allindividual tests under it.As usual, new tests are all enabled if KUNIT_ALL_TESTS=y.Suggested-by: Alice Ryhl &lt;aliceryhl@google.com&gt;Signed-off-by: Yury Norov &lt;ynorov@nvidia.com&gt;Reviewed-by: David Gow &lt;david@davidgow.net&gt;Acked-by: Gary Guo &lt;gary@garyguo.net&gt;Link: https://patch.msgid.link/20260417031531.315281-3-ynorov@nvidia.com[ Fixed capitalization. Used singular for &quot;API&quot; for consistency.  Reworded to clarify these are suites and that there exists  the doctests one (which is the biggest at the moment by  far). - Miguel ]Signed-off-by: Miguel Ojeda &lt;ojeda@kernel.org&gt;

            List of files:
            /linux/rust/kernel/Kconfig.test</description>
        <pubDate>Fri, 17 Apr 2026 05:15:28 +0200</pubDate>
        <dc:creator>Yury Norov &lt;ynorov@nvidia.com&gt;</dc:creator>
    </item>
</channel>
</rss>
