summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLucas De Marchi <lucas.de.marchi@gmail.com>2013-03-21 02:24:07 -0300
committerLucas De Marchi <lucas.de.marchi@gmail.com>2013-03-21 02:31:16 -0300
commit5278396d987f5da11ecc3d3e5750083ff1df4f89 (patch)
tree38f8d5672001974d785d6bd733cba7cb77bdc90f
parent489c04ddecb63e12b0fe6d45efd7376762e106f1 (diff)
downloadkmod-5278396d987f5da11ecc3d3e5750083ff1df4f89.tar.gz
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.
-rw-r--r--testsuite/rootfs-pristine/test-modprobe/alias-to-none/correct-psmouse.txt0
-rw-r--r--testsuite/rootfs-pristine/test-modprobe/alias-to-none/etc/modprobe.d/bogus.conf1
-rw-r--r--testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/kernel/drivers/input/mouse/psmouse.kobin0 -> 95649 bytes
-rw-r--r--testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.alias3
-rw-r--r--testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.alias.binbin0 -> 101 bytes
-rw-r--r--testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.builtin.bin0
-rw-r--r--testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.dep1
-rw-r--r--testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.dep.binbin0 -> 72 bytes
-rw-r--r--testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.devname1
-rw-r--r--testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.softdep2
-rw-r--r--testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.symbols1
-rw-r--r--testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.symbols.binbin0 -> 12 bytes
-rw-r--r--testsuite/rootfs-pristine/test-modprobe/alias-to-none/proc/modules0
-rw-r--r--testsuite/test-modprobe.c27
14 files changed, 36 insertions, 0 deletions
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
--- /dev/null
+++ b/testsuite/rootfs-pristine/test-modprobe/alias-to-none/correct-psmouse.txt
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 0000000..4eac2a3
--- /dev/null
+++ b/testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/kernel/drivers/input/mouse/psmouse.ko
Binary files 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
index 0000000..a4e7677
--- /dev/null
+++ b/testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.alias
@@ -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
index 0000000..0b13537
--- /dev/null
+++ b/testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.alias.bin
Binary files 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
index 0000000..e69de29
--- /dev/null
+++ b/testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.builtin.bin
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 0000000..bdd0eb5
--- /dev/null
+++ b/testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.dep.bin
Binary files 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
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 0000000..7075435
--- /dev/null
+++ b/testsuite/rootfs-pristine/test-modprobe/alias-to-none/lib/modules/4.4.4/modules.symbols.bin
Binary files 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
index 0000000..e69de29
--- /dev/null
+++ b/testsuite/rootfs-pristine/test-modprobe/alias-to-none/proc/modules
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,