On Fri, Jun 26, 2020 at 02:09:06PM -0700, Brendan Higgins wrote:
> Add a linker section where KUnit can put references to its test suites.
> This patch is the first step in transitioning to dispatching all KUnit
> tests from a centralized executor rather than having each as its own
> separate late_initcall.
> 
> Co-developed-by: Iurii Zaikin <yzai...@google.com>
> Signed-off-by: Iurii Zaikin <yzai...@google.com>
> Signed-off-by: Brendan Higgins <brendanhigg...@google.com>
> Reviewed-by: Stephen Boyd <sb...@kernel.org>
> ---
>  include/asm-generic/vmlinux.lds.h | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/include/asm-generic/vmlinux.lds.h 
> b/include/asm-generic/vmlinux.lds.h
> index db600ef218d7d..4f9b036fc9616 100644
> --- a/include/asm-generic/vmlinux.lds.h
> +++ b/include/asm-generic/vmlinux.lds.h
> @@ -881,6 +881,13 @@
>               KEEP(*(.con_initcall.init))                             \
>               __con_initcall_end = .;
>  
> +/* Alignment must be consistent with (kunit_suite *) in include/kunit/test.h 
> */

Nit on naming:

> +#define KUNIT_TEST_SUITES                                            \

I would call this KUNIT_TABLE to maintain the same names as other things
of this nature.

> +             . = ALIGN(8);                                           \
> +             __kunit_suites_start = .;                               \
> +             KEEP(*(.kunit_test_suites))                             \
> +             __kunit_suites_end = .;
> +
>  #ifdef CONFIG_BLK_DEV_INITRD
>  #define INIT_RAM_FS                                                  \
>       . = ALIGN(4);                                                   \
> @@ -1056,6 +1063,7 @@
>               INIT_CALLS                                              \
>               CON_INITCALL                                            \
>               INIT_RAM_FS                                             \
> +             KUNIT_TEST_SUITES                                       \
>       }

Nack: this must be in INIT_DATA, not in INIT_DATA_SECTION. Not all
architectures use the INIT_DATA_SECTION macro (e.g. arm64), but everything
uses INIT_DATA.


-- 
Kees Cook

Reply via email to