On Mon, Aug 12, 2019 at 4:56 PM Brendan Higgins <brendanhiggins@xxxxxxxxxx> wrote: > > 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). Disregard that last comment. I just looked at the line immediately above your comment and thought it looked correct. Sorry about that (you were pointing out that the .assert line looked wrong, correct?). > > > +} > > > + > > > +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.