Messages in this thread | | | Date | Fri, 25 Mar 2022 15:36:24 -0700 | From | Kees Cook <> | Subject | Re: [PATCH 1/2] selftests/harness: Run TEARDOWN for ASSERT failures |
| |
On Fri, Mar 25, 2022 at 01:37:20PM -0600, Shuah Khan wrote: > On 3/24/22 5:19 PM, Kees Cook wrote: > > The kselftest test harness has traditionally not run the registered > > TEARDOWN handler when a test encountered an ASSERT. This creates > > unexpected situations and tests need to be very careful about using > > ASSERT, which seems a needless hurdle for test writers. > > > > Because of the harness's design for optional failure handlers, the > > original implementation of ASSERT used an abort() to immediately > > stop execution, but that meant the context for running teardown was > > lost. Instead, use setjmp/longjmp so that teardown can be done. > > > > Thanks for the patch. The change look good to me. > > > Failed SETUP routines continue to not be followed by TEARDOWN, though. > > Does this mean failed setup() routines have to handle TEARDOWN? What > are guidelines to follow for setup() failures? > > Can you add a bit more detail on what you meant by " Failed SETUP > routines continue to not be followed by TEARDOWN, though".
Sure! It means that any failures in a SETUP need to be cleaned up by the SETUP, as TEARDOWN won't be run. (As in, this is unchanged from how things behaved prior to this patch.)
> > With that: > > Reviewed-by: Shuah Khan <skhan@linuxfoundation.org>
Thanks!
-- Kees Cook
| |