All of lore.kernel.org
 help / color / mirror / Atom feed
* [LTP] [PATCH 1/2] commands/lsmod: Added new testcase to test lsmod(8)
@ 2015-12-18  7:07 Guangwen Feng
  2015-12-18  7:07 ` [LTP] [PATCH 2/2] commands/insmod: Added new testcase to test insmod(8) Guangwen Feng
  2016-01-27 16:11 ` [LTP] [PATCH 1/2] commands/lsmod: Added new testcase to test lsmod(8) Cyril Hrubis
  0 siblings, 2 replies; 10+ messages in thread
From: Guangwen Feng @ 2015-12-18  7:07 UTC (permalink / raw)
  To: ltp

Test the basic functionality of lsmod(8) command.

Signed-off-by: Guangwen Feng <fenggw-fnst@cn.fujitsu.com>
---
 runtest/commands                    |  1 +
 testcases/commands/lsmod/Makefile   | 22 +++++++++++
 testcases/commands/lsmod/lsmod01.sh | 74 +++++++++++++++++++++++++++++++++++++
 3 files changed, 97 insertions(+)
 create mode 100644 testcases/commands/lsmod/Makefile
 create mode 100755 testcases/commands/lsmod/lsmod01.sh

diff --git a/runtest/commands b/runtest/commands
index ab600dc..c1ee9f8 100644
--- a/runtest/commands
+++ b/runtest/commands
@@ -39,3 +39,4 @@ mkfs01_msdos mkfs01.sh -f msdos
 mkfs01_vfat mkfs01.sh -f vfat
 mkfs01_ntfs mkfs01.sh -f ntfs
 mkswap01 mkswap01.sh
+lsmod01 lsmod01.sh
diff --git a/testcases/commands/lsmod/Makefile b/testcases/commands/lsmod/Makefile
new file mode 100644
index 0000000..2af91b3
--- /dev/null
+++ b/testcases/commands/lsmod/Makefile
@@ -0,0 +1,22 @@
+#
+#    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.
+#
+
+top_srcdir		?= ../../..
+
+include $(top_srcdir)/include/mk/env_pre.mk
+
+INSTALL_TARGETS		:= lsmod01.sh
+
+include $(top_srcdir)/include/mk/generic_leaf_target.mk
diff --git a/testcases/commands/lsmod/lsmod01.sh b/testcases/commands/lsmod/lsmod01.sh
new file mode 100755
index 0000000..2b67376
--- /dev/null
+++ b/testcases/commands/lsmod/lsmod01.sh
@@ -0,0 +1,74 @@
+#!/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 lsmod command.
+#
+
+TCID=lsmod01
+TST_TOTAL=1
+. test.sh
+
+setup()
+{
+	tst_check_cmds lsmod
+
+	tst_tmpdir
+
+	TST_CLEANUP="cleanup"
+}
+
+cleanup()
+{
+	tst_rmdir
+}
+
+lsmod_verify()
+{
+	cat temp | awk 'BEGIN{FS=" "}{print $1, $2, $3}' | \
+		sed '/Module/d' | sort >temp1
+
+	cat /proc/modules | awk 'BEGIN{FS=" "}{print $1, $2, $3}' | \
+		sort >temp2
+
+	diff temp1 temp2 >/dev/null
+	if [ $? -ne 0 ]; then
+		echo "contents different between lsmod and /proc/modules"
+		return 1
+	fi
+}
+
+lsmod_test()
+{
+	lsmod >temp 2>&1
+	if [ $? -ne 0 ]; then
+		tst_resm TFAIL "'lsmod' failed."
+		cat temp
+		return
+	fi
+
+	lsmod_verify
+	if [ $? -ne 0 ]; then
+		tst_resm TFAIL "'lsmod' failed, not expected."
+		return
+	fi
+
+	tst_resm TPASS "'lsmod' passed."
+}
+
+setup
+
+lsmod_test
+
+tst_exit
-- 
1.8.4.2




^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [LTP] [PATCH 2/2] commands/insmod: Added new testcase to test insmod(8)
  2015-12-18  7:07 [LTP] [PATCH 1/2] commands/lsmod: Added new testcase to test lsmod(8) Guangwen Feng
