mbox series

[RFC,0/4] kunit: more assertion reworking

Message ID 20220525154442.1438081-1-dlatypov@google.com (mailing list archive)
Headers show
Series kunit: more assertion reworking | expand

Message

Daniel Latypov May 25, 2022, 3:44 p.m. UTC
This is a follow up to these three series:
https://lore.kernel.org/all/20220113165931.451305-1-dlatypov@google.com/
https://lore.kernel.org/all/20220118223506.1701553-1-dlatypov@google.com/
https://lore.kernel.org/all/20220125210011.3817742-1-dlatypov@google.com/

The two goals of those series were
a) reduce the size of struct kunit_assert and friends.
   (struct kunit_assert went from 48 => 8 bytes on UML.)
b) simplify the internal code, mostly by deleting macros

This series goes further
a) sizeof(struct kunit_assert) = 0 now
b) e.g. we delete another class of macros (KUNIT_INIT_*_ASSERT_STRUCT)

Note: this does change the function signature of
kunit_do_failed_assertion, so we'd need to update the rust wrapper in https://github.com/Rust-for-Linux/linux/blob/rust/rust/kernel/kunit.rs
But otherwise, I don't think this series changes anything on the
rust-side.

Daniel Latypov (4):
  rfc: kunit: remove format func from struct kunit_assert, get it to 0
    bytes
  rfc: kunit: rename base KUNIT_ASSERTION macro to _KUNIT_FAILED
  rfc: kunit: eliminate KUNIT_INIT_*_ASSERT_STRUCT macros
  kunit: delcare kunit_assert structs as const

 include/kunit/assert.h |  74 ++-----------------------
 include/kunit/test.h   | 123 ++++++++++++++++++++++-------------------
 lib/kunit/test.c       |   7 ++-
 3 files changed, 76 insertions(+), 128 deletions(-)


base-commit: e7eaffce47b7db72b077630dbe836f0c4132496d

Comments

Miguel Ojeda May 25, 2022, 3:56 p.m. UTC | #1
Hi Daniel,

On Wed, May 25, 2022 at 5:44 PM Daniel Latypov <dlatypov@google.com> wrote:
>
> Note: this does change the function signature of
> kunit_do_failed_assertion, so we'd need to update the rust wrapper in https://github.com/Rust-for-Linux/linux/blob/rust/rust/kernel/kunit.rs
> But otherwise, I don't think this series changes anything on the
> rust-side.

Thanks for the heads up! I can take care of that.

Cheers,
Miguel
Daniel Latypov May 25, 2022, 4:06 p.m. UTC | #2
On Wed, May 25, 2022 at 8:56 AM Miguel Ojeda
<miguel.ojeda.sandonis@gmail.com> wrote:
>
> Hi Daniel,
>
> On Wed, May 25, 2022 at 5:44 PM Daniel Latypov <dlatypov@google.com> wrote:
> >
> > Note: this does change the function signature of
> > kunit_do_failed_assertion, so we'd need to update the rust wrapper in https://github.com/Rust-for-Linux/linux/blob/rust/rust/kernel/kunit.rs
> > But otherwise, I don't think this series changes anything on the
> > rust-side.
>
> Thanks for the heads up! I can take care of that.

FYI This probably won't need to happen soon.
I'd mentioned the idea of patch #1, which changes
kunit_do_failed_assertion(), and Brendan didn't seem keen on it
before.

But the diff should be simple, e.g. just something like this:
@@ -38,9 +38,7 @@
             });
             static CONDITION: &'static $crate::str::CStr =
$crate::c_str!(stringify!($cond));
             static ASSERTION: UnaryAssert =
UnaryAssert($crate::bindings::kunit_unary_assert {
-                assert: $crate::bindings::kunit_assert {
-                    format: Some($crate::bindings::kunit_unary_assert_format),
-                },
+                assert: $crate::bindings::kunit_assert {},
                 condition: CONDITION.as_char_ptr(),
                 expected_true: true,
             });
@@ -67,6 +65,7 @@
                     core::ptr::addr_of!(LOCATION.0),
                     $crate::bindings::kunit_assert_type_KUNIT_ASSERTION,
                     core::ptr::addr_of!(ASSERTION.0.assert),
+                    Some($crate::bindings::kunit_unary_assert_format),
                     core::ptr::null(),
                 );
             }

The only tricky bit will be coordinating the changes :)

Daniel