All of lore.kernel.org
 help / color / mirror / Atom feed
From: Zeng Linggang <zenglg.jy@cn.fujitsu.com>
To: Jan Stancek <jstancek@redhat.com>
Cc: ltp-list <ltp-list@lists.sourceforge.net>
Subject: [LTP] [PATCH v2] securebits: some cleanup
Date: Fri, 26 Sep 2014 16:06:57 +0800	[thread overview]
Message-ID: <1411718817.9511.9.camel@G08JYZSD130126> (raw)
In-Reply-To: <179118855.6420138.1407923193096.JavaMail.zimbra@redhat.com>

* Remove .sh and divide into three seperate tests.

* Check the header <linux/securebits.h>.

* Use tst_brkm instead of tst_exit() that follows tst_resm.

* Some cleanup

Signed-off-by: Zeng Linggang <zenglg.jy@cn.fujitsu.com>
---
 runtest/securebits                                 |  4 +-
 testcases/kernel/security/securebits/Makefile      |  9 ++-
 .../kernel/security/securebits/check_keepcaps.c    | 75 +++++++++-------------
 .../kernel/security/securebits/run_securebits.sh   | 20 ------
 4 files changed, 36 insertions(+), 72 deletions(-)
 delete mode 100644 testcases/kernel/security/securebits/run_securebits.sh

diff --git a/runtest/securebits b/runtest/securebits
index d78a66f..64e6e0a 100644
--- a/runtest/securebits
+++ b/runtest/securebits
@@ -1,2 +1,4 @@
 #DESCRIPTION:securebits tests
-Securebits	run_securebits.sh
+check_keepcaps01 check_keepcaps 1
+check_keepcaps02 check_keepcaps 2
+check_keepcaps03 check_keepcaps 3
diff --git a/testcases/kernel/security/securebits/Makefile b/testcases/kernel/security/securebits/Makefile
index 51018d9..e379b7c 100644
--- a/testcases/kernel/security/securebits/Makefile
+++ b/testcases/kernel/security/securebits/Makefile
@@ -4,7 +4,8 @@
 ##                                                                            ##
 ## 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.                                        ##
+## 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 ##
@@ -12,8 +13,8 @@
 ## for more details.                                                          ##
 ##                                                                            ##
 ## You should have received a copy of the GNU General Public License          ##
-## along with this program;  if not, write to the Free Software               ##
-## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA    ##
+## along with this program;  if not, write to the Free Software Foundation,   ##
+## Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA           ##
 ##                                                                            ##
 ################################################################################
 
@@ -23,6 +24,4 @@ include $(top_srcdir)/include/mk/testcases.mk
 
 LDLIBS			+= $(CAP_LIBS)
 
-INSTALL_TARGETS		:= *.sh
-
 include $(top_srcdir)/include/mk/generic_leaf_target.mk
diff --git a/testcases/kernel/security/securebits/check_keepcaps.c b/testcases/kernel/security/securebits/check_keepcaps.c
index 6e195c6..3b6e24e 100644
--- a/testcases/kernel/security/securebits/check_keepcaps.c
+++ b/testcases/kernel/security/securebits/check_keepcaps.c
@@ -5,7 +5,6 @@
 #include <sys/capability.h>
 #endif
 #include <sys/prctl.h>
-#include <linux/securebits.h>
 #include "usctest.h"
 #include "test.h"
 
@@ -30,7 +29,9 @@
 char *TCID = "keepcaps";
 int TST_TOTAL = 1;
 
-#ifdef HAVE_LIBCAP
+#if (HAVE_LINUX_SECUREBITS_H && HAVE_LIBCAP)
+#include <linux/securebits.h>
+
 static int eff_caps_empty(cap_t c)
 {
 	int i, ret, empty = 1;
@@ -75,28 +76,19 @@ static void do_setuid(int expect_privs)
 	int have_privs;
 
 	ret = setuid(1000);
-	if (ret) {
-		tst_resm(TERRNO | TFAIL, "setuid failed");
-		tst_exit();
-	}
+	if (ret)
+		tst_brkm(TERRNO | TFAIL, NULL, "setuid failed");
 
 	have_privs = am_privileged();
-	if (have_privs && expect_privs == EXPECT_PRIVS) {
-		tst_resm(TPASS, "kept privs as expected");
-		tst_exit();
-	}
-	if (!have_privs && expect_privs == EXPECT_PRIVS) {
-		tst_resm(TFAIL, "expected to keep privs but did not");
-		tst_exit();
-	}
-	if (!have_privs && expect_privs == EXPECT_NOPRIVS) {
-		tst_resm(TPASS, "dropped privs as expected");
-		tst_exit();
-	}
+	if (have_privs && expect_privs == EXPECT_PRIVS)
+		tst_brkm(TPASS, NULL, "kept privs as expected");
+	if (!have_privs && expect_privs == EXPECT_PRIVS)
+		tst_brkm(TFAIL, NULL, "expected to keep privs but did not");
+	if (!have_privs && expect_privs == EXPECT_NOPRIVS)
+		tst_brkm(TPASS, NULL, "dropped privs as expected");
 
 	/* have_privs && EXPECT_NOPRIVS */
-	tst_resm(TFAIL, "expected to drop privs but did not");
-	tst_exit();
+	tst_brkm(TFAIL, NULL, "expected to drop privs but did not");
 }
 
 int main(int argc, char *argv[])
