]> git.ipfire.org Git - thirdparty/kmod.git/commitdiff
Add test for depmod using search dirs with same prefix
authorLucas De Marchi <lucas.demarchi@intel.com>
Wed, 19 Mar 2014 12:15:59 +0000 (09:15 -0300)
committerLucas De Marchi <lucas.demarchi@intel.com>
Wed, 19 Mar 2014 12:22:20 +0000 (09:22 -0300)
Test depmod with search dirs "foo" and "foobar". Previously to 49b33c1
("depmod: do not allow partial matches with "search" directive") we were
failing this test due to matching the prefix without checking if
it's the full dir name.

We are adding 2 tests here in order to catch the case we only pass the
test due to processing the directories in a favourable order.

testsuite/rootfs-pristine/test-depmod/search-order-same-prefix/etc/depmod.d/search.conf [new file with mode: 0644]
testsuite/rootfs-pristine/test-depmod/search-order-same-prefix/lib/modules/4.4.4/correct-modules.dep [new file with mode: 0644]
testsuite/rootfs-pristine/test-depmod/search-order-same-prefix/lib/modules/4.4.4/foo/md5.ko.gz [new file with mode: 0644]
testsuite/rootfs-pristine/test-depmod/search-order-same-prefix/lib/modules/4.4.4/foobar/md5.ko.gz [new file with mode: 0644]
testsuite/rootfs-pristine/test-depmod/search-order-same-prefix2/etc/depmod.d/search.conf [new file with mode: 0644]
testsuite/rootfs-pristine/test-depmod/search-order-same-prefix2/lib/modules/4.4.4/correct-modules.dep [new file with mode: 0644]
testsuite/rootfs-pristine/test-depmod/search-order-same-prefix2/lib/modules/4.4.4/foo/md5.ko.gz [new file with mode: 0644]
testsuite/rootfs-pristine/test-depmod/search-order-same-prefix2/lib/modules/4.4.4/foobar/md5.ko.gz [new file with mode: 0644]
testsuite/test-depmod.c

diff --git a/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix/etc/depmod.d/search.conf b/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix/etc/depmod.d/search.conf
new file mode 100644 (file)
index 0000000..d43973e
--- /dev/null
@@ -0,0 +1 @@
+search foobar foo built-in
diff --git a/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix/lib/modules/4.4.4/correct-modules.dep b/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix/lib/modules/4.4.4/correct-modules.dep
new file mode 100644 (file)
index 0000000..7cac981
--- /dev/null
@@ -0,0 +1 @@
+foobar/md5.ko.gz:
diff --git a/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix/lib/modules/4.4.4/foo/md5.ko.gz b/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix/lib/modules/4.4.4/foo/md5.ko.gz
new file mode 100644 (file)
index 0000000..cf5ab6d
Binary files /dev/null and b/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix/lib/modules/4.4.4/foo/md5.ko.gz differ
diff --git a/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix/lib/modules/4.4.4/foobar/md5.ko.gz b/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix/lib/modules/4.4.4/foobar/md5.ko.gz
new file mode 100644 (file)
index 0000000..cf5ab6d
Binary files /dev/null and b/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix/lib/modules/4.4.4/foobar/md5.ko.gz differ
diff --git a/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix2/etc/depmod.d/search.conf b/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix2/etc/depmod.d/search.conf
new file mode 100644 (file)
index 0000000..ddf4064
--- /dev/null
@@ -0,0 +1 @@
+search foo foobar built-in
diff --git a/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix2/lib/modules/4.4.4/correct-modules.dep b/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix2/lib/modules/4.4.4/correct-modules.dep
new file mode 100644 (file)
index 0000000..346a257
--- /dev/null
@@ -0,0 +1 @@
+foo/md5.ko.gz:
diff --git a/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix2/lib/modules/4.4.4/foo/md5.ko.gz b/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix2/lib/modules/4.4.4/foo/md5.ko.gz
new file mode 100644 (file)
index 0000000..cf5ab6d
Binary files /dev/null and b/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix2/lib/modules/4.4.4/foo/md5.ko.gz differ
diff --git a/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix2/lib/modules/4.4.4/foobar/md5.ko.gz b/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix2/lib/modules/4.4.4/foobar/md5.ko.gz
new file mode 100644 (file)
index 0000000..cf5ab6d
Binary files /dev/null and b/testsuite/rootfs-pristine/test-depmod/search-order-same-prefix2/lib/modules/4.4.4/foobar/md5.ko.gz differ
index fe1d502f0318197b50d38c3ae3bf197724f4e5e6..b6023f11a968740da5d1b59fb7a41c8372c48a5e 100644 (file)
@@ -80,10 +80,65 @@ static DEFINE_TEST(depmod_search_order_simple,
                },
        });
 
+#define SEARCH_ORDER_SAME_PREFIX_ROOTFS TESTSUITE_ROOTFS "test-depmod/search-order-same-prefix"
+static noreturn int depmod_search_order_same_prefix(const struct test *t)
+{
+       const char *progname = ABS_TOP_BUILDDIR "/tools/depmod";
+       const char *const args[] = {
+               progname,
+               NULL,
+       };
+
+       test_spawn_prog(progname, args);
+       exit(EXIT_FAILURE);
+}
+static DEFINE_TEST(depmod_search_order_same_prefix,
+       .description = "check if depmod honor search order in config with same prefix",
+       .config = {
+               [TC_UNAME_R] = "4.4.4",
+               [TC_ROOTFS] = SEARCH_ORDER_SAME_PREFIX_ROOTFS,
+       },
+       .output = {
+               .files = (const struct keyval[]) {
+                       { SEARCH_ORDER_SAME_PREFIX_ROOTFS "/lib/modules/4.4.4/correct-modules.dep",
+                         SEARCH_ORDER_SAME_PREFIX_ROOTFS "/lib/modules/4.4.4/modules.dep" },
+                       { }
+               },
+       });
+
+#define SEARCH_ORDER_SAME_PREFIX2_ROOTFS TESTSUITE_ROOTFS "test-depmod/search-order-same-prefix2"
+static noreturn int depmod_search_order_same_prefix2(const struct test *t)
+{
+       const char *progname = ABS_TOP_BUILDDIR "/tools/depmod";
+       const char *const args[] = {
+               progname,
+               NULL,
+       };
+
+       test_spawn_prog(progname, args);
+       exit(EXIT_FAILURE);
+}
+static DEFINE_TEST(depmod_search_order_same_prefix2,
+       .description = "check if depmod honor search order in config with same prefi: "
+                       "the same as depmod_search_order_same_prefix, but in inverse order",
+       .config = {
+               [TC_UNAME_R] = "4.4.4",
+               [TC_ROOTFS] = SEARCH_ORDER_SAME_PREFIX2_ROOTFS,
+       },
+       .output = {
+               .files = (const struct keyval[]) {
+                       { SEARCH_ORDER_SAME_PREFIX2_ROOTFS "/lib/modules/4.4.4/correct-modules.dep",
+                         SEARCH_ORDER_SAME_PREFIX2_ROOTFS "/lib/modules/4.4.4/modules.dep" },
+                       { }
+               },
+       });
+
 
 static const struct test *tests[] = {
        &sdepmod_modules_order_for_compressed,
        &sdepmod_search_order_simple,
+       &sdepmod_search_order_same_prefix,
+       &sdepmod_search_order_same_prefix2,
        NULL,
 };