aboutsummaryrefslogtreecommitdiff
path: root/UnitTesting/RunIPhoneUnitTest.sh
diff options
context:
space:
mode:
authorGravatar thomasvl@gmail.com <thomasvl@gmail.com@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3>2008-09-22 23:33:44 +0000
committerGravatar thomasvl@gmail.com <thomasvl@gmail.com@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3>2008-09-22 23:33:44 +0000
commit7bb8e9b9b24141f373ed70d7e6674a245c0227cf (patch)
tree8fab3cad46943aee24f213e041b2a7f6b71ea5df /UnitTesting/RunIPhoneUnitTest.sh
parentbfaf8705cccb15c0c2a7704b17ba011ddba8242f (diff)
- 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.
Diffstat (limited to 'UnitTesting/RunIPhoneUnitTest.sh')
-rwxr-xr-xUnitTesting/RunIPhoneUnitTest.sh37
1 files changed, 33 insertions, 4 deletions
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