kunit: factor out kunit_base_assert_format() call into kunit_fail()
authorDaniel Latypov <dlatypov@google.com>
Thu, 13 Jan 2022 16:59:29 +0000 (08:59 -0800)
committerShuah Khan <skhan@linuxfoundation.org>
Tue, 25 Jan 2022 19:49:53 +0000 (12:49 -0700)
We call this function first thing for all the assertion `format()`
functions.
This is the part that prints the file and line number and assertion type
(EXPECTATION, ASSERTION).

Having it as part of the format functions lets us have the flexibility
to not print that information (or print it differently) for new
assertion types, but I think this we don't need that.

And in the future, we'd like to consider factoring that data (file,
line#, type) out of the kunit_assert struct and into a `static`
variable, as Linus suggested [1], so we'd need to extract it anyways.

[1] https://groups.google.com/g/kunit-dev/c/i3fZXgvBrfA/m/VULQg1z6BAAJ

Signed-off-by: Daniel Latypov <dlatypov@google.com>
Reviewed-by: David Gow <davidgow@google.com>
Reviewed-by: Brendan Higgins <brendanhiggins@google.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
lib/kunit/assert.c
lib/kunit/test.c

index b972bda61c0c32a1bf098de41e3fccf20c82ad00..4d9a1295efc7ddf2df80202d1a990adcb71f450e 100644 (file)
@@ -40,7 +40,6 @@ EXPORT_SYMBOL_GPL(kunit_assert_print_msg);
 void kunit_fail_assert_format(const struct kunit_assert *assert,
                              struct string_stream *stream)
 {
-       kunit_base_assert_format(assert, stream);
        string_stream_add(stream, "%pV", &assert->message);
 }
 EXPORT_SYMBOL_GPL(kunit_fail_assert_format);
@@ -52,7 +51,6 @@ void kunit_unary_assert_format(const struct kunit_assert *assert,
 
        unary_assert = container_of(assert, struct kunit_unary_assert, assert);
 
-       kunit_base_assert_format(assert, stream);
        if (unary_assert->expected_true)
                string_stream_add(stream,
                                  KUNIT_SUBTEST_INDENT "Expected %s to be true, but is false\n",
@@ -73,7 +71,6 @@ void kunit_ptr_not_err_assert_format(const struct kunit_assert *assert,
        ptr_assert = container_of(assert, struct kunit_ptr_not_err_assert,
                                  assert);
 
-       kunit_base_assert_format(assert, stream);
        if (!ptr_assert->value) {
                string_stream_add(stream,
                                  KUNIT_SUBTEST_INDENT "Expected %s is not null, but is\n",
@@ -119,7 +116,6 @@ void kunit_binary_assert_format(const struct kunit_assert *assert,
        binary_assert = container_of(assert, struct kunit_binary_assert,
                                     assert);
 
-       kunit_base_assert_format(assert, stream);
        string_stream_add(stream,
                          KUNIT_SUBTEST_INDENT "Expected %s %s %s, but\n",
                          binary_assert->left_text,
@@ -147,7 +143,6 @@ void kunit_binary_ptr_assert_format(const struct kunit_assert *assert,
        binary_assert = container_of(assert, struct kunit_binary_ptr_assert,
                                     assert);
 
-       kunit_base_assert_format(assert, stream);
        string_stream_add(stream,
                          KUNIT_SUBTEST_INDENT "Expected %s %s %s, but\n",
                          binary_assert->left_text,
@@ -187,7 +182,6 @@ void kunit_binary_str_assert_format(const struct kunit_assert *assert,
        binary_assert = container_of(assert, struct kunit_binary_str_assert,
                                     assert);
 
-       kunit_base_assert_format(assert, stream);
        string_stream_add(stream,
                          KUNIT_SUBTEST_INDENT "Expected %s %s %s, but\n",
                          binary_assert->left_text,
index 3a52c321c28051c22ac44b763b060e119928ae3c..345a9dd88c2720d0e6b88a505a63559d5db593dd 100644 (file)
@@ -255,6 +255,7 @@ static void kunit_fail(struct kunit *test, struct kunit_assert *assert)
                return;
        }
 
+       kunit_base_assert_format(assert, stream);
        assert->format(assert, stream);
 
        kunit_print_string_stream(test, stream);