summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLucas De Marchi <lucas.demarchi@intel.com>2015-02-03 00:24:33 -0200
committerLucas De Marchi <lucas.demarchi@intel.com>2015-02-03 01:12:13 -0200
commit450c1f037b3fe3dad49c94918228d6436940e75f (patch)
tree0ea2d0fc8f327ea225640d33e62643a5b3f762ae
parentd2db083ab6f8491e806c72888d897d15584f9f17 (diff)
downloadkmod-450c1f037b3fe3dad49c94918228d6436940e75f.tar.gz
testsuite: port test-dependencies to module-playground
-rw-r--r--Makefile.am4
-rw-r--r--testsuite/module-playground/Makefile8
-rw-r--r--testsuite/module-playground/mod-foo-a.c20
-rw-r--r--testsuite/module-playground/mod-foo-b.c20
-rw-r--r--testsuite/module-playground/mod-foo-c.c20
-rw-r--r--testsuite/module-playground/mod-foo.c23
-rwxr-xr-xtestsuite/populate-modules.sh4
-rw-r--r--testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/kernel/fs/jbd2/jbd2.kobin159175 -> 0 bytes
-rw-r--r--testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/kernel/fs/mbcache.kobin18431 -> 0 bytes
-rw-r--r--testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/kernel/lib/crc16.kobin4374 -> 0 bytes
-rw-r--r--testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/modules.dep8
-rw-r--r--testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/modules.dep.binbin265 -> 244 bytes
-rw-r--r--testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/modules.softdep1
-rw-r--r--testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/modules.symbols60
-rw-r--r--testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/modules.symbols.binbin2584 -> 102 bytes
-rw-r--r--testsuite/test-dependencies.c36
16 files changed, 125 insertions, 79 deletions
diff --git a/Makefile.am b/Makefile.am
index 97a9631..7774759 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -253,6 +253,10 @@ check-am: rootfs check-sysconfdir
EXTRA_DIST += testsuite/module-playground/Makefile \
+ testsuite/module-playground/mod-foo.c \
+ testsuite/module-playground/mod-foo-a.c \
+ testsuite/module-playground/mod-foo-b.c \
+ testsuite/module-playground/mod-foo-c.c \
testsuite/module-playground/mod-simple.c
diff --git a/testsuite/module-playground/Makefile b/testsuite/module-playground/Makefile
index b8b465a..88367cf 100644
--- a/testsuite/module-playground/Makefile
+++ b/testsuite/module-playground/Makefile
@@ -1,6 +1,14 @@
ifneq ($(KERNELRELEASE),)
# kbuild part of makefile
obj-m := mod-simple.o
+
+# mod-foo depends on foo-x, and foo-x modules don't depend
+# on anyone
+obj-m += mod-foo-a.o
+obj-m += mod-foo-b.o
+obj-m += mod-foo-c.o
+obj-m += mod-foo.o
+
else
# normal makefile
KDIR ?= /lib/modules/`uname -r`/build
diff --git a/testsuite/module-playground/mod-foo-a.c b/testsuite/module-playground/mod-foo-a.c
new file mode 100644
index 0000000..bc65f66
--- /dev/null
+++ b/testsuite/module-playground/mod-foo-a.c
@@ -0,0 +1,20 @@
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/printk.h>
+
+static int __init foo_init(void)
+{
+ return 0;
+}
+module_init(foo_init);
+
+void print_fooA(void)
+{
+ pr_warn("fooA\n");
+}
+EXPORT_SYMBOL(print_fooA);
+
+MODULE_AUTHOR("Lucas De Marchi <lucas.demarchi@intel.com>");
+MODULE_LICENSE("LGPL");
diff --git a/testsuite/module-playground/mod-foo-b.c b/testsuite/module-playground/mod-foo-b.c
new file mode 100644
index 0000000..09079f6
--- /dev/null
+++ b/testsuite/module-playground/mod-foo-b.c
@@ -0,0 +1,20 @@
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/printk.h>
+
+static int __init foo_init(void)
+{
+ return 0;
+}
+module_init(foo_init);
+
+void print_fooB(void)
+{
+ pr_warn("fooB\n");
+}
+EXPORT_SYMBOL(print_fooB);
+
+MODULE_AUTHOR("Lucas De Marchi <lucas.demarchi@intel.com>");
+MODULE_LICENSE("LGPL");
diff --git a/testsuite/module-playground/mod-foo-c.c b/testsuite/module-playground/mod-foo-c.c
new file mode 100644
index 0000000..3afd35d
--- /dev/null
+++ b/testsuite/module-playground/mod-foo-c.c
@@ -0,0 +1,20 @@
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/printk.h>
+
+static int __init foo_init(void)
+{
+ return 0;
+}
+module_init(foo_init);
+
+void print_fooC(void)
+{
+ pr_warn("fooC\n");
+}
+EXPORT_SYMBOL(print_fooC);
+
+MODULE_AUTHOR("Lucas De Marchi <lucas.demarchi@intel.com>");
+MODULE_LICENSE("LGPL");
diff --git a/testsuite/module-playground/mod-foo.c b/testsuite/module-playground/mod-foo.c
new file mode 100644
index 0000000..8105608
--- /dev/null
+++ b/testsuite/module-playground/mod-foo.c
@@ -0,0 +1,23 @@
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/printk.h>
+
+void print_fooA(void);
+void print_fooB(void);
+void print_fooC(void);
+
+static int __init foo_init(void)
+{
+ print_fooA();
+ print_fooB();
+ print_fooC();
+
+ return 0;
+}
+
+module_init(foo_init);
+
+MODULE_AUTHOR("Lucas De Marchi <lucas.demarchi@intel.com>");
+MODULE_LICENSE("LGPL");
diff --git a/testsuite/populate-modules.sh b/testsuite/populate-modules.sh
index 25ce457..6a32f04 100755
--- a/testsuite/populate-modules.sh
+++ b/testsuite/populate-modules.sh
@@ -11,6 +11,10 @@ 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-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"
+ ["test-dependencies/lib/modules/4.0.20-kmod/kernel/fs/"]="mod-foo.ko"
)
for k in ${!map[@]}; do
diff --git a/testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/kernel/fs/jbd2/jbd2.ko b/testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/kernel/fs/jbd2/jbd2.ko
deleted file mode 100644
index 521c214..0000000
--- a/testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/kernel/fs/jbd2/jbd2.ko
+++ /dev/null
Binary files differ
diff --git a/testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/kernel/fs/mbcache.ko b/testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/kernel/fs/mbcache.ko
deleted file mode 100644
index 5849fa7..0000000
--- a/testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/kernel/fs/mbcache.ko
+++ /dev/null
Binary files differ
diff --git a/testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/kernel/lib/crc16.ko b/testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/kernel/lib/crc16.ko
deleted file mode 100644
index 2fffdb7..0000000
--- a/testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/kernel/lib/crc16.ko
+++ /dev/null
Binary files differ
diff --git a/testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/modules.dep b/testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/modules.dep
index c4e2516..d9ebfa3 100644
--- a/testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/modules.dep
+++ b/testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/modules.dep
@@ -1,4 +1,4 @@
-kernel/fs/mbcache.ko:
-kernel/fs/ext4/ext4.ko: kernel/lib/crc16.ko kernel/fs/jbd2/jbd2.ko kernel/fs/mbcache.ko
-kernel/fs/jbd2/jbd2.ko:
-kernel/lib/crc16.ko:
+kernel/fs/foo/mod-foo-b.ko:
+kernel/mod-foo-c.ko:
+kernel/lib/mod-foo-a.ko:
+kernel/fs/mod-foo.ko: kernel/fs/foo/mod-foo-b.ko kernel/lib/mod-foo-a.ko kernel/mod-foo-c.ko
diff --git a/testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/modules.dep.bin b/testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/modules.dep.bin
index 2e89d91..8874801 100644
--- a/testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/modules.dep.bin
+++ b/testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/modules.dep.bin
Binary files differ
diff --git a/testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/modules.softdep b/testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/modules.softdep
index 3cc0512..5554ccc 100644
--- a/testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/modules.softdep
+++ b/testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/modules.softdep
@@ -1,2 +1 @@
# 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-dependencies/lib/modules/4.0.20-kmod/modules.symbols b/testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/modules.symbols
index 0f0d88c..ddb6ab6 100644
--- a/testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/modules.symbols
+++ b/testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/modules.symbols
@@ -1,58 +1,4 @@
# Aliases for symbols, used by symbol_request().
-alias symbol:jbd2_journal_invalidatepage jbd2
-alias symbol:jbd2_journal_release_buffer jbd2
-alias symbol:jbd2_journal_init_inode jbd2
-alias symbol:jbd2__journal_restart jbd2
-alias symbol:mb_cache_entry_find_next mbcache
-alias symbol:crc16 crc16
-alias symbol:mb_cache_entry_insert mbcache
-alias symbol:jbd2_journal_destroy jbd2
-alias symbol:jbd2_journal_lock_updates jbd2
-alias symbol:mb_cache_entry_free mbcache
-alias symbol:jbd2_log_start_commit jbd2
-alias symbol:mb_cache_entry_find_first mbcache
-alias symbol:mb_cache_destroy mbcache
-alias symbol:jbd2_journal_extend jbd2
-alias symbol:jbd2_journal_begin_ordered_truncate jbd2
-alias symbol:jbd2_journal_revoke jbd2
-alias symbol:jbd2_journal_get_write_access jbd2
-alias symbol:jbd2_inode_cache jbd2
-alias symbol:jbd2_journal_ack_err jbd2
-alias symbol:mb_cache_create mbcache
-alias symbol:jbd2_journal_flush jbd2
-alias symbol:jbd2_journal_init_jbd_inode jbd2
-alias symbol:mb_cache_entry_alloc mbcache
-alias symbol:jbd2_journal_get_undo_access jbd2
-alias symbol:jbd2_journal_get_create_access jbd2
-alias symbol:jbd2_journal_update_format jbd2
-alias symbol:crc16_table crc16
-alias symbol:jbd2_journal_wipe jbd2
-alias symbol:jbd2_journal_check_used_features jbd2
-alias symbol:mb_cache_entry_get mbcache
-alias symbol:jbd2_journal_force_commit_nested jbd2
-alias symbol:jbd2_log_wait_commit jbd2
-alias symbol:jbd2_journal_stop jbd2
-alias symbol:jbd2_journal_set_triggers jbd2
-alias symbol:jbd2_journal_release_jbd_inode jbd2
-alias symbol:jbd2_journal_unlock_updates jbd2
-alias symbol:jbd2_journal_start_commit jbd2
-alias symbol:jbd2_journal_dirty_metadata jbd2
-alias symbol:jbd2_journal_force_commit jbd2
-alias symbol:mb_cache_entry_release mbcache
-alias symbol:jbd2_journal_init_dev jbd2
-alias symbol:jbd2_journal_forget jbd2
-alias symbol:jbd2_journal_set_features jbd2
-alias symbol:jbd2_journal_start jbd2
-alias symbol:jbd2_journal_clear_features jbd2
-alias symbol:jbd2__journal_start jbd2
-alias symbol:mb_cache_shrink mbcache
-alias symbol:jbd2_journal_clear_err jbd2
-alias symbol:jbd2_journal_file_inode jbd2
-alias symbol:jbd2_journal_restart jbd2
-alias symbol:jbd2_journal_load jbd2
-alias symbol:jbd2_journal_check_available_features jbd2
-alias symbol:jbd2_journal_abort jbd2
-alias symbol:jbd2_journal_blocks_per_page jbd2
-alias symbol:jbd2_journal_try_to_free_buffers jbd2
-alias symbol:jbd2_trans_will_send_data_barrier jbd2
-alias symbol:jbd2_journal_errno jbd2
+alias symbol:print_fooA mod_foo_a
+alias symbol:print_fooC mod_foo_c
+alias symbol:print_fooB mod_foo_b
diff --git a/testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/modules.symbols.bin b/testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/modules.symbols.bin
index aa8cfc8..1add6e5 100644
--- a/testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/modules.symbols.bin
+++ b/testsuite/rootfs-pristine/test-dependencies/lib/modules/4.0.20-kmod/modules.symbols.bin
Binary files differ
diff --git a/testsuite/test-dependencies.c b/testsuite/test-dependencies.c
index c2a4607..38f5fc1 100644
--- a/testsuite/test-dependencies.c
+++ b/testsuite/test-dependencies.c
@@ -31,23 +31,23 @@
#define TEST_UNAME "4.0.20-kmod"
-static int test_dependencies(const struct test *t)
+static noreturn int test_dependencies(const struct test *t)
{
struct kmod_ctx *ctx;
struct kmod_module *mod = NULL;
struct kmod_list *list, *l;
int err;
size_t len = 0;
- int crc16 = 0, mbcache = 0, jbd2 = 0;
+ int fooa = 0, foob = 0, fooc = 0;
ctx = kmod_new(NULL, NULL);
if (ctx == NULL)
- return EXIT_FAILURE;
+ exit(EXIT_FAILURE);
- err = kmod_module_new_from_name(ctx, "ext4", &mod);
+ err = kmod_module_new_from_name(ctx, "mod-foo", &mod);
if (err < 0 || mod == NULL) {
kmod_unref(ctx);
- return EXIT_FAILURE;
+ exit(EXIT_FAILURE);
}
list = kmod_module_get_dependencies(mod);
@@ -56,32 +56,34 @@ static int test_dependencies(const struct test *t)
struct kmod_module *m = kmod_module_get_module(l);
const char *name = kmod_module_get_name(m);
- if (streq(name, "crc16"))
- crc16 = 1;
- if (streq(name, "mbcache"))
- mbcache = 1;
- else if (streq(name, "jbd2"))
- jbd2 = 1;
+ if (streq(name, "mod_foo_a"))
+ fooa = 1;
+ if (streq(name, "mod_foo_b"))
+ foob = 1;
+ else if (streq(name, "mod_foo_c"))
+ fooc = 1;
+ fprintf(stderr, "name=%s", name);
kmod_module_unref(m);
len++;
}
- /* crc16, mbcache, jbd2 */
- if (len != 3 || !crc16 || !mbcache || !jbd2)
- return EXIT_FAILURE;
+ /* fooa, foob, fooc */
+ if (len != 3 || !fooa || !foob || !fooc)
+ exit(EXIT_FAILURE);
kmod_module_unref_list(list);
kmod_module_unref(mod);
kmod_unref(ctx);
- return EXIT_SUCCESS;
+ exit(EXIT_SUCCESS);
}
DEFINE_TEST(test_dependencies,
.description = "test if kmod_module_get_dependencies works",
.config = {
- [TC_ROOTFS] = TESTSUITE_ROOTFS "test-dependencies/",
[TC_UNAME_R] = TEST_UNAME,
- });
+ [TC_ROOTFS] = TESTSUITE_ROOTFS "test-dependencies/",
+ },
+ .need_spawn = true);
TESTSUITE_MAIN();