kunit: remove va_format from kunit_assert
authorDaniel Latypov <dlatypov@google.com>
Tue, 25 Jan 2022 21:00:09 +0000 (13:00 -0800)
committerShuah Khan <skhan@linuxfoundation.org>
Mon, 31 Jan 2022 18:55:27 +0000 (11:55 -0700)
commit6419abb80e82c603bbec6d7f5af6c2f79fa5c4ae
treec5d0b5344e3434598dbd5a9d4892eac6d58ebeaf
parent95dcbc55fe4ffe262795bea02a42695c85a22dc4
kunit: remove va_format from kunit_assert

The concern is that having a lot of redundant fields in kunit_assert can
blow up stack usage if the compiler doesn't optimize them away [1].

The comment on this field implies that it was meant to be initialized
when the expect/assert was declared, but this only happens when we run
kunit_do_failed_assertion().

We don't need to access it outside of that function, so move it out of
the struct and make it a local variable there.

This change also takes the chance to reduce the number of macros by
inlining the now simplified KUNIT_INIT_ASSERT_STRUCT() macro.

[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>
include/kunit/assert.h
lib/kunit/assert.c
lib/kunit/test.c