On Sat, Jun 13, 2020 at 02:51:17PM +0800, David Gow wrote:
Yeah, _KUNIT_TEST was what we've sort-of implicitly decided on for config names, but the documentation does need to happen.
That works for me. It still feels redundant, but all I really want is a standard name. :)
We haven't put as much thought into standardising the filenames much, though.
I actually find this to be much more important because it is more end-user-facing (i.e. in module naming, in build logs, in scripts, on filesystem, etc -- CONFIG is basically only present during kernel build). Trying to do any sorting or greping really needs a way to find all the kunit pieces.
Both of these are slightly complicated by cases like this where tests are being ported from a non-KUnit test to KUnit. There's a small argument there for trying to keep the name the same, though personally I suspect consistency is more important.
Understood. I think consistency is preferred too, especially since the driving reason to make this conversions is to gain consistency with the actual tests themselves.
Alas, the plans to document test coding style / conventions kept getting pre-empted: I'll drag it back up to the top of the to-do list, and see if we can't prioritise it. I think we'd hoped to be able to catch these in review, but between a bit of forgetfulness and a few tests going upstream without our seeing them has made it obvious that doesn't work.
Once something's documented (and the suitable bikeshedding has subsided), we can consider renaming existing tests if that seems worthwhile.
Yes please! :)
My feeling is we'll go for:
- Kconfig name: ~_KUNIT_TEST
As mentioned, I'm fine with this, but prefer ~_KUNIT
- filename: ~-test.c
I really don't like this. Several reasons reasons:
- it does not distinguish it from other tests -- there is no way to identify kunit tests from non-kunit tests from directory listings, build log greps, etc.
- the current "common" naming has been with a leading "test", ignoring kunit, tools/, and samples/:
53 test_*.c 27 *_test.c 19 *[a-z0-9]test.c 19 selftest*.c 16 test-*.c 11 *-test.c 11 test[a-z0-9]*.c 8 *-tests.c 5 *-selftest.c 4 *_test_*.c 1 *_selftest_*.c 1 *_selftests.c
(these counts might be a bit off -- my eyes started to cross while constructing regexes)
- dashes are converted to _ in module names, leading to some confusion between .c file and .ko file.
I'd strongly prefer ~_kunit.c, but could live with _kunit_test.c (even though it's redundant).
At least for the initial draft documentation, as those seem to be most common, but I think a thread on that would probably be the best place to add it.
I'm ready! :) (Subject updated)
This would also be a good opportunity to document the "standard" KUnit boilerplate help text in the Kconfig options.
Ah yeah, good idea.