On Mon, Aug 12, 2019 at 4:46 PM Stephen Boyd <sboyd@xxxxxxxxxx> wrote: > > Quoting Brendan Higgins (2019-08-12 11:24:07) > > Add `struct kunit_assert` and friends which provide a structured way to > > capture data from an expectation or an assertion (introduced later in > > the series) so that it may be printed out in the event of a failure. > > > > Signed-off-by: Brendan Higgins <brendanhiggins@xxxxxxxxxx> > > --- > > Reviewed-by: Stephen Boyd <sboyd@xxxxxxxxxx> > > Just some minor nits below > > > diff --git a/include/kunit/assert.h b/include/kunit/assert.h > > new file mode 100644 > > index 0000000000000..55f1b88b0cb4d > > --- /dev/null > > +++ b/include/kunit/assert.h > > @@ -0,0 +1,183 @@ > [...] > > + struct string_stream *stream); > > + > > +struct kunit_fail_assert { > > + struct kunit_assert assert; > > +}; > > + > > +void kunit_fail_assert_format(const struct kunit_assert *assert, > > + struct string_stream *stream); > > + > > +#define KUNIT_INIT_FAIL_ASSERT_STRUCT(test, type) { \ > > + .assert = KUNIT_INIT_ASSERT_STRUCT(test, \ > > + type, \ > > + kunit_fail_assert_format) \ > > This one got indented one too many times? Not unless I have been using the wrong formatting for multiline macros. You can see this commit applied here: https://kunit.googlesource.com/linux/+/870964da2990920030990dd1ffb647ef408e52df/include/kunit/assert.h#59 I have test, type, and kunit_fail_assert_format all column aligned (it just doesn't render nicely in the patch format). > > +} > > + > > +struct kunit_unary_assert { > > + struct kunit_assert assert; > > + const char *condition; > > + bool expected_true; > > +}; > > + > > +void kunit_unary_assert_format(const struct kunit_assert *assert, > > + struct string_stream *stream); > > + > [...] > > +#define KUNIT_INIT_BINARY_STR_ASSERT_STRUCT(test, \ > > + type, \ > > + op_str, \ > > + left_str, \ > > + left_val, \ > > + right_str, \ > > + right_val) { \ > > + .assert = KUNIT_INIT_ASSERT_STRUCT(test, \ > > + type, \ > > + kunit_binary_str_assert_format), \ > > + .operation = op_str, \ > > + .left_text = left_str, \ > > + .left_value = left_val, \ > > + .right_text = right_str, \ > > + .right_value = right_val \ > > +} > > It would be nice to have kernel doc on these macros so we know how to > use them. Sounds good. Will fix.