@ 2015-12-18  7:07 ` Guangwen Feng
  2016-01-27 16:28   ` Cyril Hrubis
  2016-01-27 16:11 ` [LTP] [PATCH 1/2] commands/lsmod: Added new testcase to test lsmod(8) Cyril Hrubis
  1 sibling, 1 reply; 10+ messages in thread
From: Guangwen Feng @ 2015-12-18  7:07 UTC (permalink / raw)
  To: ltp

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




^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [LTP] [PATCH 1/2] commands/lsmod: Added new testcase to test lsmod(8)
  2015-12-18  7:07 [LTP] [PATCH 1/2] commands/lsmod: Added new testcase to test lsmod(8) Guangwen Feng
  2015-12-18  7:07 ` [LTP] [PATCH 2/2] commands/insmod: Added new testcase to test insmod(8) Guangwen Feng
@ 2016-01-27 16:11 ` Cyril Hrubis
  1 sibling, 0 replies; 10+ messages in thread
From: Cyril Hrubis @ 2016-01-27 16:11 UTC (permalink / raw)
  To: ltp

Hi!
I've moved the verify part to the test function since there is no need
to keep it separated for such simple test and simplified the awk part as
well. There is no need to use sed if we can do the match in the awk and
also awk can read file just fine, no need to use the cat to feed it to
stdin.

Pushed, thanks.

-- 
Cyril Hrubis
chrubis@suse.cz

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [LTP] [PATCH 2/2] commands/insmod: Added new testcase to test insmod(8)
  2015-12-18  7:07 ` [LTP] [PATCH 2/2] commands/insmod: Added new testcase to test insmod(8) Guangwen Feng
@ 2016-01-27 16:28   ` Cyril Hrubis
  2016-01-28  9:42     ` Guangwen Feng
  0 siblings, 1 reply; 10+ messages in thread
From: Cyril Hrubis @ 2016-01-27 16:28 UTC (permalink / raw)
  To: ltp

