svn commit: r248603 - in head/tools/regression: pjdfstest security/cap_test

Pawel Jakub Dawidek pjd at FreeBSD.org
Thu Mar 21 23:07:05 UTC 2013


Author: pjd
Date: Thu Mar 21 23:07:04 2013
New Revision: 248603
URL: http://svnweb.freebsd.org/changeset/base/248603

Log:
  Update regression tests after adding chflagsat(2).
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  head/tools/regression/pjdfstest/Makefile
  head/tools/regression/pjdfstest/pjdfstest.c
  head/tools/regression/security/cap_test/cap_test_capabilities.c

Modified: head/tools/regression/pjdfstest/Makefile
==============================================================================
--- head/tools/regression/pjdfstest/Makefile	Thu Mar 21 23:06:11 2013	(r248602)
+++ head/tools/regression/pjdfstest/Makefile	Thu Mar 21 23:07:04 2013	(r248603)
@@ -6,7 +6,7 @@ ${PROG}:	${PROG}.c
 	@OSTYPE=`uname`; \
 	CFLAGS=-D__OS_$${OSTYPE}__; \
 	if [ $$OSTYPE = "FreeBSD" ]; then \
-		CFLAGS="$$CFLAGS -DHAS_LCHMOD -DHAS_CHFLAGS -DHAS_FCHFLAGS -DHAS_LCHFLAGS -DHAS_FREEBSD_ACL -DHAS_BINDAT -DHAS_CONNECTAT"; \
+		CFLAGS="$$CFLAGS -DHAS_LCHMOD -DHAS_CHFLAGS -DHAS_FCHFLAGS -DHAS_CHFLAGSAT -DHAS_LCHFLAGS -DHAS_FREEBSD_ACL -DHAS_BINDAT -DHAS_CONNECTAT"; \
 	elif [ $$OSTYPE = "SunOS" ]; then \
 		CFLAGS="$$CFLAGS -DHAS_TRUNCATE64 -DHAS_STAT64"; \
 		CFLAGS="$$CFLAGS -lsocket"; \

Modified: head/tools/regression/pjdfstest/pjdfstest.c
==============================================================================
--- head/tools/regression/pjdfstest/pjdfstest.c	Thu Mar 21 23:06:11 2013	(r248602)
+++ head/tools/regression/pjdfstest/pjdfstest.c	Thu Mar 21 23:07:04 2013	(r248603)
@@ -105,6 +105,9 @@ enum action {
 #ifdef HAS_FCHFLAGS
 	ACTION_FCHFLAGS,
 #endif
+#ifdef HAS_CHFLAGSAT
+	ACTION_CHFLAGSAT,
+#endif
 #ifdef HAS_LCHFLAGS
 	ACTION_LCHFLAGS,
 #endif
@@ -183,6 +186,9 @@ static struct syscall_desc syscalls[] = 
 #ifdef HAS_FCHFLAGS
 	{ "fchflags", ACTION_FCHFLAGS, { TYPE_DESCRIPTOR, TYPE_STRING, TYPE_NONE } },
 #endif
+#ifdef HAS_CHFLAGSAT
+	{ "chflagsat", ACTION_CHFLAGSAT, { TYPE_DESCRIPTOR, TYPE_STRING, TYPE_STRING, TYPE_STRING, TYPE_NONE } },
+#endif
 #ifdef HAS_LCHFLAGS
 	{ "lchflags", ACTION_LCHFLAGS, { TYPE_STRING, TYPE_STRING, TYPE_NONE } },
 #endif
@@ -306,6 +312,11 @@ static struct flag linkat_flags[] = {
 	{ 0, NULL }
 };
 
+static struct flag chflagsat_flags[] = {
+	{ AT_SYMLINK_NOFOLLOW, "AT_SYMLINK_NOFOLLOW" },
+	{ 0, NULL }
+};
+
 static struct flag fchmodat_flags[] = {
 	{ AT_SYMLINK_NOFOLLOW, "AT_SYMLINK_NOFOLLOW" },
 	{ 0, NULL }
@@ -829,6 +840,13 @@ call_syscall(struct syscall_desc *scall,
 		    (unsigned long)str2flags(chflags_flags, STR(1)));
 		break;
 #endif
+#ifdef HAS_CHFLAGSAT
+	case ACTION_CHFLAGSAT:
+		rval = chflagsat(NUM(0), STR(1),
+		    (unsigned long)str2flags(chflags_flags, STR(2)),
+		    (int)str2flags(chflagsat_flags, STR(3)));
+		break;
+#endif
 #ifdef HAS_LCHFLAGS
 	case ACTION_LCHFLAGS:
 		rval = lchflags(STR(0),

Modified: head/tools/regression/security/cap_test/cap_test_capabilities.c
==============================================================================
--- head/tools/regression/security/cap_test/cap_test_capabilities.c	Thu Mar 21 23:06:11 2013	(r248602)
+++ head/tools/regression/security/cap_test/cap_test_capabilities.c	Thu Mar 21 23:07:04 2013	(r248603)
@@ -293,14 +293,12 @@ try_file_ops(int filefd, int dirfd, cap_
 	CHECK_RESULT(fchflags, CAP_FCHFLAGS,
 	    ret == 0 || (is_nfs && errno == EOPNOTSUPP));
 
-#ifdef TODO	/* No such syscalls yet. */
-	ret = openat(dirfd, "cap_fchflagsat", O_CREAT, 0600);
+	ret = openat(dirfd, "cap_chflagsat", O_CREAT, 0600);
 	CHECK(ret >= 0);
 	CHECK(close(ret) == 0);
-	ret = fchflagsat(dfd_cap, "cap_fchflagsat", UF_NODUMP, 0);
-	CHECK_RESULT(fchflagsat, CAP_FCHFLAGSAT | CAP_LOOKUP, ret == 0);
-	CHECK(unlinkat(dirfd, "cap_fchflagsat", 0) == 0);
-#endif
+	ret = chflagsat(dfd_cap, "cap_chflagsat", UF_NODUMP, 0);
+	CHECK_RESULT(chflagsat, CAP_CHFLAGSAT | CAP_LOOKUP, ret == 0);
+	CHECK(unlinkat(dirfd, "cap_chflagsat", 0) == 0);
 
 	ret = fchown(fd_cap, -1, -1);
 	CHECK_RESULT(fchown, CAP_FCHOWN, ret == 0);


More information about the svn-src-all mailing list