diff --git a/core/lib/init.c b/core/lib/init.c index b20252945d..cdf7358a4e 100644 --- a/core/lib/init.c +++ b/core/lib/init.c @@ -60,7 +60,12 @@ static void *main_trampoline(void *arg) LOG_INFO(CONFIG_BOOT_MSG_STRING "\n"); } - main(); + int res = main(); + + if (IS_USED(MODULE_TEST_UTILS_MAIN_EXIT_CB)) { + void test_utils_main_exit_cb(int res); + test_utils_main_exit_cb(res); + } #ifdef MODULE_TEST_UTILS_PRINT_STACK_USAGE void print_stack_usage_metric(const char *name, void *stack, unsigned max_size); diff --git a/makefiles/pseudomodules.inc.mk b/makefiles/pseudomodules.inc.mk index 2516929079..17cb40b7de 100644 --- a/makefiles/pseudomodules.inc.mk +++ b/makefiles/pseudomodules.inc.mk @@ -581,6 +581,7 @@ PSEUDOMODULES += crypto_aes_unroll # declare shell version of test_utils_interactive_sync PSEUDOMODULES += test_utils_interactive_sync_shell +PSEUDOMODULES += test_utils_main_exit_cb # All auto_init modules are pseudomodules PSEUDOMODULES += auto_init_%