]> git.ipfire.org Git - thirdparty/kmod.git/commitdiff
testsuite: port detect-loop test to module-playground
authorLucas De Marchi <lucas.demarchi@intel.com>
Mon, 9 Feb 2015 16:07:31 +0000 (14:07 -0200)
committerLucas De Marchi <lucas.demarchi@intel.com>
Mon, 9 Feb 2015 16:07:31 +0000 (14:07 -0200)
15 files changed:
testsuite/module-playground/Makefile
testsuite/module-playground/mod-loop-a.c [new file with mode: 0644]
testsuite/module-playground/mod-loop-b.c [new file with mode: 0644]
testsuite/module-playground/mod-loop-c.c [new file with mode: 0644]
testsuite/module-playground/mod-loop-d.c [new file with mode: 0644]
testsuite/module-playground/mod-loop-e.c [new file with mode: 0644]
testsuite/module-playground/mod-loop.h [new file with mode: 0644]
testsuite/populate-modules.sh
testsuite/rootfs-pristine/test-depmod/detect-loop/correct.txt
testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/kernel/moduleA.ko [deleted file]
testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/kernel/moduleB.ko [deleted file]
testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/kernel/moduleC.ko [deleted file]
testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/kernel/moduleD.ko [deleted file]
testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/kernel/moduleE.ko [deleted file]
testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/modules.order

index 88367cf4bf111efa2635002730453f73d88dc8f6..65d668e8dbabcbfad91fba2eac8a9789f69257ef 100644 (file)
@@ -9,6 +9,15 @@ obj-m += mod-foo-b.o
 obj-m += mod-foo-c.o
 obj-m += mod-foo.o
 
+# mod-loop: create loops in dependencies:
+# 1) mod-loop-a -> mod-loop-b -> mod-loop-c -> mod-loop-a
+# 2) mod-loop-d -> mod-loop-e -> mod-loop-d
+obj-m += mod-loop-a.o
+obj-m += mod-loop-b.o
+obj-m += mod-loop-c.o
+obj-m += mod-loop-d.o
+obj-m += mod-loop-e.o
+
 else
 # normal makefile
 KDIR ?= /lib/modules/`uname -r`/build
