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 */
+#define KUNIT_TEST_SUITES                                              \
+               . = 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                                       \
        }
 
 #define BSS_SECTION(sbss_align, bss_align, stop_align)                 \
-- 
2.27.0.212.ge8ba1cc988-goog

Reply via email to