testsuite: Add module playground dir
authorLucas De Marchi <lucas.demarchi@intel.com>
Fri, 2 May 2014 15:56:46 +0000 (12:56 -0300)
committerLucas De Marchi <lucas.demarchi@intel.com>
Fri, 2 May 2014 15:57:17 +0000 (12:57 -0300)
testsuite/module-playground/Makefile [new file with mode: 0644]
testsuite/module-playground/moduleA.c [new file with mode: 0644]
testsuite/module-playground/moduleB.c [new file with mode: 0644]
testsuite/module-playground/moduleC.c [new file with mode: 0644]
testsuite/module-playground/printmodule.h [new file with mode: 0644]

diff --git a/testsuite/module-playground/Makefile b/testsuite/module-playground/Makefile
new file mode 100644 (file)
index 0000000..f606823
--- /dev/null
@@ -0,0 +1,23 @@
+ifneq ($(KERNELRELEASE),)
+# kbuild part of makefile
+obj-m := moduleA.o moduleB.o moduleC.o
+else
+# normal makefile
+KDIR ?= /lib/modules/`uname -r`/build
+KVER ?= `uname -r`
+TESTDIR_BASE := /tmp/test-kmod
+TESTDIR := $(TESTDIR_BASE)/lib/modules/$(KVER)/
+
+default:
+       $(MAKE) -C $(KDIR) M=$$PWD
+
+install: default
+       mkdir -p $(TESTDIR)/kernel/
+       cp *.ko $(TESTDIR)/kernel/
+       cp modules.order $(TESTDIR)
+       depmod -a -b $(TESTDIR_BASE) $(KVER)
+
+clean:
+       $(MAKE) -C $(KDIR) M=$$PWD clean
+
+endif
diff --git a/testsuite/module-playground/moduleA.c b/testsuite/module-playground/moduleA.c
new file mode 100644 (file)
index 0000000..f1041ac
--- /dev/null
@@ -0,0 +1,24 @@
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/printk.h>
+
+#include "printmodule.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("GPL");
diff --git a/testsuite/module-playground/moduleB.c b/testsuite/module-playground/moduleB.c
new file mode 100644 (file)
index 0000000..ae13f53
--- /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 "printmodule.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("GPL");
diff --git a/testsuite/module-playground/moduleC.c b/testsuite/module-playground/moduleC.c
new file mode 100644 (file)
index 0000000..b74cb07
--- /dev/null
@@ -0,0 +1,24 @@
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/printk.h>
+
+#include "printmodule.h"
+
+static int __init test_module_init(void)
+{
+       printC();
+       printB();
+       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("GPL");
diff --git a/testsuite/module-playground/printmodule.h b/testsuite/module-playground/printmodule.h
new file mode 100644 (file)
index 0000000..8505377
--- /dev/null
@@ -0,0 +1,5 @@
+#pragma once
+
+void printA(void);
+void printB(void);
+void printC(void);