From: Emil Velikov Date: Fri, 13 Jun 2025 16:24:32 +0000 (+0100) Subject: testsuite: remove exit from EXEC_TOOL tests X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e09acf2e2447ddb0619bffd0237521c405c4e1bb;p=thirdparty%2Fkmod.git testsuite: remove exit from EXEC_TOOL tests The EXEC_TOOL macros calls test_spawn_prog() which returns EXIT_FAILURE in the unlikely case of a return from execv(). Thus the explicit exit() is dead code that we can remove and alongside it the noreturn notation of the respective tests. Signed-off-by: Emil Velikov Link: https://github.com/kmod-project/kmod/pull/371 Signed-off-by: Lucas De Marchi --- diff --git a/testsuite/test-depmod.c b/testsuite/test-depmod.c index 9ac20d11..6df598b3 100644 --- a/testsuite/test-depmod.c +++ b/testsuite/test-depmod.c @@ -16,10 +16,9 @@ #define MODULES_UNAME "4.4.4" #define MODULES_ORDER_ROOTFS TESTSUITE_ROOTFS "test-depmod/modules-order-compressed" #define MODULES_ORDER_LIB_MODULES MODULES_ORDER_ROOTFS MODULE_DIRECTORY "/" MODULES_UNAME -static noreturn int depmod_modules_order_for_compressed(void) +static int depmod_modules_order_for_compressed(void) { - EXEC_TOOL(depmod); - exit(EXIT_FAILURE); + return EXEC_TOOL(depmod); } DEFINE_TEST(depmod_modules_order_for_compressed, .description = "check if depmod let aliases in right order when using compressed modules", @@ -40,10 +39,9 @@ DEFINE_TEST(depmod_modules_order_for_compressed, MODULES_OUTDIR_ROOTFS "/outdir" MODULE_DIRECTORY "/" MODULES_UNAME #define MODULES_OUTDIR_LIB_MODULES_INPUT \ MODULES_OUTDIR_ROOTFS MODULE_DIRECTORY "/" MODULES_UNAME -static noreturn int depmod_modules_outdir(void) +static int depmod_modules_outdir(void) { - EXEC_TOOL(depmod, "--outdir", "/outdir/"); - exit(EXIT_FAILURE); + return EXEC_TOOL(depmod, "--outdir", "/outdir/"); } DEFINE_TEST(depmod_modules_outdir, .description = "check if depmod honours the outdir option", @@ -64,10 +62,9 @@ DEFINE_TEST(depmod_modules_outdir, #define SEARCH_ORDER_SIMPLE_ROOTFS TESTSUITE_ROOTFS "test-depmod/search-order-simple" #define SEARCH_ORDER_SIMPLE_LIB_MODULES \ SEARCH_ORDER_SIMPLE_ROOTFS MODULE_DIRECTORY "/" MODULES_UNAME -static noreturn int depmod_search_order_simple(void) +static int depmod_search_order_simple(void) { - EXEC_TOOL(depmod); - exit(EXIT_FAILURE); + return EXEC_TOOL(depmod); } DEFINE_TEST(depmod_search_order_simple, .description = "check if depmod honor search order in config", @@ -86,15 +83,13 @@ DEFINE_TEST(depmod_search_order_simple, #define ANOTHER_MODDIR "/foobar" #define RELATIVE_MODDIR "foobar2" #define MODULES_ANOTHER_MODDIR_ROOTFS TESTSUITE_ROOTFS "test-depmod/another-moddir" -static noreturn int depmod_another_moddir(void) +static int depmod_another_moddir(void) { - EXEC_TOOL(depmod, "-m", ANOTHER_MODDIR); - exit(EXIT_FAILURE); + return EXEC_TOOL(depmod, "-m", ANOTHER_MODDIR); } -static noreturn int depmod_another_moddir_relative(void) +static int depmod_another_moddir_relative(void) { - EXEC_TOOL(depmod, "-m", RELATIVE_MODDIR); - exit(EXIT_FAILURE); + return EXEC_TOOL(depmod, "-m", RELATIVE_MODDIR); } DEFINE_TEST(depmod_another_moddir, .description = "check depmod -m flag", @@ -127,10 +122,9 @@ DEFINE_TEST(depmod_another_moddir_relative, TESTSUITE_ROOTFS "test-depmod/search-order-same-prefix" #define SEARCH_ORDER_SAME_PREFIX_LIB_MODULES \ SEARCH_ORDER_SAME_PREFIX_ROOTFS MODULE_DIRECTORY "/" MODULES_UNAME -static noreturn int depmod_search_order_same_prefix(void) +static int depmod_search_order_same_prefix(void) { - EXEC_TOOL(depmod); - exit(EXIT_FAILURE); + return EXEC_TOOL(depmod); } DEFINE_TEST(depmod_search_order_same_prefix, .description = "check if depmod honor search order in config with same prefix", @@ -147,10 +141,9 @@ DEFINE_TEST(depmod_search_order_same_prefix, }); #define DETECT_LOOP_ROOTFS TESTSUITE_ROOTFS "test-depmod/detect-loop" -static noreturn int depmod_detect_loop(void) +static int depmod_detect_loop(void) { - EXEC_TOOL(depmod); - exit(EXIT_FAILURE); + return EXEC_TOOL(depmod); } DEFINE_TEST(depmod_detect_loop, .description = "check if depmod detects module loops correctly", @@ -167,10 +160,9 @@ DEFINE_TEST(depmod_detect_loop, TESTSUITE_ROOTFS "test-depmod/search-order-external-first" #define SEARCH_ORDER_EXTERNAL_FIRST_LIB_MODULES \ SEARCH_ORDER_EXTERNAL_FIRST_ROOTFS MODULE_DIRECTORY "/" MODULES_UNAME -static noreturn int depmod_search_order_external_first(void) +static int depmod_search_order_external_first(void) { - EXEC_TOOL(depmod); - exit(EXIT_FAILURE); + return EXEC_TOOL(depmod); } DEFINE_TEST(depmod_search_order_external_first, .description = "check if depmod honor external keyword with higher priority", @@ -190,10 +182,9 @@ DEFINE_TEST(depmod_search_order_external_first, TESTSUITE_ROOTFS "test-depmod/search-order-external-last" #define SEARCH_ORDER_EXTERNAL_LAST_LIB_MODULES \ SEARCH_ORDER_EXTERNAL_LAST_ROOTFS MODULE_DIRECTORY "/" MODULES_UNAME -static noreturn int depmod_search_order_external_last(void) +static int depmod_search_order_external_last(void) { - EXEC_TOOL(depmod); - exit(EXIT_FAILURE); + return EXEC_TOOL(depmod); } DEFINE_TEST(depmod_search_order_external_last, .description = "check if depmod honor external keyword with lower priority", @@ -212,10 +203,9 @@ DEFINE_TEST(depmod_search_order_external_last, #define SEARCH_ORDER_OVERRIDE_ROOTFS TESTSUITE_ROOTFS "test-depmod/search-order-override" #define SEARCH_ORDER_OVERRIDE_LIB_MODULES \ SEARCH_ORDER_OVERRIDE_ROOTFS MODULE_DIRECTORY "/" MODULES_UNAME -static noreturn int depmod_search_order_override(void) +static int depmod_search_order_override(void) { - EXEC_TOOL(depmod); - exit(EXIT_FAILURE); + return EXEC_TOOL(depmod); } DEFINE_TEST(depmod_search_order_override, .description = "check if depmod honor override keyword", @@ -233,10 +223,9 @@ DEFINE_TEST(depmod_search_order_override, #define CHECK_WEAKDEP_ROOTFS TESTSUITE_ROOTFS "test-depmod/check-weakdep" #define CHECK_WEAKDEP_LIB_MODULES CHECK_WEAKDEP_ROOTFS MODULE_DIRECTORY "/" MODULES_UNAME -static noreturn int depmod_check_weakdep(void) +static int depmod_check_weakdep(void) { - EXEC_TOOL(depmod); - exit(EXIT_FAILURE); + return EXEC_TOOL(depmod); } DEFINE_TEST(depmod_check_weakdep, .description = "check weakdep output", diff --git a/testsuite/test-modinfo.c b/testsuite/test-modinfo.c index 9bb9a485..dc6644ba 100644 --- a/testsuite/test-modinfo.c +++ b/testsuite/test-modinfo.c @@ -12,12 +12,11 @@ #include "testsuite.h" -#define DEFINE_MODINFO_TEST(_field, _flavor, ...) \ - static noreturn int test_modinfo_##_field(void) \ - { \ - EXEC_TOOL(modinfo, "-F", #_field, __VA_ARGS__); \ - exit(EXIT_FAILURE); \ - } \ +#define DEFINE_MODINFO_TEST(_field, _flavor, ...) \ + static int test_modinfo_##_field(void) \ + { \ + return EXEC_TOOL(modinfo, "-F", #_field, __VA_ARGS__); \ + } \ DEFINE_TEST(test_modinfo_##_field, \ .description = "check " #_field " output of modinfo for different architectures", \ .config = { \ @@ -53,10 +52,9 @@ DEFINE_MODINFO_SIGN_TEST(sig_key); DEFINE_MODINFO_SIGN_TEST(sig_hashalgo); #if 0 -static noreturn int test_modinfo_signature(void) +static int test_modinfo_signature(void) { - EXEC_TOOL(modinfo); - exit(EXIT_FAILURE); + return EXEC_TOOL(modinfo); } DEFINE_TEST(test_modinfo_signature, .description = "check signatures are correct for modinfo is correct for i686, ppc64, s390x and x86_64", @@ -68,10 +66,9 @@ DEFINE_TEST(test_modinfo_signature, }); #endif -static noreturn int test_modinfo_external(void) +static int test_modinfo_external(void) { - EXEC_TOOL(modinfo, "-F", "filename", "mod-simple"); - exit(EXIT_FAILURE); + return EXEC_TOOL(modinfo, "-F", "filename", "mod-simple"); } DEFINE_TEST(test_modinfo_external, .description = "check if modinfo finds external module", @@ -83,10 +80,9 @@ DEFINE_TEST(test_modinfo_external, .out = TESTSUITE_ROOTFS "test-modinfo/correct-external.txt", }); -static noreturn int test_modinfo_builtin(void) +static int test_modinfo_builtin(void) { - EXEC_TOOL(modinfo, "intel_uncore"); - exit(EXIT_FAILURE); + return EXEC_TOOL(modinfo, "intel_uncore"); } DEFINE_TEST(test_modinfo_builtin, .description = "check if modinfo finds builtin module", diff --git a/testsuite/test-modprobe.c b/testsuite/test-modprobe.c index 5d7764a8..92b1dc50 100644 --- a/testsuite/test-modprobe.c +++ b/testsuite/test-modprobe.c @@ -13,10 +13,9 @@ #include "testsuite.h" -static noreturn int modprobe_show_depends(void) +static int modprobe_show_depends(void) { - EXEC_TOOL(modprobe, "--show-depends", "mod-loop-a"); - exit(EXIT_FAILURE); + return EXEC_TOOL(modprobe, "--show-depends", "mod-loop-a"); } DEFINE_TEST(modprobe_show_depends, .description = "check if output for modprobe --show-depends is correct for loaded modules", @@ -28,10 +27,9 @@ DEFINE_TEST(modprobe_show_depends, .out = TESTSUITE_ROOTFS "test-modprobe/show-depends/correct.txt", }); -static noreturn int modprobe_show_depends2(void) +static int modprobe_show_depends2(void) { - EXEC_TOOL(modprobe, "--show-depends", "mod-simple"); - exit(EXIT_FAILURE); + return EXEC_TOOL(modprobe, "--show-depends", "mod-simple"); } DEFINE_TEST(modprobe_show_depends2, .description = "check if output for modprobe --show-depends is correct", @@ -51,10 +49,9 @@ DEFINE_TEST_WITH_FUNC(modprobe_show_depends_no_load, modprobe_show_depends2, .modules_loaded = "", ); -static noreturn int modprobe_show_alias_to_none(void) +static int modprobe_show_alias_to_none(void) { - EXEC_TOOL(modprobe, "--show-depends", "--ignore-install", "mod-simple"); - exit(EXIT_FAILURE); + return EXEC_TOOL(modprobe, "--show-depends", "--ignore-install", "mod-simple"); } DEFINE_TEST(modprobe_show_alias_to_none, .description = "check if modprobe --show-depends doesn't explode with an alias to nothing", @@ -68,10 +65,9 @@ DEFINE_TEST(modprobe_show_alias_to_none, .modules_loaded = "", ); -static noreturn int modprobe_show_exports(void) +static int modprobe_show_exports(void) { - EXEC_TOOL(modprobe, "--show-exports", "/mod-loop-a.ko"); - exit(EXIT_FAILURE); + return EXEC_TOOL(modprobe, "--show-exports", "/mod-loop-a.ko"); } DEFINE_TEST(modprobe_show_exports, .description = "check if modprobe --show-depends doesn't explode with an alias to nothing", @@ -83,10 +79,9 @@ DEFINE_TEST(modprobe_show_exports, .regex = true, }); -static noreturn int modprobe_show_exports_module(void) +static int modprobe_show_exports_module(void) { - EXEC_TOOL(modprobe, "--show-exports", "mod-loop-b"); - exit(EXIT_FAILURE); + return EXEC_TOOL(modprobe, "--show-exports", "mod-loop-b"); } DEFINE_TEST(modprobe_show_exports_module, .description = "check if modprobe --show-depends also works with module names", @@ -99,10 +94,9 @@ DEFINE_TEST(modprobe_show_exports_module, .regex = true, }); -static noreturn int modprobe_builtin(void) +static int modprobe_builtin(void) { - EXEC_TOOL(modprobe, "unix"); - exit(EXIT_FAILURE); + return EXEC_TOOL(modprobe, "unix"); } DEFINE_TEST(modprobe_builtin, .description = "check if modprobe return 0 for builtin", .config = { @@ -110,10 +104,9 @@ DEFINE_TEST(modprobe_builtin, .description = "check if modprobe return 0 for bui [TC_ROOTFS] = TESTSUITE_ROOTFS "test-modprobe/builtin", }); -static noreturn int modprobe_builtin_lookup_only(void) +static int modprobe_builtin_lookup_only(void) { - EXEC_TOOL(modprobe, "-R", "unix"); - exit(EXIT_FAILURE); + return EXEC_TOOL(modprobe, "-R", "unix"); } DEFINE_TEST(modprobe_builtin_lookup_only, .description = "check if modprobe -R correctly returns the builtin module", @@ -125,10 +118,9 @@ DEFINE_TEST(modprobe_builtin_lookup_only, .out = TESTSUITE_ROOTFS "test-modprobe/builtin/correct.txt", }); -static noreturn int modprobe_softdep_loop(void) +static int modprobe_softdep_loop(void) { - EXEC_TOOL(modprobe, "mod-loop-b"); - exit(EXIT_FAILURE); + return EXEC_TOOL(modprobe, "mod-loop-b"); } DEFINE_TEST(modprobe_softdep_loop, .description = "check if modprobe breaks softdep loop", @@ -140,10 +132,9 @@ DEFINE_TEST(modprobe_softdep_loop, .modules_loaded = "mod-loop-a,mod-loop-b", ); -static noreturn int modprobe_weakdep_loop(void) +static int modprobe_weakdep_loop(void) { - EXEC_TOOL(modprobe, "mod-loop-b"); - exit(EXIT_FAILURE); + return EXEC_TOOL(modprobe, "mod-loop-b"); } DEFINE_TEST(modprobe_weakdep_loop, .description = "check if modprobe breaks weakdep loop", @@ -156,10 +147,9 @@ DEFINE_TEST(modprobe_weakdep_loop, .modules_not_loaded = "mod-loop-a,mod-simple-c", ); -static noreturn int modprobe_install_cmd_loop(void) +static int modprobe_install_cmd_loop(void) { - EXEC_TOOL(modprobe, "mod-loop-a"); - exit(EXIT_FAILURE); + return EXEC_TOOL(modprobe, "mod-loop-a"); } DEFINE_TEST(modprobe_install_cmd_loop, .description = "check if modprobe breaks install-commands loop", @@ -175,10 +165,9 @@ DEFINE_TEST(modprobe_install_cmd_loop, .modules_loaded = "mod-loop-b,mod-loop-a", ); -static noreturn int modprobe_param_kcmdline_show_deps(void) +static int modprobe_param_kcmdline_show_deps(void) { - EXEC_TOOL(modprobe, "--show-depends", "mod-simple"); - exit(EXIT_FAILURE); + return EXEC_TOOL(modprobe, "--show-depends", "mod-simple"); } DEFINE_TEST(modprobe_param_kcmdline_show_deps, .description = "check if params from kcmdline are passed to (f)init_module call", @@ -190,10 +179,9 @@ DEFINE_TEST(modprobe_param_kcmdline_show_deps, .out = TESTSUITE_ROOTFS "test-modprobe/module-param-kcmdline/correct.txt", }); -static noreturn int modprobe_param_kcmdline(void) +static int modprobe_param_kcmdline(void) { - EXEC_TOOL(modprobe, "-c"); - exit(EXIT_FAILURE); + return EXEC_TOOL(modprobe, "-c"); } DEFINE_TEST_WITH_FUNC(modprobe_param_kcmdline2, modprobe_param_kcmdline, .description = "check if params with no value are parsed correctly from kcmdline", @@ -277,10 +265,9 @@ DEFINE_TEST_WITH_FUNC(modprobe_param_kcmdline9, modprobe_param_kcmdline, .out = TESTSUITE_ROOTFS "test-modprobe/module-param-kcmdline9/correct.txt", }); -static noreturn int modprobe_force(void) +static int modprobe_force(void) { - EXEC_TOOL(modprobe, "--force", "mod-simple"); - exit(EXIT_FAILURE); + return EXEC_TOOL(modprobe, "--force", "mod-simple"); } DEFINE_TEST(modprobe_force, .description = "check modprobe --force", @@ -292,10 +279,9 @@ DEFINE_TEST(modprobe_force, .modules_loaded = "mod-simple", ); -static noreturn int modprobe_force_modversion(void) +static int modprobe_force_modversion(void) { - EXEC_TOOL(modprobe, "--force-modversion", "mod-simple"); - exit(EXIT_FAILURE); + return EXEC_TOOL(modprobe, "--force-modversion", "mod-simple"); } DEFINE_TEST(modprobe_force_modversion, .description = "check modprobe --force-modversion", @@ -307,10 +293,9 @@ DEFINE_TEST(modprobe_force_modversion, .modules_loaded = "mod-simple", ); -static noreturn int modprobe_force_vermagic(void) +static int modprobe_force_vermagic(void) { - EXEC_TOOL(modprobe, "--force-vermagic", "mod-simple"); - exit(EXIT_FAILURE); + return EXEC_TOOL(modprobe, "--force-vermagic", "mod-simple"); } DEFINE_TEST(modprobe_force_vermagic, .description = "check modprobe --force-vermagic", @@ -322,10 +307,9 @@ DEFINE_TEST(modprobe_force_vermagic, .modules_loaded = "mod-simple", ); -static noreturn int modprobe_oldkernel(void) +static int modprobe_oldkernel(void) { - EXEC_TOOL(modprobe, "mod-simple"); - exit(EXIT_FAILURE); + return EXEC_TOOL(modprobe, "mod-simple"); } DEFINE_TEST(modprobe_oldkernel, .description = "check modprobe with kernel without finit_module()", @@ -337,10 +321,9 @@ DEFINE_TEST(modprobe_oldkernel, .modules_loaded = "mod-simple", ); -static noreturn int modprobe_oldkernel_force(void) +static int modprobe_oldkernel_force(void) { - EXEC_TOOL(modprobe, "--force", "mod-simple"); - exit(EXIT_FAILURE); + return EXEC_TOOL(modprobe, "--force", "mod-simple"); } DEFINE_TEST(modprobe_oldkernel_force, .description = "check modprobe --force with kernel without finit_module()", @@ -352,10 +335,9 @@ DEFINE_TEST(modprobe_oldkernel_force, .modules_loaded = "mod-simple", ); -static noreturn int modprobe_oldkernel_force_modversion(void) +static int modprobe_oldkernel_force_modversion(void) { - EXEC_TOOL(modprobe, "--force-modversion", "mod-simple"); - exit(EXIT_FAILURE); + return EXEC_TOOL(modprobe, "--force-modversion", "mod-simple"); } DEFINE_TEST(modprobe_oldkernel_force_modversion, .description = "check modprobe --force-modversion with kernel without finit_module()", @@ -367,10 +349,9 @@ DEFINE_TEST(modprobe_oldkernel_force_modversion, .modules_loaded = "mod-simple", ); -static noreturn int modprobe_oldkernel_force_vermagic(void) +static int modprobe_oldkernel_force_vermagic(void) { - EXEC_TOOL(modprobe, "--force-vermagic", "mod-simple"); - exit(EXIT_FAILURE); + return EXEC_TOOL(modprobe, "--force-vermagic", "mod-simple"); } DEFINE_TEST(modprobe_oldkernel_force_vermagic, .description = "check modprobe --force-vermagic with kernel without finit_module()", @@ -382,10 +363,9 @@ DEFINE_TEST(modprobe_oldkernel_force_vermagic, .modules_loaded = "mod-simple", ); -static noreturn int modprobe_external(void) +static int modprobe_external(void) { - EXEC_TOOL(modprobe, "mod-simple"); - exit(EXIT_FAILURE); + return EXEC_TOOL(modprobe, "mod-simple"); } DEFINE_TEST(modprobe_external, .description = "check modprobe able to load external module", @@ -397,10 +377,9 @@ DEFINE_TEST(modprobe_external, .modules_loaded = "mod-simple", ); -static noreturn int modprobe_module_from_abspath(void) +static int modprobe_module_from_abspath(void) { - EXEC_TOOL(modprobe, "/home/foo/mod-simple.ko"); - exit(EXIT_FAILURE); + return EXEC_TOOL(modprobe, "/home/foo/mod-simple.ko"); } DEFINE_TEST(modprobe_module_from_abspath, .description = "check modprobe able to load module given as an absolute path", @@ -412,15 +391,13 @@ DEFINE_TEST(modprobe_module_from_abspath, .modules_loaded = "mod-simple", ); -static noreturn int modprobe_module_from_relpath(void) +static int modprobe_module_from_relpath(void) { if (chdir("/home/foo") != 0) { perror("failed to change into /home/foo"); - exit(EXIT_FAILURE); } - EXEC_TOOL(modprobe, "./mod-simple.ko"); - exit(EXIT_FAILURE); + return EXEC_TOOL(modprobe, "./mod-simple.ko"); } DEFINE_TEST(modprobe_module_from_relpath, .description = "check modprobe able to load module given as a relative path", diff --git a/testsuite/test-weakdep.c b/testsuite/test-weakdep.c index c7c034d5..26a9624b 100644 --- a/testsuite/test-weakdep.c +++ b/testsuite/test-weakdep.c @@ -79,10 +79,9 @@ DEFINE_TEST(test_weakdep, .out = TESTSUITE_ROOTFS "test-weakdep/correct-weakdep.txt", }); -static noreturn int modprobe_config(void) +static int modprobe_config(void) { - EXEC_TOOL(modprobe, "-c"); - exit(EXIT_FAILURE); + return EXEC_TOOL(modprobe, "-c"); } DEFINE_TEST(modprobe_config, .description = "check modprobe config parsing with weakdep",