From 5278396d987f5da11ecc3d3e5750083ff1df4f89 Mon Sep 17 00:00:00 2001 From: Lucas De Marchi Date: Thu, 21 Mar 2013 02:24:07 -0300 Subject: [PATCH] testsuite: Add test to check if modprobe explodes on bogus config Put this one /etc/modprobe.d/bougs.conf: alias psmouse deaddood `modprobe --show-depends --quiet psmouse` explodes in an assertion (unless you have a module named deaddood). Some people and initrd's use "alias psmouse off" to disable a module instead of blacklisting it or adding a install rule. Add a test with expected_fail == true before fixing this. --- .../alias-to-none/correct-psmouse.txt | 0 .../alias-to-none/etc/modprobe.d/bogus.conf | 1 + .../4.4.4/kernel/drivers/input/mouse/psmouse.ko | Bin 0 -> 95649 bytes .../alias-to-none/lib/modules/4.4.4/modules.alias | 3 +++ .../lib/modules/4.4.4/modules.alias.bin | Bin 0 -> 101 bytes .../lib/modules/4.4.4/modules.builtin.bin | 0 .../alias-to-none/lib/modules/4.4.4/modules.dep | 1 + .../lib/modules/4.4.4/modules.dep.bin | Bin 0 -> 72 bytes .../lib/modules/4.4.4/modules.devname | 1 + .../lib/modules/4.4.4/modules.softdep | 2 ++ .../lib/modules/4.4.4/modules.symbols | 1 + .../lib/modules/4.4.4/modules.symbols.bin | Bin 0 -> 12 bytes .../test-modprobe/alias-to-none/proc/modules | 0 testsuite/test-modprobe.c | 27 +++++++++++++++++++++ 14 files changed, 36 insertions(+) create mode 100644 testsuite/rootfs-pristine/test-modprobe/alias-to-none/correct-psmouse.txt create mode 100644 testsuite/rootfs-pristine/test-modprobe/alias-to-none/etc/modprobe.d/bogus.conf create mode 100644 testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/kernel/drivers/input/mouse/psmouse.ko create mode 100644 testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.alias create mode 100644 testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.alias.bin create mode 100644 testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.builtin.bin create mode 100644 testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.dep create mode 100644 testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.dep.bin create mode 100644 testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.devname create mode 100644 testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.softdep create mode 100644 testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.symbols create mode 100644 testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.symbols.bin create mode 100644 testsuite/rootfs-pristine/test-modprobe/alias-to-none/proc/modules diff --git a/testsuite/rootfs-pristine/test-modprobe/alias-to-none/correct-psmouse.txt b/testsuite/rootfs-pristine/test-modprobe/alias-to-none/correct-psmouse.txt new file mode 100644 index 0000000..e69de29 diff --git a/testsuite/rootfs-pristine/test-modprobe/alias-to-none/etc/modprobe.d/bogus.conf b/testsuite/rootfs-pristine/test-modprobe/alias-to-none/etc/modprobe.d/bogus.conf new file mode 100644 index 0000000..14bed0b --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/alias-to-none/etc/modprobe.d/bogus.conf @@ -0,0 +1 @@ +alias psmouse deaddood diff --git a/testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/kernel/drivers/input/mouse/psmouse.ko b/testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/kernel/drivers/input/mouse/psmouse.ko new file mode 100644 index 0000000000000000000000000000000000000000..4eac2a3da3230435e7b21074f2a2681648cafc5e GIT binary patch literal 95649 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 U3_KuBFmQl@L9MuW0Rw{r0F!PNmjD0& literal 0 HcmV?d00001 diff --git a/testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.builtin.bin b/testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.builtin.bin new file mode 100644 index 0000000..e69de29 diff --git a/testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.dep b/testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.dep new file mode 100644 index 0000000..7ba5711 --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.dep @@ -0,0 +1 @@ +kernel/drivers/input/mouse/psmouse.ko: diff --git a/testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.dep.bin b/testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.dep.bin new file mode 100644 index 0000000000000000000000000000000000000000..bdd0eb5fb37bb470d36c28807569a458e5f866d9 GIT binary patch literal 72 zcmdnM{w17&iGfjpfx)RbH@~zvl>rDCK}2?HQC@0}eo9ehS!z+Ser8@lX^B2qiGBe@ Qsa|%z6+=P60R{#h0Mj28lmGw# literal 0 HcmV?d00001 diff --git a/testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.devname b/testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.devname new file mode 100644 index 0000000..58f6d6d --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/alias-to-none/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/alias-to-none/lib/modules/4.4.4/modules.softdep b/testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.softdep new file mode 100644 index 0000000..3cc0512 --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.softdep @@ -0,0 +1,2 @@ +# Soft dependencies extracted from modules themselves. +# Copy, with a .conf extension, to /etc/modprobe.d to use it with modprobe. diff --git a/testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.symbols b/testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.symbols new file mode 100644 index 0000000..618c345 --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/alias-to-none/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/alias-to-none/lib/modules/4.4.4/modules.symbols.bin b/testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.symbols.bin new file mode 100644 index 0000000000000000000000000000000000000000..7075435f6268c4d815aec093d61e26647666ba76 GIT binary patch literal 12 TcmdnM{w17&iGh)Ufq@4A6;A>Z literal 0 HcmV?d00001 diff --git a/testsuite/rootfs-pristine/test-modprobe/alias-to-none/proc/modules b/testsuite/rootfs-pristine/test-modprobe/alias-to-none/proc/modules new file mode 100644 index 0000000..e69de29 diff --git a/testsuite/test-modprobe.c b/testsuite/test-modprobe.c index d598cfd..775a995 100644 --- a/testsuite/test-modprobe.c +++ b/testsuite/test-modprobe.c @@ -70,6 +70,31 @@ static DEFINE_TEST(modprobe_show_depends2, .stdout = TESTSUITE_ROOTFS "test-modprobe/show-depends/correct-psmouse.txt", }); + +static __noreturn int modprobe_show_alias_to_none(const struct test *t) +{ + const char *progname = ABS_TOP_BUILDDIR "/tools/modprobe"; + const char *const args[] = { + progname, + "--show-depends", "--ignore-install", "--quiet", "psmouse", + NULL, + }; + + test_spawn_prog(progname, args); + exit(EXIT_FAILURE); +} +static DEFINE_TEST(modprobe_show_alias_to_none, + .description = "check if modprobe --show-depends doesn't explode with an alias to nothing", + .expected_fail = true, + .config = { + [TC_UNAME_R] = "4.4.4", + [TC_ROOTFS] = TESTSUITE_ROOTFS "test-modprobe/alias-to-none", + }, + .output = { + .stdout = TESTSUITE_ROOTFS "test-modprobe/show-depends/correct-psmouse.txt", + }); + + static __noreturn int modprobe_builtin(const struct test *t) { const char *progname = ABS_TOP_BUILDDIR "/tools/modprobe"; @@ -134,9 +159,11 @@ static DEFINE_TEST(modprobe_install_cmd_loop, }, ); + static const struct test *tests[] = { &smodprobe_show_depends, &smodprobe_show_depends2, + &smodprobe_show_alias_to_none, &smodprobe_builtin, &smodprobe_softdep_loop, &smodprobe_install_cmd_loop, -- 2.7.4