Thread (20 messages) 20 messages, 7 authors, 2020-06-24

Re: [PATCH v3 1/7] vmlinux.lds.h: add linker section for KUnit test suites

From: Brendan Higgins <hidden>
Date: 2020-02-28 07:22:46
Also in: linux-arch, linux-kselftest, linux-um, lkml

On Thu, Feb 27, 2020 at 5:20 PM Brendan Higgins
[off-list ref] wrote:
quoted hunk ↗ jump to hunk
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 <redacted>
Signed-off-by: Iurii Zaikin <redacted>
Signed-off-by: Brendan Higgins <redacted>
Reviewed-by: Stephen Boyd <sboyd@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 e00f41aa8ec4f..99a866f49cb3d 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -856,6 +856,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);                                           \
After posting this, I saw I had gotten an email from 0day[1]. After
some investigation, I discovered that this 8 byte alignment works for
x86 64 bit fine, but only *sometimes* for 32 bit. 4 byte alignment
seems to work in all cases (so far). I am not sure why we went with
such a large alignment in hindsight. In any case, I should have a
fixed revision out pretty soon.
quoted hunk ↗ jump to hunk
+               __kunit_suites_start = .;                               \
+               KEEP(*(.kunit_test_suites))                             \
+               __kunit_suites_end = .;
+
 #ifdef CONFIG_BLK_DEV_INITRD
 #define INIT_RAM_FS                                                    \
        . = ALIGN(4);                                                   \
@@ -1024,6 +1031,7 @@
                INIT_CALLS                                              \
                CON_INITCALL                                            \
                INIT_RAM_FS                                             \
+               KUNIT_TEST_SUITES                                       \
        }

 #define BSS_SECTION(sbss_align, bss_align, stop_align)                 \
--
[1] https://lists.01.org/hyperkitty/list/lkp@lists.01.org/thread/4I4UW4OAT63ETMIEUJQTOF3BFTMO6ROD/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help