• David Gow's avatar
    kunit: Move kunit_abort() call out of kunit_do_failed_assertion() · 26075518
    David Gow authored
    KUnit aborts the current thread when an assertion fails. Currently, this
    is done conditionally as part of the kunit_do_failed_assertion()
    function, but this hides the kunit_abort() call from the compiler
    (particularly if it's in another module). This, in turn, can lead to
    both suboptimal code generation (the compiler can't know if
    kunit_do_failed_assertion() will return), and to static analysis tools
    like smatch giving false positives.
    
    Moving the kunit_abort() call into the macro should give the compiler
    and tools a better chance at understanding what's going on. Doing so
    requires exporting kunit_abort(), though it's recommended to continue to
    use assertions in lieu of aborting directly.
    
    In addition, kunit_abort() and kunit_do_failed_assertion() are renamed
    to make it clear they they're intended for internal KUnit use, to:
    __kunit_do_failed_assertion() and __kunit_abort()
    Suggested-by: default avatarDan Carpenter <dan.carpenter@linaro.org>
    Signed-off-by: default avatarDavid Gow <davidgow@google.com>
    Reviewed-by: default avatarMiguel Ojeda <ojeda@kernel.org>
    Reviewed-by: default avatarDaniel Latypov <dlatypov@google.com>
    Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
    26075518
test.c 20.3 KB