@@ -106,64 +98,55 @@ int main(int argc, char *argv[])
 	tst_require_root(NULL);
 
 	ret = prctl(PR_GET_KEEPCAPS);
-	if (ret) {
-		tst_resm(TBROK, "keepcaps was already set?\n");
-		tst_exit();
-	}
+	if (ret)
+		tst_brkm(TBROK, NULL, "keepcaps was already set?\n");
+
+	if (argc < 2)
+		tst_brkm(TBROK, NULL, "Usage: %s <tescase_num>", argv[0]);
 
-	if (argc < 2) {
-		tst_resm(TBROK, "Usage: %s <tescase_num>", argv[0]);
-		tst_exit();
-	}
 	whichtest = atoi(argv[1]);
-	if (whichtest < 1 || whichtest > 3) {
-		tst_resm(TFAIL, "Valid tests are 1-3\n");
-		tst_exit();
-	}
+	if (whichtest < 1 || whichtest > 3)
+		tst_brkm(TFAIL, NULL, "Valid tests are 1-3\n");
+
 	switch (whichtest) {
 	case 1:
 		do_setuid(EXPECT_NOPRIVS);	/* does not return */
 	case 2:
 		ret = prctl(PR_SET_KEEPCAPS, 1);
 		if (ret == -1) {
-			tst_resm(TFAIL | TERRNO, "PR_SET_KEEPCAPS failed\n");
-			tst_exit();
+			tst_brkm(TFAIL | TERRNO, NULL,
+				 "PR_SET_KEEPCAPS failed\n");
 		}
 		ret = prctl(PR_GET_KEEPCAPS);
 		if (!ret) {
-			tst_resm(TFAIL | TERRNO,
+			tst_brkm(TFAIL | TERRNO, NULL,
 				 "PR_SET_KEEPCAPS did not set keepcaps\n");
-			tst_exit();
 		}
 		do_setuid(EXPECT_PRIVS);	/* does not return */
 	case 3:
 		ret = prctl(PR_GET_SECUREBITS);
 		ret = prctl(PR_SET_SECUREBITS, ret | SECBIT_KEEP_CAPS);
 		if (ret == -1) {
-			tst_resm(TFAIL | TERRNO, "PR_SET_SECUREBITS failed\n");
-			tst_exit();
+			tst_brkm(TFAIL | TERRNO, NULL,
+				 "PR_SET_SECUREBITS failed\n");
 		}
 		ret = prctl(PR_GET_KEEPCAPS);
 		if (!ret) {
-			tst_resm(TFAIL | TERRNO,
+			tst_brkm(TFAIL | TERRNO, NULL,
 				 "PR_SET_SECUREBITS did not set keepcaps\n");
-			tst_exit();
 		}
 		do_setuid(EXPECT_PRIVS);	/* does not return */
 	default:
-		tst_resm(TFAIL, "should not reach here\n");
-		tst_exit();
+		tst_brkm(TFAIL, NULL, "Valid tests are 1-3\n");
 	}
-	tst_resm(TFAIL, "should not reach here\n");
-	tst_exit();
+	tst_brkm(TFAIL, NULL, "should not reach here\n");
 }
 
 #else
 
 int main(void)
 {
-	tst_resm(TCONF, "Test was compiled without libcap.");
-	tst_exit();
+	tst_brkm(TCONF, NULL, "linux/securebits.h or libcap is not existence.");
 }
 
 #endif /* HAVE_LIBCAP */
diff --git a/testcases/kernel/security/securebits/run_securebits.sh b/testcases/kernel/security/securebits/run_securebits.sh
deleted file mode 100644
index 4d9e272..0000000
--- a/testcases/kernel/security/securebits/run_securebits.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/sh
-
-echo "testing keepcaps"
-check_keepcaps 1
-tmp=$?
-if [ $tmp -ne 0 ]; then
-	exit_code=$tmp
-fi
-check_keepcaps 2
-tmp=$?
-if [ $tmp -ne 0 ]; then
-	exit_code=$tmp
-fi
-check_keepcaps 3
-tmp=$?
-if [ $tmp -ne 0 ]; then
-	exit_code=$tmp
-fi
-
-exit $exit_code
-- 
1.9.3




------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

  parent reply	other threads:[~2014-09-26  8:07 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-07  9:06 [LTP] [PATCH] securebits: some cleanup Zeng Linggang
2014-08-13  9:46 ` Jan Stancek
2014-09-25 10:00   ` Zeng Linggang
2014-09-26  8:06   ` Zeng Linggang [this message]
2014-09-26 12:43     ` [LTP] [PATCH v2] " Jan Stancek
2014-10-08  7:23       ` Zeng Linggang
2014-10-08  7:49       ` [LTP] [PATCH v3] " Zeng Linggang
2014-10-13  9:34         ` Jan Stancek
2014-10-15 11:25         ` Cyril Hrubis
2014-10-15 11:32       ` [LTP] [PATCH v2] " Cyril Hrubis

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1411718817.9511.9.camel@G08JYZSD130126 \
    --to=zenglg.jy@cn.fujitsu.com \
    --cc=jstancek@redhat.com \
    --cc=ltp-list@lists.sourceforge.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.