Message ID | 20201210231010.420298-1-willemdebruijn.kernel@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | selftests/harness: pass variant to teardown | expand |
On Thu, 10 Dec 2020 18:10:10 -0500 Willem de Bruijn 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 expections > 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> IDK where we want to draw the line between reusing fixtures creating separate ones, some test cases are completely skipped in the example you provide. But in principle the harness change is fine by me: Reviewed-by: Jakub Kicinski <kuba@kernel.org>
On Thu, Dec 10, 2020 at 06:10:10PM -0500, Willem de Bruijn 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 expections > 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> Thanks! This was on my TODO list. :) Acked-by: Kees Cook <keescook@chromium.org>
On Fri, Dec 11, 2020 at 1:15 PM Kees Cook <keescook@chromium.org> wrote: > > On Thu, Dec 10, 2020 at 06:10:10PM -0500, Willem de Bruijn 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 expections > > 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> > > Thanks! This was on my TODO list. :) > > Acked-by: Kees Cook <keescook@chromium.org> Is this patch staged to be merged as is? Should I resubmit it? Same question for another slightly older (2020-11-23) kselftest patch: tools/testing: add kselftest shell helper library https://patchwork.kernel.org/project/linux-kselftest/patch/20201123162508.585279-1-willemdebruijn.kernel@gmail.com/ Thanks, Willem
Hi Shuah, Any news on these? I'd like to see them. -Kees On Fri, Feb 05, 2021 at 10:11:52PM -0500, Willem de Bruijn wrote: > On Fri, Dec 11, 2020 at 1:15 PM Kees Cook <keescook@chromium.org> wrote: > > > > On Thu, Dec 10, 2020 at 06:10:10PM -0500, Willem de Bruijn 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 expections > > > 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> > > > > Thanks! This was on my TODO list. :) > > > > Acked-by: Kees Cook <keescook@chromium.org> > > Is this patch staged to be merged as is? Should I resubmit it? > > Same question for another slightly older (2020-11-23) kselftest patch: > > tools/testing: add kselftest shell helper library > https://patchwork.kernel.org/project/linux-kselftest/patch/20201123162508.585279-1-willemdebruijn.kernel@gmail.com/ > > Thanks, > > Willem
diff --git a/tools/testing/selftests/kselftest_harness.h b/tools/testing/selftests/kselftest_harness.h index f19804df244c..6a27e79278e8 100644 --- a/tools/testing/selftests/kselftest_harness.h +++ b/tools/testing/selftests/kselftest_harness.h @@ -283,7 +283,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(fixture_name) - Optionally called once per fixture @@ -298,9 +300,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 @@ -382,7 +384,7 @@ if (!_metadata->passed) \ return; \ fixture_name##_##test_name(_metadata, &self, variant->data); \ - fixture_name##_teardown(_metadata, &self); \ + fixture_name##_teardown(_metadata, &self, variant->data); \ } \ static struct __test_metadata \ _##fixture_name##_##test_name##_object = { \