On Fri, Oct 18, 2019 at 9:25 AM Theodore Y. Ts'o tytso@mit.edu wrote:
On Thu, Oct 17, 2019 at 05:43:07PM -0700, Brendan Higgins wrote:
+config SECURITY_APPARMOR_TEST
- bool "Build KUnit tests for policy_unpack.c"
- default n
- depends on KUNIT && SECURITY_APPARMOR
Ted, here is an example where doing select on direct dependencies is tricky because SECURITY_APPARMOR has a number of indirect dependencies.
Well, that could be solved by adding a select on all of the indirect dependencies. I did get your point about the fact that we could have
In this particular case that would work.
cases where the indirect dependencies might conflict with one another. That's going to be a tough situation regardless of whether we have a sat-solver or a human who has to struggle with that situation.
But yeah, that's the real problem.
It's also going to be a bit sad because it means that we won't be able to create a single config that could be used to run all the kunit tests when a user pushes a change to a Gerrit server for review. :-/
Yeah...well, we can do the next best thing and generate a set of kunitconfigs that in sum will run all the tests. Not nearly as nice, but it's the next best thing, right? If you think about it, it's really not all that different from the eventual goal of having many independent test binaries.
I suppose that if we use a strict definition of "unit tests", and we assume that all of the tests impacted by a change in foo/bar/baz.c will be found in foo/bar/baz-test.c, or maybe foo/bar/*-test.c, we can automate the generation of the kunitconfig file, perhaps?
Possibly. I have some friends on the TAP team (automated testing team within Google), and it sounds like that is actually a pretty hard problem, but something that is at least possible. Still, it would be nice to have a way to periodically run all the tests.
The other sad bit about having mutually exclusive config options is that we can't easily "run all KUinit tests" for some kind of test spinner or zero-day bot.
I'm not sure there's a good solution to that issue, though.
I think, as I mentioned above, the best we can do is probably have a thing which generates a set of kunitconfigs that in sum will run all the tests.
Thoughts?