Message ID | 20220429181259.622060-1-dlatypov@google.com |
---|---|
State | Accepted |
Commit | cae56e1740f559703c94b7f4d772d873b8a01395 |
Headers | show |
Series | [v2,1/4] kunit: rename print_subtest_{start,end} for clarity (s/subtest/suite) | expand |
On Fri, Apr 29, 2022 at 2:13 PM Daniel Latypov <dlatypov@google.com> wrote: > > These names sound more general than they are. > > The _end() function increments a `static int kunit_suite_counter`, so it > can only safely be called on suites, aka top-level subtests. > It would need to have a separate counter for each level of subtest to be > generic enough. > > So rename it to make it clear it's only appropriate for suites. > > Signed-off-by: Daniel Latypov <dlatypov@google.com> > Reviewed-by: David Gow <davidgow@google.com> Reviewed-by: Brendan Higgins <brendanhiggins@google.com>
On Fri, Apr 29, 2022 at 2:13 PM Daniel Latypov <dlatypov@google.com> wrote: > > KUnit has support for setup/cleanup logic for each test case in a suite. > But it lacks the ability to specify setup/cleanup for the entire suite > itself. > > This can be used to do setup that is too expensive or cumbersome to do > for each test. > Or it can be used to do simpler things like log debug information after > the suite completes. > It's a fairly common feature, so the lack of it is noticeable. > > Some examples in other frameworks and languages: > * https://docs.python.org/3/library/unittest.html#setupclass-and-teardownclass > * https://google.github.io/googletest/reference/testing.html#Test::SetUpTestSuite > > Meta: > This is very similar to this patch here: https://lore.kernel.org/linux-kselftest/20210805043503.20252-3-bvanassche@acm.org/ > The changes from that patch: > * pass in `struct kunit *` so users can do stuff like > `kunit_info(suite, "debug message")` > * makes sure the init failure is bubbled up as a failure > * updates kunit-example-test.c to use a suite init > * Updates kunit/usage.rst to mention the new support > * some minor cosmetic things > * use `suite_{init,exit}` instead of `{init/exit}_suite` > * make suite init error message more consistent w/ test init > * etc. > > Signed-off-by: Daniel Latypov <dlatypov@google.com> > Reviewed-by: David Gow <davidgow@google.com> Reviewed-by: Brendan Higgins <brendanhiggins@google.com>
On Fri, Apr 29, 2022 at 2:13 PM Daniel Latypov <dlatypov@google.com> wrote: > > Commit 6d2426b2f258 ("kunit: Support skipped tests") switched to using > `enum kunit_status` to track the result of running a test/suite since we > now have more than just pass/fail. > > This callsite wasn't updated, silently converting to enum to a bool and > then back. > > Fixes: 6d2426b2f258 ("kunit: Support skipped tests") > Signed-off-by: Daniel Latypov <dlatypov@google.com> Reviewed-by: Brendan Higgins <brendanhiggins@google.com>
diff --git a/lib/kunit/test.c b/lib/kunit/test.c index 0f66c13d126e..64ee6a9d8003 100644 --- a/lib/kunit/test.c +++ b/lib/kunit/test.c @@ -134,7 +134,7 @@ size_t kunit_suite_num_test_cases(struct kunit_suite *suite) } EXPORT_SYMBOL_GPL(kunit_suite_num_test_cases); -static void kunit_print_subtest_start(struct kunit_suite *suite) +static void kunit_print_suite_start(struct kunit_suite *suite) { kunit_log(KERN_INFO, suite, KUNIT_SUBTEST_INDENT "# Subtest: %s", suite->name); @@ -192,7 +192,7 @@ EXPORT_SYMBOL_GPL(kunit_suite_has_succeeded); static size_t kunit_suite_counter = 1; -static void kunit_print_subtest_end(struct kunit_suite *suite) +static void kunit_print_suite_end(struct kunit_suite *suite) { kunit_print_ok_not_ok((void *)suite, false, kunit_suite_has_succeeded(suite), @@ -498,7 +498,7 @@ int kunit_run_tests(struct kunit_suite *suite) struct kunit_result_stats suite_stats = { 0 }; struct kunit_result_stats total_stats = { 0 }; - kunit_print_subtest_start(suite); + kunit_print_suite_start(suite); kunit_suite_for_each_test_case(suite, test_case) { struct kunit test = { .param_value = NULL, .param_index = 0 }; @@ -552,7 +552,7 @@ int kunit_run_tests(struct kunit_suite *suite) } kunit_print_suite_stats(suite, suite_stats, total_stats); - kunit_print_subtest_end(suite); + kunit_print_suite_end(suite); return 0; }