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@xxxxxxxxxxxxxxxxxxx> Thanks! -- Kees Cook