summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLucas De Marchi <lucas.demarchi@intel.com>2015-02-09 14:07:31 -0200
committerLucas De Marchi <lucas.demarchi@intel.com>2015-02-09 14:07:31 -0200
commitd9ab7abe1e135a71685f0eb21a423c9db12e9580 (patch)
tree83eecb1f89fd9031e433da1a6e1bd2bb6b924710
parent01af61dba4d45bbc82293caffff65466d5c3b0f1 (diff)
downloadkmod-d9ab7abe1e135a71685f0eb21a423c9db12e9580.tar.gz
testsuite: port detect-loop test to module-playground
-rw-r--r--testsuite/module-playground/Makefile9
-rw-r--r--testsuite/module-playground/mod-loop-a.c25
-rw-r--r--testsuite/module-playground/mod-loop-b.c25
-rw-r--r--testsuite/module-playground/mod-loop-c.c25
-rw-r--r--testsuite/module-playground/mod-loop-d.c25
-rw-r--r--testsuite/module-playground/mod-loop-e.c25
-rw-r--r--testsuite/module-playground/mod-loop.h7
-rwxr-xr-xtestsuite/populate-modules.sh13
-rw-r--r--testsuite/rootfs-pristine/test-depmod/detect-loop/correct.txt4
-rw-r--r--testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/kernel/moduleA.kobin4713 -> 0 bytes
-rw-r--r--testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/kernel/moduleB.kobin4713 -> 0 bytes
-rw-r--r--testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/kernel/moduleC.kobin4713 -> 0 bytes
-rw-r--r--testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/kernel/moduleD.kobin4713 -> 0 bytes
-rw-r--r--testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/kernel/moduleE.kobin4713 -> 0 bytes
-rw-r--r--testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/modules.order5
15 files changed, 154 insertions, 9 deletions
diff --git a/testsuite/module-playground/Makefile b/testsuite/module-playground/Makefile
index 88367cf..65d668e 100644
--- a/testsuite/module-playground/Makefile
+++ b/testsuite/module-playground/Makefile
@@ -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
index 0000000..e1fd0ce
--- /dev/null
+++ b/testsuite/module-playground/mod-loop-a.c
@@ -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
index 0000000..f4490b7
--- /dev/null
+++ b/testsuite/module-playground/mod-loop-b.c
@@ -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
index 0000000..0b90f7f
--- /dev/null
+++ b/testsuite/module-playground/mod-loop-c.c
@@ -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
index 0000000..9b52305
--- /dev/null
+++ b/testsuite/module-playground/mod-loop-d.c
@@ -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
index 0000000..a65acb2
--- /dev/null
+++ b/testsuite/module-playground/mod-loop-e.c
@@ -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
index 0000000..3244ad9
--- /dev/null
+++ b/testsuite/module-playground/mod-loop.h
@@ -0,0 +1,7 @@
+#pragma once
+
+void printA(void);
+void printB(void);
+void printC(void);
+void printD(void);
+void printE(void);
diff --git a/testsuite/populate-modules.sh b/testsuite/populate-modules.sh
index 8f3f9dd..f41501d 100755
--- a/testsuite/populate-modules.sh
+++ b/testsuite/populate-modules.sh
@@ -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
diff --git a/testsuite/rootfs-pristine/test-depmod/detect-loop/correct.txt b/testsuite/rootfs-pristine/test-depmod/detect-loop/correct.txt
index 753e7c5..4eb26df 100644
--- a/testsuite/rootfs-pristine/test-depmod/detect-loop/correct.txt
+++ b/testsuite/rootfs-pristine/test-depmod/detect-loop/correct.txt
@@ -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
index c48a418..0000000
--- a/testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/kernel/moduleA.ko
+++ /dev/null
Binary files 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
index 70dc122..0000000
--- a/testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/kernel/moduleB.ko
+++ /dev/null
Binary files 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
index ded3201..0000000
--- a/testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/kernel/moduleC.ko
+++ /dev/null
Binary files 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
index 2c7273a..0000000
--- a/testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/kernel/moduleD.ko
+++ /dev/null
Binary files 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
index 393e825..0000000
--- a/testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/kernel/moduleE.ko
+++ /dev/null
Binary files differ
diff --git a/testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/modules.order b/testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/modules.order
index 718a50e..e69de29 100644
--- a/testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/modules.order
+++ b/testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/modules.order
@@ -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