On Mon, Aug 12, 2019 at 4:56 PM Brendan Higgins brendanhiggins@google.com wrote:
On Mon, Aug 12, 2019 at 4:46 PM Stephen Boyd sboyd@kernel.org 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@google.com
Reviewed-by: Stephen Boyd sboyd@kernel.org
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/+/870964da2990920030990dd1ffb647ef408e5...
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.