[LTP] [PATCH 2/2] commands/insmod: Added new testcase to test insmod(8)
Guangwen Feng
fenggw-fnst@cn.fujitsu.com
Fri Dec 18 08:07:18 CET 2015
Test the basic functionality of insmod(8) command.
Signed-off-by: Guangwen Feng <fenggw-fnst@cn.fujitsu.com>
---
runtest/commands | 1 +
testcases/commands/insmod/Makefile | 36 ++++++++++++++
testcases/commands/insmod/insmod01.sh | 79 +++++++++++++++++++++++++++++++
testcases/commands/insmod/test_insmod01.c | 35 ++++++++++++++
4 files changed, 151 insertions(+)
create mode 100644 testcases/commands/insmod/Makefile
create mode 100755 testcases/commands/insmod/insmod01.sh
create mode 100644 testcases/commands/insmod/test_insmod01.c
diff --git a/runtest/commands b/runtest/commands
index c1ee9f8..b377081 100644
--- a/runtest/commands
+++ b/runtest/commands
@@ -40,3 +40,4 @@ mkfs01_vfat mkfs01.sh -f vfat
mkfs01_ntfs mkfs01.sh -f ntfs
mkswap01 mkswap01.sh
lsmod01 lsmod01.sh
+insmod01 insmod01.sh
diff --git a/testcases/commands/insmod/Makefile b/testcases/commands/insmod/Makefile
new file mode 100644
index 0000000..69f3ed5
--- /dev/null
+++ b/testcases/commands/insmod/Makefile
@@ -0,0 +1,36 @@
+#
+# Copyright (c) 2015 Fujitsu Ltd.
+# Author:Guangwen Feng <fenggw-fnst@cn.fujitsu.com>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+
+ifneq ($(KERNELRELEASE),)
+
+obj-m := test_insmod01.o
+
+else
+
+top_srcdir ?= ../../..
+include $(top_srcdir)/include/mk/testcases.mk
+
+REQ_VERSION_MAJOR := 2
+REQ_VERSION_PATCH := 6
+MAKE_TARGETS := test_insmod01.ko
+
+include $(top_srcdir)/include/mk/env_pre.mk
+
+INSTALL_TARGETS := insmod01.sh
+
+include $(top_srcdir)/include/mk/module.mk
+include $(top_srcdir)/include/mk/generic_leaf_target.mk
+
+endif
diff --git a/testcases/commands/insmod/insmod01.sh b/testcases/commands/insmod/insmod01.sh
new file mode 100755
index 0000000..fce111c
--- /dev/null
+++ b/testcases/commands/insmod/insmod01.sh
@@ -0,0 +1,79 @@
+#!/bin/sh
+#
+# Copyright (c) 2015 Fujitsu Ltd.
+# Author: Guangwen Feng <fenggw-fnst@cn.fujitsu.com>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
+# the GNU General Public License for more details.
+#
+# Test the basic functionality of insmod command.
+#
+
+TCID=insmod01
+TST_TOTAL=1
+. test.sh
+
+setup()
+{
+ tst_require_root
+
+ tst_check_cmds rmmod insmod
+
+ if ! [ -e ./test_insmod01.ko ]; then
+ tst_brkm TCONF "'test_insmod01.ko' not found"
+ fi
+ inserted=0
+
+ TST_CLEANUP="cleanup"
+}
+
+cleanup()
+{
+ if [ $inserted -ne 0 ]; then
+ echo "about to rmmod test_insmod01"
+ rmmod test_insmod01
+ if [ $? -ne 0 ]; then
+ echo "failed to rmmod test_insmod01"
+ fi
+ fi
+}
+
+insmod_verify()
+{
+ grep -q test_insmod01 /proc/modules
+ if [ $? -ne 0 ]; then
+ echo "test_insmod01 not found in /proc/modules"
+ return 1
+ fi
+}
+
+insmod_test()
+{
+ insmod ./test_insmod01.ko
+ if [ $? -ne 0 ]; then
+ tst_resm TFAIL "'insmod' failed."
+ return
+ fi
+ inserted=1
+
+ insmod_verify
+ if [ $? -ne 0 ]; then
+ tst_resm TFAIL "'insmod' failed, not expected."
+ return
+ fi
+
+ tst_resm TPASS "'insmod' passed."
+}
+
+setup
+
+insmod_test
+
+tst_exit
diff --git a/testcases/commands/insmod/test_insmod01.c b/testcases/commands/insmod/test_insmod01.c
new file mode 100644
index 0000000..bd7464a
--- /dev/null
+++ b/testcases/commands/insmod/test_insmod01.c
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2015 Fujitsu Ltd.
+ * Author: Guangwen Feng <fenggw-fnst@cn.fujitsu.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
+ * the GNU General Public License for more details.
+ *
+ * Description:
+ * This is a kernel loadable module programme used by insmod01.sh
+ * testcase which inserts this module for test of insmod command.
+ */
+
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/kernel.h>
+
+static int test_init(void)
+{
+ return 0;
+}
+
+static void test_exit(void)
+{
+
+}
+
+module_init(test_init);
+module_exit(test_exit);
--
1.8.4.2
More information about the Ltp
mailing list