]> git.ipfire.org Git - thirdparty/kmod.git/commitdiff
testsuite: Add test to check if modprobe explodes on bogus config
authorLucas De Marchi <lucas.de.marchi@gmail.com>
Thu, 21 Mar 2013 05:24:07 +0000 (02:24 -0300)
committerLucas De Marchi <lucas.de.marchi@gmail.com>
Thu, 21 Mar 2013 05:31:16 +0000 (02:31 -0300)
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.

14 files changed:
testsuite/rootfs-pristine/test-modprobe/alias-to-none/correct-psmouse.txt [new file with mode: 0644]
testsuite/rootfs-pristine/test-modprobe/alias-to-none/etc/modprobe.d/bogus.conf [new file with mode: 0644]
testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/kernel/drivers/input/mouse/psmouse.ko [new file with mode: 0644]
testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.alias [new file with mode: 0644]
testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.alias.bin [new file with mode: 0644]
testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.builtin.bin [new file with mode: 0644]
testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.dep [new file with mode: 0644]
testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.dep.bin [new file with mode: 0644]
testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.devname [new file with mode: 0644]
testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.softdep [new file with mode: 0644]
testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.symbols [new file with mode: 0644]
testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.symbols.bin [new file with mode: 0644]
testsuite/rootfs-pristine/test-modprobe/alias-to-none/proc/modules [new file with mode: 0644]
testsuite/test-modprobe.c

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 (file)
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 (file)
index 0000000..14bed0b
--- /dev/null
@@ -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 (file)
index 0000000..4eac2a3
Binary files /dev/null and b/testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/kernel/drivers/input/mouse/psmouse.ko differ
diff --git a/testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.alias b/testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.alias
new file mode 100644 (file)
index 0000000..a4e7677
--- /dev/null
@@ -0,0 +1,3 @@
+# Aliases extracted from modules themselves.
+alias serio:ty05pr*id*ex* psmouse
+alias serio:ty01pr*id*ex* psmouse
diff --git a/testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.alias.bin b/testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.alias.bin
new file mode 100644 (file)
index 0000000..0b13537
Binary files /dev/null and b/testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.alias.bin differ
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 (file)
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 (file)
index 0000000..7ba5711
--- /dev/null
@@ -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 (file)
index 0000000..bdd0eb5
Binary files /dev/null and b/testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.dep.bin differ
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 (file)
index 0000000..58f6d6d
--- /dev/null
@@ -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 (file)
index 0000000..3cc0512
--- /dev/null
@@ -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 (file)
index 0000000..618c345
--- /dev/null
@@ -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 (file)
index 0000000..7075435
Binary files /dev/null and b/testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.symbols.bin differ
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 (file)
index 0000000..e69de29
index d598cfd5cade8b1347c6410da38670af675ba6e9..775a995ed1ce662bc270d5189803e57c338066ef 100644 (file)
@@ -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,