Hi!
> +setup()
> +{
> +	tst_require_root
> +
> +	tst_check_cmds rmmod insmod
> +
> +	if ! [ -e ./test_insmod01.ko ]; then
> +		tst_brkm TCONF "'test_insmod01.ko' not found"
> +	fi

We should really copy the behavior of tst_module_exist() from C library
here, i.e. add a function to test.sh that will return a path to the
module in case that it exists. I can write the function if needed.

> diff --git a/testcases/commands/insmod/test_insmod01.c b/testcases/commands/insmod/test_insmod01.c

And I would prefix the module name with ltp_ as well so that it's clear
where it came from.


The rest looks good.

-- 
Cyril Hrubis
chrubis@suse.cz

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [LTP] [PATCH 2/2] commands/insmod: Added new testcase to test insmod(8)
  2016-01-27 16:28   ` Cyril Hrubis
@ 2016-01-28  9:42     ` Guangwen Feng
  2016-03-15  8:03       ` [LTP] [PATCH v2] commands/insmod: add " Guangwen Feng
  0 siblings, 1 reply; 10+ messages in thread
From: Guangwen Feng @ 2016-01-28  9:42 UTC (permalink / raw)
  To: ltp

Hi!
Thanks for your review!

On 01/28/2016 12:28 AM, Cyril Hrubis wrote:
> Hi!
>> +setup()
>> +{
>> +	tst_require_root
>> +
>> +	tst_check_cmds rmmod insmod
>> +
>> +	if ! [ -e ./test_insmod01.ko ]; then
>> +		tst_brkm TCONF "'test_insmod01.ko' not found"
>> +	fi
> 
> We should really copy the behavior of tst_module_exist() from C library
> here, i.e. add a function to test.sh that will return a path to the
> module in case that it exists. I can write the function if needed.

I got it.
I will add this to test.sh, thanks.

> 
>> diff --git a/testcases/commands/insmod/test_insmod01.c b/testcases/commands/insmod/test_insmod01.c
> 
> And I would prefix the module name with ltp_ as well so that it's clear
> where it came from.

OK.

> 
> 
> The rest looks good.
> 



^ permalink raw reply	[flat|nested] 10+ messages in thread

* [LTP] [PATCH v2] commands/insmod: add new testcase to test insmod(8)
  2016-01-28  9:42     ` Guangwen Feng
@ 2016-03-15  8:03       ` Guangwen Feng
  2016-04-18  2:33         ` Guangwen Feng
  2016-04-18 15:44         ` Cyril Hrubis
  0 siblings, 2 replies; 10+ messages in thread
From: Guangwen Feng @ 2016-03-15  8:03 UTC (permalink / raw)
  To: ltp

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    | 71 ++++++++++++++++++++++++++++++++
 testcases/commands/insmod/ltp_insmod01.c | 35 ++++++++++++++++
 testcases/lib/test.sh                    | 28 +++++++++++++
 5 files changed, 171 insertions(+)
 create mode 100644 testcases/commands/insmod/Makefile
 create mode 100755 testcases/commands/insmod/insmod01.sh
 create mode 100644 testcases/commands/insmod/ltp_insmod01.c

diff --git a/runtest/commands b/runtest/commands
index db89424..abbbd96 100644
--- a/runtest/commands
+++ b/runtest/commands
@@ -41,3 +41,4 @@ mkfs01_ntfs mkfs01.sh -f ntfs
 mkswap01 mkswap01.sh
 which01 which01.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..e5e68b6
--- /dev/null
+++ b/testcases/commands/insmod/Makefile
@@ -0,0 +1,36 @@
+#
+#    Copyright (c) 2016 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 := ltp_insmod01.o
+
+else
+
+top_srcdir		?= ../../..
+include $(top_srcdir)/include/mk/testcases.mk
+
+REQ_VERSION_MAJOR       := 2
+REQ_VERSION_PATCH       := 6
+MAKE_TARGETS            := ltp_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..f19c068
--- /dev/null
+++ b/testcases/commands/insmod/insmod01.sh
@@ -0,0 +1,71 @@
+#!/bin/sh
+#
+# Copyright (c) 2016 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
+
+	tst_module_exists ltp_insmod01.ko
+
+	inserted=0
+
+	TST_CLEANUP="cleanup"
+}
+
+cleanup()
+{
+	if [ $inserted -ne 0 ]; then
+		echo "about to rmmod ltp_insmod01"
+		rmmod ltp_insmod01
+		if [ $? -ne 0 ]; then
+			echo "failed to rmmod ltp_insmod01"
+		fi
+	fi
+}
+
+insmod_test()
+{
+	insmod "$TST_MODPATH"
+	if [ $? -ne 0 ]; then
+		tst_resm TFAIL "'insmod' failed."
+		return
+	fi
+	inserted=1
+
+	grep -q ltp_insmod01 /proc/modules
+
+	if [ $? -ne 0 ]; then
+		tst_resm TINFO "ltp_insmod01 not found in /proc/modules"
+		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/ltp_insmod01.c b/testcases/commands/insmod/ltp_insmod01.c
new file mode 100644
index 0000000..398714e
--- /dev/null
+++ b/testcases/commands/insmod/ltp_insmod01.c
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2016 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);
diff --git a/testcases/lib/test.sh b/testcases/lib/test.sh
index 9b652c0..56e1c60 100644
--- a/testcases/lib/test.sh
+++ b/testcases/lib/test.sh
@@ -352,6 +352,34 @@ tst_umount()
 	tst_resm TWARN "Failed to umount($device) after 50 retries"
 }
 
+# Check a module file existence
+# Should be called after tst_tmpdir()
+tst_module_exists()
+{
+	local mod_name="$1"
+
+	if [ -f "$mod_name" ]; then
+		TST_MODPATH="$mod_name"
+		return
+	fi
+
+	local mod_path="$LTPROOT/testcases/bin/$mod_name"
+	if [ -f "$mod_path" ]; then
+		TST_MODPATH="$mod_path"
+		return
+	fi
+
+	if [ -n "$TST_TMPDIR" ]; then
+		mod_path="$TST_TMPDIR/$mod_name"
+		if [ -f "$mod_path" ]; then
+			TST_MODPATH="$mod_path"
+			return
+		fi
+	fi
+
+	tst_brkm TCONF "Failed to find module '$mod_name'"
+}
+
 # Check that test name is set
 if [ -z "$TCID" ]; then
 	tst_brkm TBROK "TCID is not defined"
-- 
1.8.4.2




^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [LTP] [PATCH v2] commands/insmod: add new testcase to test insmod(8)
  2016-03-15  8:03       ` [LTP] [PATCH v2] commands/insmod: add " Guangwen Feng
@ 2016-04-18  2:33         ` Guangwen Feng
  2016-04-18 15:44         ` Cyril Hrubis
  1 sibling, 0 replies; 10+ messages in thread
From: Guangwen Feng @ 2016-04-18  2:33 UTC (permalink / raw)
  To: ltp

Hi!

Ping! thanks.


Best Regards,
Guangwen Feng

On 03/15/2016 04:03 PM, Guangwen Feng wrote:
> 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    | 71 ++++++++++++++++++++++++++++++++
>  testcases/commands/insmod/ltp_insmod01.c | 35 ++++++++++++++++
>  testcases/lib/test.sh                    | 28 +++++++++++++
>  5 files changed, 171 insertions(+)
>  create mode 100644 testcases/commands/insmod/Makefile
>  create mode 100755 testcases/commands/insmod/insmod01.sh
>  create mode 100644 testcases/commands/insmod/ltp_insmod01.c
> 
> diff --git a/runtest/commands b/runtest/commands
> index db89424..abbbd96 100644
> --- a/runtest/commands
> +++ b/runtest/commands
> @@ -41,3 +41,4 @@ mkfs01_ntfs mkfs01.sh -f ntfs
>  mkswap01 mkswap01.sh
>  which01 which01.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..e5e68b6
> --- /dev/null
> +++ b/testcases/commands/insmod/Makefile
> @@ -0,0 +1,36 @@
> +#
> +#    Copyright (c) 2016 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 := ltp_insmod01.o
> +
> +else
> +
> +top_srcdir		?= ../../..
> +include $(top_srcdir)/include/mk/testcases.mk
> +
> +REQ_VERSION_MAJOR       := 2
> +REQ_VERSION_PATCH       := 6
> +MAKE_TARGETS            := ltp_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..f19c068
> --- /dev/null
> +++ b/testcases/commands/insmod/insmod01.sh
> @@ -0,0 +1,71 @@
> +#!/bin/sh
> +#
> +# Copyright (c) 2016 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
> +
> +	tst_module_exists ltp_insmod01.ko
> +
> +	inserted=0
> +
> +	TST_CLEANUP="cleanup"
> +}
> +
> +cleanup()
> +{
> +	if [ $inserted -ne 0 ]; then
> +		echo "about to rmmod ltp_insmod01"
> +		rmmod ltp_insmod01
> +		if [ $? -ne 0 ]; then
> +			echo "failed to rmmod ltp_insmod01"
> +		fi
> +	fi
> +}
> +
> +insmod_test()
> +{
> +	insmod "$TST_MODPATH"
> +	if [ $? -ne 0 ]; then
> +		tst_resm TFAIL "'insmod' failed."
> +		return
> +	fi
> +	inserted=1
> +
> +	grep -q ltp_insmod01 /proc/modules
> +
> +	if [ $? -ne 0 ]; then
> +		tst_resm TINFO "ltp_insmod01 not found in /proc/modules"
> +		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/ltp_insmod01.c b/testcases/commands/insmod/ltp_insmod01.c
> new file mode 100644
> index 0000000..398714e
> --- /dev/null
> +++ b/testcases/commands/insmod/ltp_insmod01.c
> @@ -0,0 +1,35 @@
> +/*
> + * Copyright (c) 2016 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);
> diff --git a/testcases/lib/test.sh b/testcases/lib/test.sh
> index 9b652c0..56e1c60 100644
> --- a/testcases/lib/test.sh
> +++ b/testcases/lib/test.sh
> @@ -352,6 +352,34 @@ tst_umount()
>  	tst_resm TWARN "Failed to umount($device) after 50 retries"
>  }
>  
> +# Check a module file existence
> +# Should be called after tst_tmpdir()
> +tst_module_exists()
> +{
> +	local mod_name="$1"
> +
> +	if [ -f "$mod_name" ]; then
> +		TST_MODPATH="$mod_name"
> +		return
> +	fi
> +
> +	local mod_path="$LTPROOT/testcases/bin/$mod_name"
> +	if [ -f "$mod_path" ]; then
> +		TST_MODPATH="$mod_path"
> +		return
> +	fi
> +
> +	if [ -n "$TST_TMPDIR" ]; then
> +		mod_path="$TST_TMPDIR/$mod_name"
> +		if [ -f "$mod_path" ]; then
> +			TST_MODPATH="$mod_path"
> +			return
> +		fi
> +	fi
> +
> +	tst_brkm TCONF "Failed to find module '$mod_name'"
> +}
> +
>  # Check that test name is set
>  if [ -z "$TCID" ]; then
>  	tst_brkm TBROK "TCID is not defined"
> 



^ permalink raw reply	[flat|nested] 10+ messages in thread

* [LTP] [PATCH v2] commands/insmod: add new testcase to test insmod(8)
  2016-03-15  8:03       ` [LTP] [PATCH v2] commands/insmod: add " Guangwen Feng
  2016-04-18  2:33         ` Guangwen Feng
@ 2016-04-18 15:44         ` Cyril Hrubis
  2016-04-22  6:28           ` [LTP] [PATCH v3] " Guangwen Feng
  1 sibling, 1 reply; 10+ messages in thread
From: Cyril Hrubis @ 2016-04-18 15:44 UTC (permalink / raw)
  To: ltp

Hi!
> +# Check a module file existence
> +# Should be called after tst_tmpdir()
> +tst_module_exists()
> +{
> +	local mod_name="$1"
> +
> +	if [ -f "$mod_name" ]; then
> +		TST_MODPATH="$mod_name"
> +		return
> +	fi
> +
> +	local mod_path="$LTPROOT/testcases/bin/$mod_name"
> +	if [ -f "$mod_path" ]; then
> +		TST_MODPATH="$mod_path"
> +		return
> +	fi
> +
> +	if [ -n "$TST_TMPDIR" ]; then
> +		mod_path="$TST_TMPDIR/$mod_name"
> +		if [ -f "$mod_path" ]; then
> +			TST_MODPATH="$mod_path"
> +			return
> +		fi
> +	fi

This is not what the lib/tst_module.c does. It tries test startwd which
is recorded before the test does chdir() to the newly created test
directory. Otherwise if the test calls tst_tmpdir() the module in the
directory the test was started in will not be found. So we have to
record the test start working directory in tst_tmpdir() and use it here.


Otherwise it looks good.

-- 
Cyril Hrubis
chrubis@suse.cz

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [LTP] [PATCH v3] commands/insmod: add new testcase to test insmod(8)
  2016-04-18 15:44         ` Cyril Hrubis
@ 2016-04-22  6:28           ` Guangwen Feng
  2016-05-10 16:28             ` Cyril Hrubis
  0 siblings, 1 reply; 10+ messages in thread
From: Guangwen Feng @ 2016-04-22  6:28 UTC (permalink / raw)
  To: ltp

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    | 71 ++++++++++++++++++++++++++++++++
 testcases/commands/insmod/ltp_insmod01.c | 35 ++++++++++++++++
 testcases/lib/test.sh                    | 31 ++++++++++++++
 5 files changed, 174 insertions(+)
 create mode 100644 testcases/commands/insmod/Makefile
 create mode 100755 testcases/commands/insmod/insmod01.sh
 create mode 100644 testcases/commands/insmod/ltp_insmod01.c

diff --git a/runtest/commands b/runtest/commands
index db89424..abbbd96 100644
--- a/runtest/commands
+++ b/runtest/commands
@@ -41,3 +41,4 @@ mkfs01_ntfs mkfs01.sh -f ntfs
 mkswap01 mkswap01.sh
 which01 which01.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..e5e68b6
--- /dev/null
+++ b/testcases/commands/insmod/Makefile
@@ -0,0 +1,36 @@
+#
+#    Copyright (c) 2016 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 := ltp_insmod01.o
+
+else
+
+top_srcdir		?= ../../..
+include $(top_srcdir)/include/mk/testcases.mk
+
+REQ_VERSION_MAJOR       := 2
+REQ_VERSION_PATCH       := 6
+MAKE_TARGETS            := ltp_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..f19c068
--- /dev/null
+++ b/testcases/commands/insmod/insmod01.sh
@@ -0,0 +1,71 @@
+#!/bin/sh
+#
+# Copyright (c) 2016 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
+
+	tst_module_exists ltp_insmod01.ko
+
+	inserted=0
+
+	TST_CLEANUP="cleanup"
+}
+
+cleanup()
+{
+	if [ $inserted -ne 0 ]; then
+		echo "about to rmmod ltp_insmod01"
+		rmmod ltp_insmod01
+		if [ $? -ne 0 ]; then
+			echo "failed to rmmod ltp_insmod01"
+		fi
+	fi
+}
+
+insmod_test()
+{
+	insmod "$TST_MODPATH"
+	if [ $? -ne 0 ]; then
+		tst_resm TFAIL "'insmod' failed."
+		return
+	fi
+	inserted=1
+
+	grep -q ltp_insmod01 /proc/modules
+
+	if [ $? -ne 0 ]; then
+		tst_resm TINFO "ltp_insmod01 not found in /proc/modules"
+		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/ltp_insmod01.c b/testcases/commands/insmod/ltp_insmod01.c
new file mode 100644
index 0000000..398714e
--- /dev/null
+++ b/testcases/commands/insmod/ltp_insmod01.c
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2016 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);
diff --git a/testcases/lib/test.sh b/testcases/lib/test.sh
index 458bbca..70345e5 100644
--- a/testcases/lib/test.sh
+++ b/testcases/lib/test.sh
@@ -113,6 +113,9 @@ tst_tmpdir()
 	TST_TMPDIR=$(mktemp -d "$TMPDIR/$TCID.XXXXXXXXXX")
 
 	chmod 777 "$TST_TMPDIR"
+
+	TST_STARTWD=$(pwd)
+
 	cd "$TST_TMPDIR"
 }
 
@@ -343,6 +346,34 @@ tst_umount()
 	tst_resm TWARN "Failed to umount($device) after 50 retries"
 }
 
+# Check a module file existence
+# Should be called after tst_tmpdir()
+tst_module_exists()
+{
+	local mod_name="$1"
+
+	if [ -f "$mod_name" ]; then
+		TST_MODPATH="$mod_name"
+		return
+	fi
+
+	local mod_path="$LTPROOT/testcases/bin/$mod_name"
+	if [ -f "$mod_path" ]; then
+		TST_MODPATH="$mod_path"
+		return
+	fi
+
+	if [ -n "$TST_TMPDIR" ]; then
+		mod_path="$TST_STARTWD/$mod_name"
+		if [ -f "$mod_path" ]; then
+			TST_MODPATH="$mod_path"
+			return
+		fi
+	fi
+
+	tst_brkm TCONF "Failed to find module '$mod_name'"
+}
+
 # Check that test name is set
 if [ -z "$TCID" ]; then
 	tst_brkm TBROK "TCID is not defined"
-- 
1.8.4.2




^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [LTP] [PATCH v3] commands/insmod: add new testcase to test insmod(8)
  2016-04-22  6:28           ` [LTP] [PATCH v3] " Guangwen Feng
@ 2016-05-10 16:28             ` Cyril Hrubis
  0 siblings, 0 replies; 10+ messages in thread
From: Cyril Hrubis @ 2016-05-10 16:28 UTC (permalink / raw)
  To: ltp

Hi!
I've changed the commit description so that it says that
tst_module_exists function was added to the shell library and pushed,
thanks.

-- 
Cyril Hrubis
chrubis@suse.cz

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2016-05-10 16:28 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-12-18  7:07 [LTP] [PATCH 1/2] commands/lsmod: Added new testcase to test lsmod(8) Guangwen Feng
2015-12-18  7:07 ` [LTP] [PATCH 2/2] commands/insmod: Added new testcase to test insmod(8) Guangwen Feng
2016-01-27 16:28   ` Cyril Hrubis
2016-01-28  9:42     ` Guangwen Feng
2016-03-15  8:03       ` [LTP] [PATCH v2] commands/insmod: add " Guangwen Feng
2016-04-18  2:33         ` Guangwen Feng
2016-04-18 15:44         ` Cyril Hrubis
2016-04-22  6:28           ` [LTP] [PATCH v3] " Guangwen Feng
2016-05-10 16:28             ` Cyril Hrubis
2016-01-27 16:11 ` [LTP] [PATCH 1/2] commands/lsmod: Added new testcase to test lsmod(8) Cyril Hrubis

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.