kunit: flatten kunit_suite*** to kunit_suite** in .kunit_test_suites
authorDaniel Latypov <dlatypov@google.com>
Sat, 9 Jul 2022 03:19:58 +0000 (11:19 +0800)
committerShuah Khan <skhan@linuxfoundation.org>
Mon, 11 Jul 2022 23:13:15 +0000 (17:13 -0600)
commite5857d396f35e59e6fe96cf1178b0357cc3a1ea4
tree2481ba00637536dc357697bc2a4ef5153f32e415
parent3d6e44623841c8b82c2157f2f749019803fb238a
kunit: flatten kunit_suite*** to kunit_suite** in .kunit_test_suites

We currently store kunit suites in the .kunit_test_suites ELF section as
a `struct kunit_suite***` (modulo some `const`s).
For every test file, we store a struct kunit_suite** NULL-terminated array.

This adds quite a bit of complexity to the test filtering code in the
executor.

Instead, let's just make the .kunit_test_suites section contain a single
giant array of struct kunit_suite pointers, which can then be directly
manipulated. This array is not NULL-terminated, and so none of the test
filtering code needs to NULL-terminate anything.

Tested-by: MaĆ­ra Canal <maira.canal@usp.br>
Reviewed-by: Brendan Higgins <brendanhiggins@google.com>
Signed-off-by: Daniel Latypov <dlatypov@google.com>
Co-developed-by: David Gow <davidgow@google.com>
Signed-off-by: David Gow <davidgow@google.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
include/kunit/test.h
include/linux/module.h
lib/kunit/executor.c
lib/kunit/executor_test.c
lib/kunit/test.c