[darwinbuild-changes] [919] branches/PR-8817822/testing

source_changes at macosforge.org source_changes at macosforge.org
Mon Feb 7 17:39:43 PST 2011


Revision: 919
          http://trac.macosforge.org/projects/darwinbuild/changeset/919
Author:   wsiegrist at apple.com
Date:     2011-02-07 17:39:43 -0800 (Mon, 07 Feb 2011)
Log Message:
-----------
New test suite for darwintrace.

Added Paths:
-----------
    branches/PR-8817822/testing/darwintrace/
    branches/PR-8817822/testing/darwintrace/close-test
    branches/PR-8817822/testing/darwintrace/exec
    branches/PR-8817822/testing/darwintrace/realpath
    branches/PR-8817822/testing/darwintrace/run-tests.sh

Added: branches/PR-8817822/testing/darwintrace/close-test
===================================================================
--- branches/PR-8817822/testing/darwintrace/close-test	                        (rev 0)
+++ branches/PR-8817822/testing/darwintrace/close-test	2011-02-08 01:39:43 UTC (rev 919)
@@ -0,0 +1,16 @@
+#!/usr/bin/env python
+import os
+for i in range(81,102):
+	print " ... trying to close(%s)" % i
+	try:
+		os.close(i)
+		print " ... closed %s" % i
+		exit(1)
+	except Exception, e:
+		# test for EBADF
+		if e.errno == 9:
+			print " ... got EBADF as expected"
+		else:
+			print " ... got wrong error back: %s" % e
+			exit(2)
+exit(0)


Property changes on: branches/PR-8817822/testing/darwintrace/close-test
___________________________________________________________________
Added: svn:executable
   + *

Added: branches/PR-8817822/testing/darwintrace/exec
===================================================================
--- branches/PR-8817822/testing/darwintrace/exec	                        (rev 0)
+++ branches/PR-8817822/testing/darwintrace/exec	2011-02-08 01:39:43 UTC (rev 919)
@@ -0,0 +1,3 @@
+#!/usr/bin/env python
+import subprocess, sys
+subprocess.call(sys.argv[1:])


Property changes on: branches/PR-8817822/testing/darwintrace/exec
___________________________________________________________________
Added: svn:executable
   + *

Added: branches/PR-8817822/testing/darwintrace/realpath
===================================================================
--- branches/PR-8817822/testing/darwintrace/realpath	                        (rev 0)
+++ branches/PR-8817822/testing/darwintrace/realpath	2011-02-08 01:39:43 UTC (rev 919)
@@ -0,0 +1,4 @@
+#!/usr/bin/env python
+import os
+import sys
+print os.path.realpath(sys.argv[1])


Property changes on: branches/PR-8817822/testing/darwintrace/realpath
___________________________________________________________________
Added: svn:executable
   + *

Added: branches/PR-8817822/testing/darwintrace/run-tests.sh
===================================================================
--- branches/PR-8817822/testing/darwintrace/run-tests.sh	                        (rev 0)
+++ branches/PR-8817822/testing/darwintrace/run-tests.sh	2011-02-08 01:39:43 UTC (rev 919)
@@ -0,0 +1,78 @@
+#!/bin/bash
+#
+# Run test suite for darwintrace
+#
+set -e
+set -x
+pushd $(dirname $0) >> /dev/null
+
+PREFIX=/tmp/testing/darwintrace
+LOGS=$PREFIX/logs
+ROOT=$PREFIX/root
+BIN=$PREFIX/bin
+
+DARWINTRACE="/usr/local/share/darwinbuild/darwintrace.dylib"
+export DYLD_FORCE_FLAT_NAMESPACE=1
+export DYLD_INSERT_LIBRARIES=$DARWINTRACE
+export DARWINTRACE_LOG="${LOGS}/trace.log"
+
+echo "INFO: Cleaning up testing area ..."
+rm -rf $PREFIX
+mkdir -p $PREFIX
+mkdir -p $LOGS
+mkdir -p $BIN
+
+cp realpath $BIN/realpath
+REALPATH=$BIN/realpath
+
+cp exec $BIN/exec
+EXEC=$BIN/exec
+
+cp close-test $BIN/close-test
+
+
+echo "========== TEST: execve() Trace =========="
+for FILE in cp echo chmod  date df expr hostname ls ps pwd test;
+do
+	# some of these commands will error out when run without arguments,
+	#  so just ignore that since all we want is the execve() call to happen
+	set +e	
+	$EXEC /bin/$FILE 2>&1 >> /dev/null
+	set -e
+	LOGPAT="Python\[[0-9]+\][[:space:]]execve[[:space:]]/bin/${FILE}"
+	C=$(grep -cE $LOGPAT $DARWINTRACE_LOG)
+    test $C -eq 1
+done
+set -e
+
+echo "========== TEST: close() Safety =========="
+$BIN/close-test
+
+echo "========== TEST: open() Trace =========="
+for FILE in /System/Library/LaunchDaemons/*.plist;
+do
+	cat $FILE >> /dev/null;
+	RP=$($REALPATH $FILE);
+	LOGPAT="cat\[[0-9]+\][[:space:]]open[[:space:]]${RP}"
+	C=$(grep -cE $LOGPAT $DARWINTRACE_LOG)
+    test $C -eq 1
+done
+
+echo "========== TEST: readlink() Trace =========="
+for FILE in $(find /System/Library/Frameworks/*Foundation.framework -type l | xargs);
+do
+	readlink $FILE
+	LOGPAT="readlink\[[0-9]+\][[:space:]]readlink[[:space:]]${FILE}"
+	C=$(grep -cE $LOGPAT $DARWINTRACE_LOG)
+    test $C -eq 1
+done
+
+
+#echo "========== TEST: Redirection =========="
+#cp $DARWINTRACE $ROOT/
+#DARWINTRACE_REDIRECT="${ROOT}"
+#DARWINTRACE_LOG="${LOGS}/Redirection.log"
+
+
+popd >> /dev/null
+echo "INFO: Done testing!"


Property changes on: branches/PR-8817822/testing/darwintrace/run-tests.sh
___________________________________________________________________
Added: svn:executable
   + *
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/darwinbuild-changes/attachments/20110207/8e8b32d5/attachment.html>


More information about the darwinbuild-changes mailing list