Message ID | 20220324231907.1363887-3-keescook@chromium.org |
---|---|
State | New |
Headers | show |
Series | selftests/harness: Run TEARDOWN for ASSERT failures | expand |
On 3/24/22 5:19 PM, Kees Cook wrote: > From: Willem de Bruijn <willemb@google.com> > > FIXTURE_VARIANT data is passed to FIXTURE_SETUP and TEST_F as "variant". > > In some cases, the variant will change the setup, such that expectations > also change on teardown. Also pass variant to FIXTURE_TEARDOWN. > > The new FIXTURE_TEARDOWN logic is identical to that in FIXTURE_SETUP, > right above. > > Signed-off-by: Willem de Bruijn <willemb@google.com> > Reviewed-by: Jakub Kicinski <kuba@kernel.org> > Acked-by: Kees Cook <keescook@chromium.org> > Signed-off-by: Kees Cook <keescook@chromium.org> > Link: https://lore.kernel.org/r/20201210231010.420298-1-willemdebruijn.kernel@gmail.com > --- > tools/testing/selftests/kselftest_harness.h | 12 +++++++----- > 1 file changed, 7 insertions(+), 5 deletions(-) > > diff --git a/tools/testing/selftests/kselftest_harness.h b/tools/testing/selftests/kselftest_harness.h > index bef08f824eb5..f5cb5fd1d974 100644 > --- a/tools/testing/selftests/kselftest_harness.h > +++ b/tools/testing/selftests/kselftest_harness.h > @@ -291,7 +291,9 @@ > #define FIXTURE_TEARDOWN(fixture_name) \ > void fixture_name##_teardown( \ > struct __test_metadata __attribute__((unused)) *_metadata, \ > - FIXTURE_DATA(fixture_name) __attribute__((unused)) *self) > + FIXTURE_DATA(fixture_name) __attribute__((unused)) *self, \ > + const FIXTURE_VARIANT(fixture_name) \ > + __attribute__((unused)) *variant) > > /** > * FIXTURE_VARIANT() - Optionally called once per fixture > @@ -306,9 +308,9 @@ > * ... > * }; > * > - * Defines type of constant parameters provided to FIXTURE_SETUP() and TEST_F() > - * as *variant*. Variants allow the same tests to be run with different > - * arguments. > + * Defines type of constant parameters provided to FIXTURE_SETUP(), TEST_F() and > + * FIXTURE_TEARDOWN as *variant*. Variants allow the same tests to be run with > + * different arguments. > */ > #define FIXTURE_VARIANT(fixture_name) struct _fixture_variant_##fixture_name > > @@ -391,7 +393,7 @@ > fixture_name##_##test_name(_metadata, &self, variant->data); \ > } \ > if (_metadata->setup_completed) \ > - fixture_name##_teardown(_metadata, &self); \ > + fixture_name##_teardown(_metadata, &self, variant->data); \ > __test_check_assert(_metadata); \ > } \ > static struct __test_metadata \ > Looks good to me. Reviewed-by: Shuah Khan <skhan@linuxfoundation.org> thanks, -- Shuah
diff --git a/tools/testing/selftests/kselftest_harness.h b/tools/testing/selftests/kselftest_harness.h index bef08f824eb5..f5cb5fd1d974 100644 --- a/tools/testing/selftests/kselftest_harness.h +++ b/tools/testing/selftests/kselftest_harness.h @@ -291,7 +291,9 @@ #define FIXTURE_TEARDOWN(fixture_name) \ void fixture_name##_teardown( \ struct __test_metadata __attribute__((unused)) *_metadata, \ - FIXTURE_DATA(fixture_name) __attribute__((unused)) *self) + FIXTURE_DATA(fixture_name) __attribute__((unused)) *self, \ + const FIXTURE_VARIANT(fixture_name) \ + __attribute__((unused)) *variant) /** * FIXTURE_VARIANT() - Optionally called once per fixture @@ -306,9 +308,9 @@ * ... * }; * - * Defines type of constant parameters provided to FIXTURE_SETUP() and TEST_F() - * as *variant*. Variants allow the same tests to be run with different - * arguments. + * Defines type of constant parameters provided to FIXTURE_SETUP(), TEST_F() and + * FIXTURE_TEARDOWN as *variant*. Variants allow the same tests to be run with + * different arguments. */ #define FIXTURE_VARIANT(fixture_name) struct _fixture_variant_##fixture_name @@ -391,7 +393,7 @@ fixture_name##_##test_name(_metadata, &self, variant->data); \ } \ if (_metadata->setup_completed) \ - fixture_name##_teardown(_metadata, &self); \ + fixture_name##_teardown(_metadata, &self, variant->data); \ __test_check_assert(_metadata); \ } \ static struct __test_metadata \