From: Lucas De Marchi Date: Mon, 9 Feb 2015 16:07:31 +0000 (-0200) Subject: testsuite: port detect-loop test to module-playground X-Git-Tag: v20~50 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d9ab7abe1e135a71685f0eb21a423c9db12e9580;p=thirdparty%2Fkmod.git testsuite: port detect-loop test to module-playground --- diff --git a/testsuite/module-playground/Makefile b/testsuite/module-playground/Makefile index 88367cf4..65d668e8 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 00000000..e1fd0ce6 --- /dev/null +++ b/testsuite/module-playground/mod-loop-a.c @@ -0,0 +1,25 @@ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + +#include +#include +#include + +#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 "); +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 00000000..f4490b7a --- /dev/null +++ b/testsuite/module-playground/mod-loop-b.c @@ -0,0 +1,25 @@ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + +#include +#include +#include + +#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 "); +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 00000000..0b90f7f2 --- /dev/null +++ b/testsuite/module-playground/mod-loop-c.c @@ -0,0 +1,25 @@ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + +#include +#include +#include + +#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 "); +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 00000000..9b523055 --- /dev/null +++ b/testsuite/module-playground/mod-loop-d.c @@ -0,0 +1,25 @@ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + +#include +#include +#include + +#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 "); +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 00000000..a65acb28 --- /dev/null +++ b/testsuite/module-playground/mod-loop-e.c @@ -0,0 +1,25 @@ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + +#include +#include +#include + +#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 "); +MODULE_LICENSE("LGPL"); diff --git a/testsuite/module-playground/mod-loop.h b/testsuite/module-playground/mod-loop.h new file mode 100644 index 00000000..3244ad98 --- /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 8f3f9dd0..f41501dc 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 753e7c5c..4eb26dff 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 c48a4185..00000000 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 index 70dc122e..00000000 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 index ded3201f..00000000 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 index 2c7273ac..00000000 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 index 393e825c..00000000 Binary files a/testsuite/rootfs-pristine/test-depmod/detect-loop/lib/modules/4.4.4/kernel/moduleE.ko and /dev/null 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 718a50e7..e69de29b 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