From: Jakub Ślepecki Date: Fri, 20 Jun 2025 15:59:01 +0000 (+0200) Subject: testsuite: test-modprobe: modprobe with blacklist X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f997c1cc9c48a589b08079e06fff34be3db396e7;p=thirdparty%2Fkmod.git testsuite: test-modprobe: modprobe with blacklist Until now blacklist command was only covered by test-blacklist at libkmod interface level. A regular user will usually interact with it via modprobe(8). This commit adds tests for modprobe, alias filtering, and -b option. It is also intended as an example of -b usage. Co-authored-by: Dawid Osuchowski Signed-off-by: Dawid Osuchowski Signed-off-by: Jakub Ślepecki Link: https://github.com/kmod-project/kmod/pull/312 Signed-off-by: Lucas De Marchi --- diff --git a/scripts/setup-rootfs.sh b/scripts/setup-rootfs.sh index f0d232ab..07e3369c 100755 --- a/scripts/setup-rootfs.sh +++ b/scripts/setup-rootfs.sh @@ -103,6 +103,14 @@ map=( ["test-modprobe/external/lib/modules/external/"]="mod-simple.ko" ["test-modprobe/module-from-abspath/home/foo/"]="mod-simple.ko" ["test-modprobe/module-from-relpath/home/foo/"]="mod-simple.ko" + ["test-modprobe/blacklist$MODULE_DIRECTORY/4.4.4/kernel/"]="mod-simple.ko" + ["test-modprobe/blacklist-dep$MODULE_DIRECTORY/4.4.4/kernel/mod-foo-a.ko"]="mod-foo-a.ko" + ["test-modprobe/blacklist-dep$MODULE_DIRECTORY/4.4.4/kernel/mod-foo-b.ko"]="mod-foo-b.ko" + ["test-modprobe/blacklist-dep$MODULE_DIRECTORY/4.4.4/kernel/mod-foo-c.ko"]="mod-foo-c.ko" + ["test-modprobe/blacklist-dep$MODULE_DIRECTORY/4.4.4/kernel/mod-foo.ko"]="mod-foo.ko" + ["test-modprobe/blacklist-loaded$MODULE_DIRECTORY/4.4.4/kernel/"]="mod-simple.ko" + ["test-modprobe/blacklist-softdep$MODULE_DIRECTORY/4.4.4/kernel/mod-foo-a.ko"]="mod-foo-a.ko" + ["test-modprobe/blacklist-softdep$MODULE_DIRECTORY/4.4.4/kernel/mod-simple.ko"]="mod-simple.ko" ["test-depmod/modules-order-compressed$MODULE_DIRECTORY/4.4.4/kernel/drivers/block/cciss.ko"]="mod-fake-cciss.ko" ["test-depmod/modules-order-compressed$MODULE_DIRECTORY/4.4.4/kernel/drivers/scsi/hpsa.ko"]="mod-fake-hpsa.ko" ["test-depmod/modules-order-compressed$MODULE_DIRECTORY/4.4.4/kernel/drivers/scsi/scsi_mod.ko"]="mod-fake-scsi-mod.ko" diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist-dep/etc/modprobe.d/blacklist.conf b/testsuite/rootfs-pristine/test-modprobe/blacklist-dep/etc/modprobe.d/blacklist.conf new file mode 100644 index 00000000..6c8daa5a --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/blacklist-dep/etc/modprobe.d/blacklist.conf @@ -0,0 +1 @@ +blacklist mod-foo-b diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist-dep/lib/modules/4.4.4/modules.alias b/testsuite/rootfs-pristine/test-modprobe/blacklist-dep/lib/modules/4.4.4/modules.alias new file mode 100644 index 00000000..ba76e181 --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/blacklist-dep/lib/modules/4.4.4/modules.alias @@ -0,0 +1 @@ +# Aliases extracted from modules themselves. diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist-dep/lib/modules/4.4.4/modules.alias.bin b/testsuite/rootfs-pristine/test-modprobe/blacklist-dep/lib/modules/4.4.4/modules.alias.bin new file mode 100644 index 00000000..7075435f Binary files /dev/null and b/testsuite/rootfs-pristine/test-modprobe/blacklist-dep/lib/modules/4.4.4/modules.alias.bin differ diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist-dep/lib/modules/4.4.4/modules.builtin.bin b/testsuite/rootfs-pristine/test-modprobe/blacklist-dep/lib/modules/4.4.4/modules.builtin.bin new file mode 100644 index 00000000..e69de29b diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist-dep/lib/modules/4.4.4/modules.dep b/testsuite/rootfs-pristine/test-modprobe/blacklist-dep/lib/modules/4.4.4/modules.dep new file mode 100644 index 00000000..eac8ce34 --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/blacklist-dep/lib/modules/4.4.4/modules.dep @@ -0,0 +1,4 @@ +kernel/mod-foo-b.ko: +kernel/mod-foo-c.ko: +kernel/mod-foo-a.ko: +kernel/mod-foo.ko: kernel/mod-foo-b.ko kernel/mod-foo-a.ko kernel/mod-foo-c.ko diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist-dep/lib/modules/4.4.4/modules.dep.bin b/testsuite/rootfs-pristine/test-modprobe/blacklist-dep/lib/modules/4.4.4/modules.dep.bin new file mode 100644 index 00000000..dce33e56 Binary files /dev/null and b/testsuite/rootfs-pristine/test-modprobe/blacklist-dep/lib/modules/4.4.4/modules.dep.bin differ diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist-dep/lib/modules/4.4.4/modules.devname b/testsuite/rootfs-pristine/test-modprobe/blacklist-dep/lib/modules/4.4.4/modules.devname new file mode 100644 index 00000000..58f6d6d6 --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/blacklist-dep/lib/modules/4.4.4/modules.devname @@ -0,0 +1 @@ +# Device nodes to trigger on-demand module loading. diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist-dep/lib/modules/4.4.4/modules.softdep b/testsuite/rootfs-pristine/test-modprobe/blacklist-dep/lib/modules/4.4.4/modules.softdep new file mode 100644 index 00000000..5554ccca --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/blacklist-dep/lib/modules/4.4.4/modules.softdep @@ -0,0 +1 @@ +# Soft dependencies extracted from modules themselves. diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist-dep/lib/modules/4.4.4/modules.symbols b/testsuite/rootfs-pristine/test-modprobe/blacklist-dep/lib/modules/4.4.4/modules.symbols new file mode 100644 index 00000000..ddb6ab6b --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/blacklist-dep/lib/modules/4.4.4/modules.symbols @@ -0,0 +1,4 @@ +# Aliases for symbols, used by symbol_request(). +alias symbol:print_fooA mod_foo_a +alias symbol:print_fooC mod_foo_c +alias symbol:print_fooB mod_foo_b diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist-dep/lib/modules/4.4.4/modules.symbols.bin b/testsuite/rootfs-pristine/test-modprobe/blacklist-dep/lib/modules/4.4.4/modules.symbols.bin new file mode 100644 index 00000000..94e7c577 Binary files /dev/null and b/testsuite/rootfs-pristine/test-modprobe/blacklist-dep/lib/modules/4.4.4/modules.symbols.bin differ diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist-loaded/etc/modprobe.d/blacklist.conf b/testsuite/rootfs-pristine/test-modprobe/blacklist-loaded/etc/modprobe.d/blacklist.conf new file mode 100644 index 00000000..9d1ecaba --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/blacklist-loaded/etc/modprobe.d/blacklist.conf @@ -0,0 +1,2 @@ +alias simple.* mod-simple +blacklist mod-simple diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist-loaded/lib/modules/4.4.4/modules.alias b/testsuite/rootfs-pristine/test-modprobe/blacklist-loaded/lib/modules/4.4.4/modules.alias new file mode 100644 index 00000000..ba76e181 --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/blacklist-loaded/lib/modules/4.4.4/modules.alias @@ -0,0 +1 @@ +# Aliases extracted from modules themselves. diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist-loaded/lib/modules/4.4.4/modules.alias.bin b/testsuite/rootfs-pristine/test-modprobe/blacklist-loaded/lib/modules/4.4.4/modules.alias.bin new file mode 100644 index 00000000..7075435f Binary files /dev/null and b/testsuite/rootfs-pristine/test-modprobe/blacklist-loaded/lib/modules/4.4.4/modules.alias.bin differ diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist-loaded/lib/modules/4.4.4/modules.builtin.bin b/testsuite/rootfs-pristine/test-modprobe/blacklist-loaded/lib/modules/4.4.4/modules.builtin.bin new file mode 100644 index 00000000..e69de29b diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist-loaded/lib/modules/4.4.4/modules.dep b/testsuite/rootfs-pristine/test-modprobe/blacklist-loaded/lib/modules/4.4.4/modules.dep new file mode 100644 index 00000000..54766537 --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/blacklist-loaded/lib/modules/4.4.4/modules.dep @@ -0,0 +1 @@ +kernel/mod-simple.ko: diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist-loaded/lib/modules/4.4.4/modules.dep.bin b/testsuite/rootfs-pristine/test-modprobe/blacklist-loaded/lib/modules/4.4.4/modules.dep.bin new file mode 100644 index 00000000..b09a8543 Binary files /dev/null and b/testsuite/rootfs-pristine/test-modprobe/blacklist-loaded/lib/modules/4.4.4/modules.dep.bin differ diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist-loaded/lib/modules/4.4.4/modules.devname b/testsuite/rootfs-pristine/test-modprobe/blacklist-loaded/lib/modules/4.4.4/modules.devname new file mode 100644 index 00000000..58f6d6d6 --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/blacklist-loaded/lib/modules/4.4.4/modules.devname @@ -0,0 +1 @@ +# Device nodes to trigger on-demand module loading. diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist-loaded/lib/modules/4.4.4/modules.softdep b/testsuite/rootfs-pristine/test-modprobe/blacklist-loaded/lib/modules/4.4.4/modules.softdep new file mode 100644 index 00000000..5554ccca --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/blacklist-loaded/lib/modules/4.4.4/modules.softdep @@ -0,0 +1 @@ +# Soft dependencies extracted from modules themselves. diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist-loaded/lib/modules/4.4.4/modules.symbols b/testsuite/rootfs-pristine/test-modprobe/blacklist-loaded/lib/modules/4.4.4/modules.symbols new file mode 100644 index 00000000..618c345f --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/blacklist-loaded/lib/modules/4.4.4/modules.symbols @@ -0,0 +1 @@ +# Aliases for symbols, used by symbol_request(). diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist-loaded/lib/modules/4.4.4/modules.symbols.bin b/testsuite/rootfs-pristine/test-modprobe/blacklist-loaded/lib/modules/4.4.4/modules.symbols.bin new file mode 100644 index 00000000..7075435f Binary files /dev/null and b/testsuite/rootfs-pristine/test-modprobe/blacklist-loaded/lib/modules/4.4.4/modules.symbols.bin differ diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist-softdep/etc/modprobe.d/blacklist.conf b/testsuite/rootfs-pristine/test-modprobe/blacklist-softdep/etc/modprobe.d/blacklist.conf new file mode 100644 index 00000000..760a761a --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/blacklist-softdep/etc/modprobe.d/blacklist.conf @@ -0,0 +1,2 @@ +softdep mod-simple pre: mod-foo-a +blacklist mod-foo-a diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist-softdep/lib/modules/4.4.4/modules.alias b/testsuite/rootfs-pristine/test-modprobe/blacklist-softdep/lib/modules/4.4.4/modules.alias new file mode 100644 index 00000000..ba76e181 --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/blacklist-softdep/lib/modules/4.4.4/modules.alias @@ -0,0 +1 @@ +# Aliases extracted from modules themselves. diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist-softdep/lib/modules/4.4.4/modules.alias.bin b/testsuite/rootfs-pristine/test-modprobe/blacklist-softdep/lib/modules/4.4.4/modules.alias.bin new file mode 100644 index 00000000..7075435f Binary files /dev/null and b/testsuite/rootfs-pristine/test-modprobe/blacklist-softdep/lib/modules/4.4.4/modules.alias.bin differ diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist-softdep/lib/modules/4.4.4/modules.builtin.bin b/testsuite/rootfs-pristine/test-modprobe/blacklist-softdep/lib/modules/4.4.4/modules.builtin.bin new file mode 100644 index 00000000..e69de29b diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist-softdep/lib/modules/4.4.4/modules.dep b/testsuite/rootfs-pristine/test-modprobe/blacklist-softdep/lib/modules/4.4.4/modules.dep new file mode 100644 index 00000000..3e721e15 --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/blacklist-softdep/lib/modules/4.4.4/modules.dep @@ -0,0 +1,2 @@ +kernel/mod-foo-a.ko: +kernel/mod-simple.ko: diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist-softdep/lib/modules/4.4.4/modules.dep.bin b/testsuite/rootfs-pristine/test-modprobe/blacklist-softdep/lib/modules/4.4.4/modules.dep.bin new file mode 100644 index 00000000..8a97d83c Binary files /dev/null and b/testsuite/rootfs-pristine/test-modprobe/blacklist-softdep/lib/modules/4.4.4/modules.dep.bin differ diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist-softdep/lib/modules/4.4.4/modules.devname b/testsuite/rootfs-pristine/test-modprobe/blacklist-softdep/lib/modules/4.4.4/modules.devname new file mode 100644 index 00000000..58f6d6d6 --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/blacklist-softdep/lib/modules/4.4.4/modules.devname @@ -0,0 +1 @@ +# Device nodes to trigger on-demand module loading. diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist-softdep/lib/modules/4.4.4/modules.softdep b/testsuite/rootfs-pristine/test-modprobe/blacklist-softdep/lib/modules/4.4.4/modules.softdep new file mode 100644 index 00000000..5554ccca --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/blacklist-softdep/lib/modules/4.4.4/modules.softdep @@ -0,0 +1 @@ +# Soft dependencies extracted from modules themselves. diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist-softdep/lib/modules/4.4.4/modules.symbols b/testsuite/rootfs-pristine/test-modprobe/blacklist-softdep/lib/modules/4.4.4/modules.symbols new file mode 100644 index 00000000..8fdc29ac --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/blacklist-softdep/lib/modules/4.4.4/modules.symbols @@ -0,0 +1,2 @@ +# Aliases for symbols, used by symbol_request(). +alias symbol:print_fooA mod_foo_a diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist-softdep/lib/modules/4.4.4/modules.symbols.bin b/testsuite/rootfs-pristine/test-modprobe/blacklist-softdep/lib/modules/4.4.4/modules.symbols.bin new file mode 100644 index 00000000..fa07e2c4 Binary files /dev/null and b/testsuite/rootfs-pristine/test-modprobe/blacklist-softdep/lib/modules/4.4.4/modules.symbols.bin differ diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist/etc/modprobe.d/blacklist.conf b/testsuite/rootfs-pristine/test-modprobe/blacklist/etc/modprobe.d/blacklist.conf new file mode 100644 index 00000000..9d1ecaba --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/blacklist/etc/modprobe.d/blacklist.conf @@ -0,0 +1,2 @@ +alias simple.* mod-simple +blacklist mod-simple diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist/lib/modules/4.4.4/modules.alias b/testsuite/rootfs-pristine/test-modprobe/blacklist/lib/modules/4.4.4/modules.alias new file mode 100644 index 00000000..ba76e181 --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/blacklist/lib/modules/4.4.4/modules.alias @@ -0,0 +1 @@ +# Aliases extracted from modules themselves. diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist/lib/modules/4.4.4/modules.alias.bin b/testsuite/rootfs-pristine/test-modprobe/blacklist/lib/modules/4.4.4/modules.alias.bin new file mode 100644 index 00000000..7075435f Binary files /dev/null and b/testsuite/rootfs-pristine/test-modprobe/blacklist/lib/modules/4.4.4/modules.alias.bin differ diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist/lib/modules/4.4.4/modules.builtin.bin b/testsuite/rootfs-pristine/test-modprobe/blacklist/lib/modules/4.4.4/modules.builtin.bin new file mode 100644 index 00000000..e69de29b diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist/lib/modules/4.4.4/modules.dep b/testsuite/rootfs-pristine/test-modprobe/blacklist/lib/modules/4.4.4/modules.dep new file mode 100644 index 00000000..54766537 --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/blacklist/lib/modules/4.4.4/modules.dep @@ -0,0 +1 @@ +kernel/mod-simple.ko: diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist/lib/modules/4.4.4/modules.dep.bin b/testsuite/rootfs-pristine/test-modprobe/blacklist/lib/modules/4.4.4/modules.dep.bin new file mode 100644 index 00000000..b09a8543 Binary files /dev/null and b/testsuite/rootfs-pristine/test-modprobe/blacklist/lib/modules/4.4.4/modules.dep.bin differ diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist/lib/modules/4.4.4/modules.devname b/testsuite/rootfs-pristine/test-modprobe/blacklist/lib/modules/4.4.4/modules.devname new file mode 100644 index 00000000..58f6d6d6 --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/blacklist/lib/modules/4.4.4/modules.devname @@ -0,0 +1 @@ +# Device nodes to trigger on-demand module loading. diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist/lib/modules/4.4.4/modules.softdep b/testsuite/rootfs-pristine/test-modprobe/blacklist/lib/modules/4.4.4/modules.softdep new file mode 100644 index 00000000..5554ccca --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/blacklist/lib/modules/4.4.4/modules.softdep @@ -0,0 +1 @@ +# Soft dependencies extracted from modules themselves. diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist/lib/modules/4.4.4/modules.symbols b/testsuite/rootfs-pristine/test-modprobe/blacklist/lib/modules/4.4.4/modules.symbols new file mode 100644 index 00000000..618c345f --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/blacklist/lib/modules/4.4.4/modules.symbols @@ -0,0 +1 @@ +# Aliases for symbols, used by symbol_request(). diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist/lib/modules/4.4.4/modules.symbols.bin b/testsuite/rootfs-pristine/test-modprobe/blacklist/lib/modules/4.4.4/modules.symbols.bin new file mode 100644 index 00000000..7075435f Binary files /dev/null and b/testsuite/rootfs-pristine/test-modprobe/blacklist/lib/modules/4.4.4/modules.symbols.bin differ diff --git a/testsuite/rootfs-pristine/test-modprobe/blacklist/sys/module/.gitignore b/testsuite/rootfs-pristine/test-modprobe/blacklist/sys/module/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/testsuite/test-modprobe.c b/testsuite/test-modprobe.c index 6b62644a..7a3cd4f8 100644 --- a/testsuite/test-modprobe.c +++ b/testsuite/test-modprobe.c @@ -421,4 +421,76 @@ DEFINE_TEST(modprobe_module_from_relpath, .modules_loaded = "mod-simple", ); +static int modprobe_blacklisted_by_alias(void) +{ + return EXEC_TOOL(modprobe, "simple.abc"); +} +DEFINE_TEST(modprobe_blacklisted_by_alias, + .description = "check if modprobe alias does not load module with blacklist entry", + .config = { + [TC_UNAME_R] = "4.4.4", + [TC_ROOTFS] = TESTSUITE_ROOTFS "test-modprobe/blacklist", + [TC_INIT_MODULE_RETCODES] = "", + }, + .modules_loaded = "", + .modules_not_loaded = "mod-simple", + ); + +static int modprobe_blacklisted_by_name(void) +{ + return EXEC_TOOL(modprobe, "mod-simple"); +} +DEFINE_TEST(modprobe_blacklisted_by_name, + .description = "check if modprobe modulename loads module with blacklist entry", + .config = { + [TC_UNAME_R] = "4.4.4", + [TC_ROOTFS] = TESTSUITE_ROOTFS "test-modprobe/blacklist-loaded", + [TC_INIT_MODULE_RETCODES] = "", + }, + .modules_loaded = "mod-simple", + ); + +static int modprobe_blacklisted_by_name_filtered(void) +{ + return EXEC_TOOL(modprobe, "-b", "mod-simple"); +} +DEFINE_TEST(modprobe_blacklisted_by_name_filtered, + .description = "check if modprobe -b modulename does not load module with blacklist entry", + .config = { + [TC_UNAME_R] = "4.4.4", + [TC_ROOTFS] = TESTSUITE_ROOTFS "test-modprobe/blacklist", + [TC_INIT_MODULE_RETCODES] = "", + }, + .modules_loaded = "", + .modules_not_loaded = "mod-simple", + ); + +static int modprobe_blacklisted_dependency(void) +{ + return EXEC_TOOL(modprobe, "-b", "mod-foo"); +} +DEFINE_TEST(modprobe_blacklisted_dependency, + .description = "check if modprobe -b dependent ignores blacklist entry of dependency", + .config = { + [TC_UNAME_R] = "4.4.4", + [TC_ROOTFS] = TESTSUITE_ROOTFS "test-modprobe/blacklist-dep", + [TC_INIT_MODULE_RETCODES] = "", + }, + .modules_loaded = "mod-foo,mod-foo-a,mod-foo-b,mod_foo_c", + ); + +static int modprobe_blacklisted_softdep(void) +{ + return EXEC_TOOL(modprobe, "-b", "mod-simple"); +} +DEFINE_TEST(modprobe_blacklisted_softdep, + .description = "check if modprobe -b dependent ignores blacklist entry of softdep", + .config = { + [TC_UNAME_R] = "4.4.4", + [TC_ROOTFS] = TESTSUITE_ROOTFS "test-modprobe/blacklist-softdep", + [TC_INIT_MODULE_RETCODES] = "", + }, + .modules_loaded = "mod-simple,mod-foo-a", + ); + TESTSUITE_MAIN();