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::SetUpTestSu...
Meta: This is very similar to this patch here: https://lore.kernel.org/linux-kselftest/20210805043503.20252-3-bvanassche@ac... 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