vmlinux.lds.h: add linker section for KUnit test suites
authorBrendan Higgins <brendanhiggins@google.com>
Tue, 4 Aug 2020 20:47:41 +0000 (13:47 -0700)
committerShuah Khan <skhan@linuxfoundation.org>
Fri, 9 Oct 2020 20:37:15 +0000 (14:37 -0600)
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 <yzaikin@google.com>
Signed-off-by: Iurii Zaikin <yzaikin@google.com>
Signed-off-by: Brendan Higgins <brendanhiggins@google.com>
Reviewed-by: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
include/asm-generic/vmlinux.lds.h

index 5430febd34beecea9e6c50126b78c9fb7a965758..31e08674b542796c7953746ec182c92291c883c5 100644 (file)
        THERMAL_TABLE(governor)                                         \
        EARLYCON_TABLE()                                                \
        LSM_TABLE()                                                     \
-       EARLY_LSM_TABLE()
+       EARLY_LSM_TABLE()                                               \
+       KUNIT_TABLE()
 
 #define INIT_TEXT                                                      \
        *(.init.text .init.text.*)                                      \
                KEEP(*(.con_initcall.init))                             \
                __con_initcall_end = .;
 
+/* Alignment must be consistent with (kunit_suite *) in include/kunit/test.h */
+#define KUNIT_TABLE()                                                  \
+               . = ALIGN(8);                                           \
+               __kunit_suites_start = .;                               \
+               KEEP(*(.kunit_test_suites))                             \
+               __kunit_suites_end = .;
+
 #ifdef CONFIG_BLK_DEV_INITRD
 #define INIT_RAM_FS                                                    \
        . = ALIGN(4);                                                   \