[LTP] [PATCH v2] containers/netns/: fix kernel supporting check
Guangwen Feng
fenggw-fnst@cn.fujitsu.com
Mon Sep 21 04:01:14 CEST 2015
On RHEL5.11GA, test result should be TCONF but not TFAIL since
setns() is not supported, so fix this.
Signed-off-by: Guangwen Feng <fenggw-fnst@cn.fujitsu.com>
---
testcases/kernel/containers/netns/netns_helper.sh | 4 +++
testcases/kernel/containers/netns/netns_sysfs.sh | 5 ++++
testcases/kernel/containers/share/setns_check.c | 32 +++++++++++++++++++++++
3 files changed, 41 insertions(+)
create mode 100644 testcases/kernel/containers/share/setns_check.c
diff --git a/testcases/kernel/containers/netns/netns_helper.sh b/testcases/kernel/containers/netns/netns_helper.sh
index cea1541..ac08125 100755
--- a/testcases/kernel/containers/netns/netns_helper.sh
+++ b/testcases/kernel/containers/netns/netns_helper.sh
@@ -110,6 +110,10 @@ netns_setup()
case "$1" in
ns_exec)
+ setns_check
+ if [ $? -eq 32 ]; then
+ tst_brkm TCONF "setns not supported"
+ fi
netns_ns_exec_setup
TST_CLEANUP=netns_ns_exec_cleanup
;;
diff --git a/testcases/kernel/containers/netns/netns_sysfs.sh b/testcases/kernel/containers/netns/netns_sysfs.sh
index c10fa36..06de00f 100755
--- a/testcases/kernel/containers/netns/netns_sysfs.sh
+++ b/testcases/kernel/containers/netns/netns_sysfs.sh
@@ -26,6 +26,11 @@ TCID="netns_sysfs"
TST_TOTAL=2
. test.sh
+setns_check
+if [ $? -eq 32 ]; then
+ tst_brkm TCONF "setns not supported"
+fi
+
cleanup()
{
tst_rmdir
diff --git a/testcases/kernel/containers/share/setns_check.c b/testcases/kernel/containers/share/setns_check.c
new file mode 100644
index 0000000..7ba891c
--- /dev/null
+++ b/testcases/kernel/containers/share/setns_check.c
@@ -0,0 +1,32 @@
+/* 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 version 2 the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ ***********************************************************************
+ * Check for setns() availability, should be called before ns_exec.
+ *
+ */
+
+#include "test.h"
+#include "linux_syscall_numbers.h"
+
+char *TCID = "setns_check";
+
+int main(void)
+{
+ if (syscall(__NR_setns, -1, 0) == -1 && errno == ENOSYS)
+ tst_brkm(TCONF, NULL, "setns is not supported in the kernel");
+ else
+ return 0;
+}
--
1.8.4.2
More information about the Ltp
mailing list