From 7457c3d1d457922772e8bb7e07e3e9fe7dd0e09d Mon Sep 17 00:00:00 2001 From: Ahmad Fatoum Date: Fri, 4 Jun 2021 10:46:58 +0200 Subject: test: add basic barebox self-test infrastructure Self tests is code written to run within barebox to exercise functionality. They offer flexibility to test specific units of barebox instead of the program as a whole. Add a very simple infrastructure for registering and executing self-tests. This is based on the Linux kselftest modules. We don't utilize modules for this, however, because we only have module support on ARM, but we need a generic solution. Selftests can be enabled individually and even tested without shell support to allow tests to happen for size-restricted barebox images as well. Acked-by: Rouven Czerwinski Signed-off-by: Ahmad Fatoum Link: https://lore.barebox.org/20210604084704.17410-8-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer --- common/startup.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'common') diff --git a/common/startup.c b/common/startup.c index 080feebf05..d170cb8a7c 100644 --- a/common/startup.c +++ b/common/startup.c @@ -37,6 +37,7 @@ #include #include #include +#include extern initcall_t __barebox_initcalls_start[], __barebox_early_initcalls_end[], __barebox_initcalls_end[]; @@ -417,6 +418,9 @@ void __noreturn start_barebox(void) pr_debug("initcalls done\n"); + if (IS_ENABLED(CONFIG_SELFTEST_AUTORUN)) + selftests_run(); + if (barebox_main) barebox_main(); -- cgit v1.2.3