diff --git a/testsuite/module-playground/mod-loop-a.c b/testsuite/module-playground/mod-loop-a.c
new file mode 100644 (file)
index 0000000..e1fd0ce
--- /dev/null
@@ -0,0 +1,25 @@
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/printk.h>
+
+#include "mod-loop.h"
+
+static int __init test_module_init(void)
+{
+       printA();
+       printB();
+
+       return 0;
+}
+module_init(test_module_init);
+
+void printA(void)
+{
+       pr_warn("Hello, world A\n");
+}
+EXPORT_SYMBOL(printA);
+
+MODULE_AUTHOR("Lucas De Marchi <lucas.demarchi@intel.com>");
+MODULE_LICENSE("LGPL");
diff --git a/testsuite/module-playground/mod-loop-b.c b/testsuite/module-playground/mod-loop-b.c
new file mode 100644 (file)
index 0000000..f4490b7
--- /dev/null
@@ -0,0 +1,25 @@
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/printk.h>
+
+#include "mod-loop.h"
+
+static int __init test_module_init(void)
+{
+       printB();
+       printC();
+
+       return 0;
+}
+module_init(test_module_init);
+
+void printB(void)
+{
+       pr_warn("Hello, world B\n");
+}
+EXPORT_SYMBOL(printB);
+
+MODULE_AUTHOR("Lucas De Marchi <lucas.demarchi@intel.com>");
+MODULE_LICENSE("LGPL");
diff --git a/testsuite/module-playground/mod-loop-c.c b/testsuite/module-playground/mod-loop-c.c
new file mode 100644 (file)
index 0000000..0b90f7f
--- /dev/null
@@ -0,0 +1,25 @@
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/printk.h>
+
+#include "mod-loop.h"
+
+static int __init test_module_init(void)
+{
+       printC();
+       printA();
+
+       return 0;
+}
+module_init(test_module_init);
+
+void printC(void)
+{
+       pr_warn("Hello, world C\n");
+}
+EXPORT_SYMBOL(printC);
+
+MODULE_AUTHOR("Lucas De Marchi <lucas.demarchi@intel.com>");
+MODULE_LICENSE("LGPL");
diff --git a/testsuite/module-playground/mod-loop-d.c b/testsuite/module-playground/mod-loop-d.c
new file mode 100644 (file)
index 0000000..9b52305
--- /dev/null
@@ -0,0 +1,25 @@
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/printk.h>
+
+#include "mod-loop.h"
+
+static int __init test_module_init(void)
+{
+       printD();
+       printE();
+
+       return 0;
+}
+module_init(test_module_init);
+
+void printD(void)
+{
+       pr_warn("Hello, world D\n");
+}
+EXPORT_SYMBOL(printD);
+
+MODULE_AUTHOR("Lucas De Marchi <lucas.demarchi@intel.com>");
+MODULE_LICENSE("LGPL");
diff --git a/testsuite/module-playground/mod-loop-e.c b/testsuite/module-playground/mod-loop-e.c
new file mode 100644 (file)
index 0000000..a65acb2
--- /dev/null
@@ -0,0 +1,25 @@
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/printk.h>
+
+#include "mod-loop.h"
+
+static int __init test_module_init(void)
+{
+       printE();
+       printD();
+
+       return 0;
+}
+module_init(test_module_init);
+
+void printE(void)
+{
+       pr_warn("Hello, world E\n");
+}
+EXPORT_SYMBOL(printE);
+
+MODULE_AUTHOR("Lucas De Marchi <lucas.demarchi@intel.com>");
+MODULE_LICENSE("LGPL");
diff --git a/testsuite/module-playground/mod-loop.h b/testsuite/module-playground/mod-loop.h
new file mode 100644 (file)
index 0000000..3244ad9
--- /dev/null
@@ -0,0 +1,7 @@
+#pragma once
+
+void printA(void);
+void printB(void);
+void printC(void);
+void printD(void);
+void printE(void);
index 8f3f9dd07941a7e72fe4e292f0630b3555776867..f41501dc0512fcab6ba42a8bddbc688c03e05e16 100755 (executable)
@@ -11,6 +11,11 @@ map=(
     ["test-depmod/search-order-simple/lib/modules/4.4.4/updates/"]="mod-simple.ko"
     ["test-depmod/search-order-same-prefix/lib/modules/4.4.4/foo/"]="mod-simple.ko"
     ["test-depmod/search-order-same-prefix/lib/modules/4.4.4/foobar/"]="mod-simple.ko"
+    ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko"
+    ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko"
+    ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-c.ko"]="mod-loop-c.ko"
+    ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-d.ko"]="mod-loop-d.ko"
+    ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-e.ko"]="mod-loop-e.ko"
     ["test-dependencies/lib/modules/4.0.20-kmod/kernel/fs/foo/"]="mod-foo-b.ko"
     ["test-dependencies/lib/modules/4.0.20-kmod/kernel/"]="mod-foo-c.ko"
     ["test-dependencies/lib/modules/4.0.20-kmod/kernel/lib/"]="mod-foo-a.ko"
@@ -23,6 +28,10 @@ for k in ${!map[@]}; do
     dst=${ROOTFS}/$k
     src=${MODULE_PLAYGROUND}/${map[$k]}
 
-    install -d $dst
-    install -t $dst $src
+    if test "${dst: -1}" = "/"; then
+        install -d $dst
+        install -t $dst $src
+    else
+        install -D $src $dst
+    fi
 done
index 753e7c5c11b64bd8c9f8ac03b629c1d9f976e9eb..4eb26dffb7d955d3c3e031dbffba2bec0ca8883e 100644 (file)
@@ -1,3 +1,3 @@
 depmod: ERROR: Found 5 modules in dependency cycles!
-depmod: ERROR: Cycle detected: moduleE -> moduleD -> moduleE
-depmod: ERROR: Cycle detected: moduleB -> moduleC -> moduleA -> moduleB
+depmod: ERROR: Cycle detected: mod_loop_d -> mod_loop_e -> mod_loop_d
+depmod: ERROR: Cycle detected: mod_loop_b -> mod_loop_c -> mod_loop_a -> mod_loop_b
diff --git a/testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/kernel/moduleA.ko b/testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/kernel/moduleA.ko
deleted file mode 100644 (file)
index c48a418..0000000
Binary files a/testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/kernel/moduleA.ko and /dev/null differ
diff --git a/testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/kernel/moduleB.ko b/testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/kernel/moduleB.ko
deleted file mode 100644 (file)
index 70dc122..0000000
Binary files a/testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/kernel/moduleB.ko and /dev/null differ
diff --git a/testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/kernel/moduleC.ko b/testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/kernel/moduleC.ko
deleted file mode 100644 (file)
index ded3201..0000000
Binary files a/testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/kernel/moduleC.ko and /dev/null differ
diff --git a/testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/kernel/moduleD.ko b/testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/kernel/moduleD.ko
deleted file mode 100644 (file)
index 2c7273a..0000000
Binary files a/testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/kernel/moduleD.ko and /dev/null differ
diff --git a/testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/kernel/moduleE.ko b/testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/kernel/moduleE.ko
deleted file mode 100644 (file)
index 393e825..0000000
Binary files a/testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/kernel/moduleE.ko and /dev/null differ
index 718a50e7fde35908a5f2b90ea49f8fa520999efb..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,5 +0,0 @@
-kernel//home/lucas/p/kmod/testsuite/module-playground/moduleA.ko
-kernel//home/lucas/p/kmod/testsuite/module-playground/moduleB.ko
-kernel//home/lucas/p/kmod/testsuite/module-playground/moduleC.ko
-kernel//home/lucas/p/kmod/testsuite/module-playground/moduleD.ko
-kernel//home/lucas/p/kmod/testsuite/module-playground/moduleE.ko