svn commit: r203456 - projects/capabilities8/tools/tools/syscall_timing

Robert Watson rwatson at FreeBSD.org
Wed Feb 3 22:31:52 UTC 2010


Author: rwatson
Date: Wed Feb  3 22:31:51 2010
New Revision: 203456
URL: http://svn.freebsd.org/changeset/base/203456

Log:
  Merge c174284 from the TrustedBSD Capabilities p4 branch to capabilities8:
  
    Micro-benchmarks for chroot() and setuid().
  
  Sponsored by:	Google, Inc.

Modified:
  projects/capabilities8/tools/tools/syscall_timing/syscall_timing.c

Modified: projects/capabilities8/tools/tools/syscall_timing/syscall_timing.c
==============================================================================
--- projects/capabilities8/tools/tools/syscall_timing/syscall_timing.c	Wed Feb  3 22:20:57 2010	(r203455)
+++ projects/capabilities8/tools/tools/syscall_timing/syscall_timing.c	Wed Feb  3 22:31:51 2010	(r203456)
@@ -565,6 +565,38 @@ test_pdfork_exec(int num)
 	benchmark_stop();
 }
 
+void
+test_chroot(int num)
+{
+	int i;
+
+	if (chroot("/") < 0)
+		err(-1, "test_chroot: chroot");
+	benchmark_start();
+	for (i = 0; i < num; i++) {
+		if (chroot("/") < 0)
+			err(-1, "test_chroot: chroot");
+	}
+	benchmark_stop();
+}
+
+void
+test_setuid(int num)
+{
+	uid_t uid;
+	int i;
+
+	uid = getuid();
+	if (setuid(uid) < 0)
+		err(-1, "test_setuid: setuid");
+	benchmark_start();
+	for (i = 0; i < num; i++) {
+		if (setuid(uid) < 0)
+			err(-1, "test_setuid: setuid");
+	}
+	benchmark_stop();
+}
+
 /*
  * A bit like sandbox, in that a process is forked, IPC ping-pong is done,
  * but with none of the sandboxing goo.
@@ -773,6 +805,8 @@ static const struct test tests[] = {
 	{ "fork_exec", test_fork_exec },
 	{ "vfork_exec", test_vfork_exec },
 	{ "pdfork_exec", test_pdfork_exec },
+	{ "chroot", test_chroot },
+	{ "setuid", test_setuid },
 	{ "pingpong", test_pingpong },
 	{ "sandbox", test_sandbox },
 };


More information about the svn-src-projects mailing list