Revision: 922 http://trac.macosforge.org/projects/darwinbuild/changeset/922 Author: wsiegrist@apple.com Date: 2011-02-08 09:31:49 -0800 (Tue, 08 Feb 2011) Log Message: ----------- Add redirection test to darwintrace suite Modified Paths: -------------- branches/PR-8817822/testing/darwintrace/run-tests.sh Added Paths: ----------- branches/PR-8817822/testing/darwintrace/redirection-test Added: branches/PR-8817822/testing/darwintrace/redirection-test =================================================================== --- branches/PR-8817822/testing/darwintrace/redirection-test (rev 0) +++ branches/PR-8817822/testing/darwintrace/redirection-test 2011-02-08 17:31:49 UTC (rev 922) @@ -0,0 +1,5 @@ +#!/bin/bash +PREFIX=$1 +ROOT=$PREFIX/root + +/bin/cat $PREFIX/datafile Property changes on: branches/PR-8817822/testing/darwintrace/redirection-test ___________________________________________________________________ Added: svn:executable + * Modified: branches/PR-8817822/testing/darwintrace/run-tests.sh =================================================================== --- branches/PR-8817822/testing/darwintrace/run-tests.sh 2011-02-08 01:44:31 UTC (rev 921) +++ branches/PR-8817822/testing/darwintrace/run-tests.sh 2011-02-08 17:31:49 UTC (rev 922) @@ -19,18 +19,23 @@ echo "INFO: Cleaning up testing area ..." rm -rf $PREFIX mkdir -p $PREFIX +mkdir -p $ROOT mkdir -p $LOGS mkdir -p $BIN -cp realpath $BIN/realpath REALPATH=$BIN/realpath +cp realpath $REALPATH -cp exec $BIN/exec EXEC=$BIN/exec +cp exec $EXEC -cp close-test $BIN/close-test +CLOSETEST=$BIN/close-test +cp close-test $CLOSETEST +REDIRECTIONTEST=$BIN/redirection-test +cp redirection-test $REDIRECTIONTEST + echo "========== TEST: execve() Trace ==========" for FILE in cp echo chmod date df expr hostname ls ps pwd test; do @@ -41,12 +46,12 @@ set -e LOGPAT="Python\[[0-9]+\][[:space:]]execve[[:space:]]/bin/${FILE}" C=$(grep -cE $LOGPAT $DARWINTRACE_LOG) - test $C -eq 1 + test $C -eq 1 done set -e echo "========== TEST: close() Safety ==========" -$BIN/close-test +$CLOSETEST echo "========== TEST: open() Trace ==========" for FILE in /System/Library/LaunchDaemons/*.plist; @@ -55,7 +60,7 @@ RP=$($REALPATH $FILE); LOGPAT="cat\[[0-9]+\][[:space:]]open[[:space:]]${RP}" C=$(grep -cE $LOGPAT $DARWINTRACE_LOG) - test $C -eq 1 + test $C -eq 1 done echo "========== TEST: readlink() Trace ==========" @@ -64,15 +69,33 @@ readlink $FILE LOGPAT="readlink\[[0-9]+\][[:space:]]readlink[[:space:]]${FILE}" C=$(grep -cE $LOGPAT $DARWINTRACE_LOG) - test $C -eq 1 + test $C -eq 1 done +echo "========== TEST: Redirection ==========" +mkdir -p $ROOT/$PREFIX +mkdir -p $ROOT/usr/lib +cp /usr/lib/libSystem.B.dylib $ROOT/usr/lib/libSystem.B.dylib +mkdir -p $ROOT/bin +cp /bin/cat $ROOT/bin/cat +echo "Outside of root" > $PREFIX/datafile +echo "Inside of root" > $ROOT/$PREFIX/datafile +export DARWINTRACE_REDIRECT="${ROOT}" +export DARWIN_BUILDROOT="${ROOT}" +$REDIRECTIONTEST $PREFIX +unset DARWINTRACE_REDIRECT +unset DARWIN_BUILDROOT +# test that execve(/bin/cat) was redirected +RP=$($REALPATH ${ROOT}/bin/cat) +LOGPAT="bash\[[0-9]+\][[:space:]]execve[[:space:]]${RP}" +C=$(grep -cE $LOGPAT $DARWINTRACE_LOG) +test $C -eq 1 +# test that open(/tmp/.../datafile) does not get redirected +# since /tmp/ is one of the redirection exceptions +RP=$($REALPATH ${PREFIX}/datafile) +LOGPAT="cat\[[0-9]+\][[:space:]]open[[:space:]]${RP}" +C=$(grep -cE $LOGPAT $DARWINTRACE_LOG) +test $C -eq 1 -#echo "========== TEST: Redirection ==========" -#cp $DARWINTRACE $ROOT/ -#DARWINTRACE_REDIRECT="${ROOT}" -#DARWINTRACE_LOG="${LOGS}/Redirection.log" - - popd >> /dev/null echo "INFO: Done testing!"
participants (1)
-
source_changes@macosforge.org