From 7bb8e9b9b24141f373ed70d7e6674a245c0227cf Mon Sep 17 00:00:00 2001 From: "thomasvl@gmail.com" Date: Mon, 22 Sep 2008 23:33:44 +0000 Subject: - Added GTMTestTimer.h for doing high fidelity timings. - Added leaks checking to iPhone unit test script. It can be controlled by the GTM_DISABLE_LEAKS environment variable - Added ability to control using zombies to iPhone unit test script. It can be controlled by the GTM_DISABLE_ZOMBIES environment variable - Added ability to control termination to iPhone unit test script. It can be controlled by the GTM_DISABLE_TERMINATION environment variable - Fixed several leaks found with leak checking enabled. - Added configs for different iPhone OS versions. --- UnitTesting/RunIPhoneUnitTest.sh | 37 +++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) (limited to 'UnitTesting/RunIPhoneUnitTest.sh') diff --git a/UnitTesting/RunIPhoneUnitTest.sh b/UnitTesting/RunIPhoneUnitTest.sh index 0089032..1718bda 100755 --- a/UnitTesting/RunIPhoneUnitTest.sh +++ b/UnitTesting/RunIPhoneUnitTest.sh @@ -17,6 +17,27 @@ # Runs all unittests through the iPhone simulator. We don't handle running them # on the device. To run on the device just choose "run". +# Controlling environment variables: +# +# GTM_DISABLE_ZOMBIES - +# Set to a non-zero value to turn off zombie checks that can interfere with +# leak checking. +# +# GTM_DISABLE_LEAKS - +# Set to a non-zero value to turn off the leaks check. +# +# GTM_DISABLE_TERMINATION +# Set to a non-zero value so that the app doesn't terminate when it's finished +# running tests. This is useful when using it with external tools such +# as Instruments. + +ScriptDir=$(dirname $(echo $0 | sed -e "s,^\([^/]\),$(pwd)/\1,")) +ScriptName=$(basename "$0") +ThisScript="${ScriptDir}/${ScriptName}" + +GTMXcodeNote() { + echo ${ThisScript}:${1}: note: GTM ${2} +} if [ "$IPHONEOS_DEPLOYMENT_TARGET" == "" ]; then # We kill the iPhone simulator because otherwise we run into issues where @@ -24,22 +45,30 @@ if [ "$IPHONEOS_DEPLOYMENT_TARGET" == "" ]; then # at this time the iPhone SDK won't allow two simulators running at the same # time. /usr/bin/killall "iPhone Simulator" + export DYLD_ROOT_PATH="$SDKROOT" export DYLD_FRAMEWORK_PATH="$CONFIGURATION_BUILD_DIR" export IPHONE_SIMULATOR_ROOT="$SDKROOT" export CFFIXED_USER_HOME="$USER_LIBRARY_DIR/Application Support/iPhone Simulator/User" - # Encourage errors + # See http://developer.apple.com/technotes/tn2004/tn2124.html for an + # explanation of these environment variables. + export MallocScribble=YES export MallocPreScribble=YES export MallocGuardEdges=YES - export CFZombieLevel=3 + export MallocStackLogging=YES export NSAutoreleaseFreedObjectCheckEnabled=YES - export NSZombieEnabled=YES export OBJC_DEBUG_FRAGILE_SUPERCLASSES=YES + if [ ! $GTM_DISABLE_ZOMBIES ]; then + GTMXcodeNote ${LINENO} "Enabling zombies" + export CFZombieLevel=3 + export NSZombieEnabled=YES + fi + "$TARGET_BUILD_DIR/$EXECUTABLE_PATH" -RegisterForSystemEvents else - echo "note: Skipping running of unittests for device build." + GTMXcodeNote ${LINENO} "Skipping running of unittests for device build." fi exit 0 -- cgit v1.2.3