Plain Text | 587 lines | 409 code | 178 blank | 0 comment | 0 complexity | ea7348f52663f1df0e4c4dbbfd50a50b MD5 | raw file
1Google Toolbox for Mac Release Notes 2 3Project site: http://code.google.com/p/google-toolbox-for-mac/ 4Discussion group: http://groups.google.com/group/google-toolbox-for-mac 5 6Release 2.0.?? 7Changes since 1.6.0 8??-??-?? 9 10- Removed iPhone/GTMABAddressBook in favor of AddressBook/GTMABAddressBook. 11 12- Removed Foundation/GTMHTTPServer and UnitTesting/GTMTestHTTPServer, they 13 are going to go live with the fetcher used by GData (since they were done 14 for that testing). 15 16- Removed Foundation/GTMBase64 and Foundation/GTMNSData+Hex in favor of 17 Foundation/GTMStringEncoding. 18 19- Added Foundation/GTMURITemplate to support the pending standard. 20 21- Changed the xcconfig files so that the SDK and the minimum supported OS 22 version must be set in the project file. This is the model Apple is pushing 23 for and since they are removing older SDKs with each tool chain release it 24 has forced GTM into this model. By default the SDK will be set to the most 25 recent SDK installed. 26 27- Initial support for using the Xcode provided OCUnit for unittesting on iOS. 28 Define GTM_IPHONE_USE_SENTEST to 1 to use this. 29 30- Removed support for Garbage Collection, leaving just the shell for other code 31 that might have depended on some of the constants/method GTM provided. 32 33- Removed GTMNSNumber+64Bit methods as obsolete. 34 35 36Release 1.6.0 37Changes since 1.5.1 3818-August-2010 39 40- Added GTMNSImage+SearchCache for fetching images based on a variety of 41 specification methods (path, OSType, etc) 42 43- Added GTMFadeTruncatingTextFieldCell, for eliding with a gradient 44 45- Added GTMWindowSheetController for creating and controlling tab-modal sheets. 46 47- Added GTMNSArray+Merge for merging one array into another with or without 48 a custom merging function, returning a new array with the merged contents. 49 50- Added GTMSignalHandler for simple signal handling (via kqueue/runloop). This 51 has gotten an api tweak, so some code that started using it will need 52 updating. Initial landing had a bug where it could leak memory due to 53 how CFRunLoops work, now fixed. 54 55- Fixed up GTMIPhoneUnitTestDelegate to be pickier about which tests it runs 56 57- Added GTMNSString+URLArguments to GTMiPhone 58 59- Added GTMHTTPFetcher and GTMHTTPServer to GTMiPhone 60 61- Made sure that build would work with iPhone device attached, and that all 62 tests run directly on the phone. 63 64- Added GTMValidatingContainers which are a set of mutable container classes 65 that allow you to have a selector on a target that is called to verify that 66 the objects being put into the container are valid. This can be controlled 67 at compile time so that you don't take the performance hit in a release build. 68 69- Added GTMPath, which represents an existing absolute path on the file system. 70 It also makes it very easy to construct new paths in the file system as well 71 as whole directory hierarchies. 72 73- Added GTMNSString+Replace for a common replacement need. 74 75- Added NSString+FindFolder for two comment helpers for building paths to common 76 locations. 77 78- Added GTMLargeTypeWindow for doing display windows similar to Address Book 79 Large Type display for phone numbers. 80 81- Removed GTMNSWorkspace+ScreenSaver as it has always been a little dodgy due 82 to it's dependencies on undocumented frameworks, and the ScreenSaver 83 framework doesn't play nicely in GC mode. 84 85- Added property methods to GTMHTTPFetcher. These are convenient alternatives 86 to storing an NSDictionary in the userData. 87 88- Renamed GTMDevLog.m to GTMDevLogUnitTestingBridge.m and added some more 89 comments where it comes into play to hopefully make it more clear that it 90 isn't needed in most cases. 91 92- Fixed a potential GTMHTTPFetcher crash on failed authentication. 93 94- Added a obj-c logging package, GTMLogger, for applications that want an 95 application level logging system. See GTMLogger.h, GTMLogger+ASL.h, and 96 GTMLoggerRingBufferWriter.h for what the basic system and two optional 97 additions can do. 98 99- Added GTMNSMakeUncollectable for forcing objects to survive in a GC world. 100 101- Added GTMCFAutorelease to make the [GTMNSMakeCollectable(cfFoo) autorelease] 102 simpler and clearer, it's now just GTMCFAutorelease(cfFoo), and works in 103 both GC and non-GC world. 104 105- Added GTMIsGarbageCollectionEnabled to GTMGarbageCollection.h. See the note 106 there for it's usage. 107 108- Disabled the unittests for things on top of NSAppleScript in a GC world since 109 Apple has bugs and it can crash. See the unittest for a note about it. 110 111- GTMStackTrace now can figure out ObjC symbols. Downside it is now ObjC only. 112 113- GTMFourCharCode can now be used with NSAppleEventDescriptors easily. 114 typeType, typeKeyword, typeApplSignature, and typeEnumerated all get 115 turned into GTMFourCharCodes. 116 117- Fixed up crash in GTMLoggerRingBufferWriter when used with GC on. 118 119- Significant updates to GTMNSAppleScript+Handler allowing you to 120 list all handlers and properties (including inherited) and cleans up 121 several errors in how scripting was being handled. 122 123- Added GTMGetURLHandler class that gives you a very easy way of supporting 124 Get URL events just by adding a key to your plists, and adding a single 125 method to your class. See GTMGetURLHandler.m for more details. 126 127- Added XcodeProject, AppleScript, and InterfaceBuilder Spotlight Plugins. 128 Allows you to index .xcodeproj, .scpt, .scptd, .xib, .nib, and 129 .aib files. See ReadMes beside individual projects in SpotlightPlugins. 130 131- Added GTMExceptionalInlines for dealing with cases where you get 132 warning: variable 'r' might be clobbered by 'longjmp' or 'vfork' 133 when using certain Apple inlined functions in @synchronized/@try blocks. 134 135- Updated to Xcode 3.1 so the GTM and iPhone project have the same baseline. 136 The code should work in other version of xcode, but the projects and 137 xcconfig files now use 3.1 features. 138 139- Added GTMABAddressBook which is a cocoa wrapper for the 'C' AddressBook 140 APIs on the iPhone. 141 142- Added several set environment variable statements to RunIPhoneUnitTest.sh 143 to encourage bugs to come out of the woodwork. 144 145- Added GTMTestTimer.h for doing high fidelity timings. 146 147- Added ability to control using zombies to iPhone unittest script. It can be 148 controlled by the GTM_DISABLE_ZOMBIES environment variable 149 150- Added ability to control termination to iPhone unittest script. It can be 151 controlled by the GTM_DISABLE_TERMINATION environment variable 152 153- Fixed several leaks found with leak checking enabled. 154 155- Updated the iPhone xcconfigs to support the different OS versions. 156 157- GTM_INLINE will make sure a function gets inlined, and provides a consistent 158 way for all GTM code to do it. 159 160- Added GTMDebugThreadValidation to allow you to enforce the fact that your 161 code must run in the main thread in DEBUG builds. 162 163- Updated some internals of the iPhone unittesting so it doesn't double print 164 the test descriptions, file names, or lines numbers of a test failure line. 165 Also includes the test names in the error output. 166 167- Changed the xcconfigs so that know it's easier to set different settings at 168 the different levels and not accidentally overwrite settings set at lower 169 levels in the "settings collapse". Also tightened up warnings significantly. 170 171- Changed how gtm_unitTestExposedBindingsTestValues works. If you have an 172 implementation of gtm_unitTestExposedBindingsTestValues in your own code 173 you will need to update to the new way of calling. See implementations in 174 GTMNSObject+BindingUnitTesting.m for details. 175 176- Added support for grabbing the build number for a particular OS in 177 GTMSystemVersion and easily comparing it to known build numbers, and switched 178 some types from in GTMSystemVersion from "int" to SInt32 to make 64 bit work 179 better. 180 181- Added support for SnowLeopard (10A96). We build cleanly with the 10.6 SDKs and 182 all radar checks were updated accordingly. Build All script was also updated 183 to build on SnowLeopard if you have the SDK available. 184 185- Turned off building ppc64 GTM because the SnowLeopard SDK currently 186 doesn't have ppc64 support, so SenTestCase isn't defined. This makes it 187 impossible to build the ppc64 10.5 config on SnowLeopard. We have left the 188 setting in the xcconfig for those of you who need it, but have disabled 189 it in the GTM project settings. 190 191- Turned on stack smashing protection on the debug builds for all Leopard 192 and above. 193 194- Added ability to easily do leak checking by defining the GTM_ENABLE_LEAKS 195 environment variable. It isn't on by default because several of Apple's 196 frameworks leak. You can work around these false positives by using the 197 GTM_LEAKS_SYMBOLS_TO_IGNORE environment variable. Also if you turn on leaks 198 make sure to turn off zombies by defining the GTM_DISABLE_ZOMBIES variable, 199 otherwise every memory allocation you do will look like a leak. 200 201- Added has ability to check if a script has an open handler to 202 GTMNSAppleScript+Handler. 203 204- GTMStackTrace support for building a trace from the call stack in an 205 NSException (for 10.5+ and iPhone). 206 207- GTMStackTrace works on 10.5+ (and iPhone) using NSThread to build the call 208 stack. 209 210- GTMLightweightProxy for breaking retain cycles. 211 212- Added GTM_EXTERN that makes it easier to mix and match objc and objc++ code. 213 214- Added GTMHotKeysTextField for display and editing of hot key settings. 215 216- Added GTMCarbonEvent for dealing with Carbon Events and HotKeys in a ObjC 217 like way. 218 219- Backported the Atomic Barrier Swap functions for Objective C back to Tiger. 220 221- Added a variety of new functions to GTMUnitTestingUtilities for checking 222 if the screensaver is in the way, waiting on user events, and generating 223 keystrokes. 224 225- If you are using any Carbon routines that log (DebugStr, AssertMacros.h) and 226 use GTMUnitTestDevLog, the log routines now go through _GTMDevLog so that 227 they can be caught in GTMUnitTestDevLog and verified like any _GTMDevLog calls 228 you may make. For an example of this in action see GTMCarbonEventTest.m. 229 Since we have turned this on, we have turned off using _debug frameworks 230 from the RunUnitTests.sh because it was reporting a pile of uninteresting 231 issues that were interfering with unittests. 232 233- Added GTMFileSystemKQueue. It provides a simple wrapper for kqueuing 234 something in the file system and tracking changes to it. Initial landing 235 had a bug where it could leak memory due to how CFRunLoops work, now fixed. 236 237- RunIPhoneUnitTest.sh now cleans up the user home directory and creates 238 a documents directory within it, used when requesting a NSDocumentDirectory. 239 240- Added GTMNSFileManager+Carbon which contains routines for path <-> Alias 241 conversion and path <-> FSRef conversion. 242 243- Added GTM_EXPORT as a standard way of exporting symbols. 244 245- Added GTMUnitTestDevLogDebug which extends GTMUnitTestDevLog to only look 246 for the messages in debug builds, to make it easier to validate messages 247 that are only present in debug builds. 248 249- Added GTM_SUPPORT_GC for controlling the inclusion of GC related code. 250 251- If you are using GTMUnitTestDevLog, it also tries to capture logs from 252 NSAssert. 253 254- Added GTM_FOREACH_OBJECT/GTM_FOREACH_KEY/GTM_FOREACH_ENUMEREE that uses 255 NSEnumerator and objectEnumerator/keyEnumerator on 10.4, but on 10.5+/iPhone 256 uses FastEnumeration. 257 258- GTMNSWorkspace+Running gives a variety of ways of determining the attributes 259 of running processes. 260 261- If the iPhone unittesting support is exiting when done, it now properly sets 262 the exit code based on test success/failure. 263 264- Added GTMNSObject+KeyValueObserving to make it easier on folks to do KVO 265 "correctly". Based on some excellent code by Michael Ash. 266 http://www.mikeash.com/?page=pyblog/key-value-observing-done-right.html 267 This has been added for iPhone and OS X. 268 269- Fixed up GTMSenTestCase on iPhone so that it has a description that matches 270 that of OCUnit. 271 272- Added GTMAbstractDOListener, GTMTransientRootProxy, and 273 GTMTransientRootPortProxy. These classes can be used to simplify the 274 use of distributed objects. GTMAbstractDOListener can be used to handle 275 connections from any type of port. GTMTransientRootProxy is designed for 276 using named connections while GTMTransientRootPortProxy is for connections 277 with supplied NSPorts. 278 279- Finally dropped GTMHTTPFetcher and GTMProgressMonitorInputStream, GData 280 versions now pretty much line up with these, so rather then both projects 281 maintaining them, we've dropped them and point folks at the gdata versions 282 which can be used independent of the rest of GData. 283 284- Changed gtm_createCGPath to gtm_cgPath in GTMNSBezier+CGPath. The path 285 returned is now autoreleased so you don't need to worry about releasing it. 286 287- Made some changes to the GTMNSObject+UnitTesting APIs. Specifically renamed 288 gtm_createUnitTestImage to gtm_unitTestImage. The value it returns is now 289 autoreleased, so no need to release it. Also change 290 gtm_createUnitTestBitmapOfSize:withData: to a C function. 291 292- Cleaned up GTM so that it passes the Clang checker without any warnings. 293 294- Added GTMLuminance for working with colors in HSL space easily. 295 296- Added GTMTheme for doing product wide theme modifications. 297 298- The Run*UnitTest.sh script now delete the current projects *.gcda files to 299 avoid coverage data warning when you edit source. If you do not want this to 300 occur, you can set GTM_DO_NOT_REMOVE_GCOV_DATA to a non-zero value. 301 302- Added OBJC_DEBUG_UNLOAD=YES, and OBJC_DEBUG_NIL_SYNC=YES to our unittest shell 303 scripts to try and flush out some more bugs. We have intentionally NOT turned 304 on OBJC_DEBUG_FINALIZERS because it spits out a lot of unnecessary false 305 positives. 306 307- Added GTMUILocalizer.m for automatically localizing nib files with strings. 308 309- Added better support for NSTabViews to GTMAppKit+UnitTesting. Previously we 310 didn't check the tabs, or recurse into the views. 311 312- Adds support for toolTips, accessibilityHelp and accessibilityDescription to 313 GTMAppKit+UnitTesting. This will break your UI tests based on the older 314 state information. 315 316- Added support for duration to GTMLargeTypeWindow mainly to make the unittests 317 run at a decent speed. 318 319- All calls to GTMNSAppleScript+Handler execute: calls will now actually 320 execute the script on the main thread. 321 322- Added gtm_launchedApplications to GTMNSWorkspace+Running. It is significantly 323 faster than calling [NSWorkspace launchedApplications] 324 325- Moved GTMABAddressBook out of iPhone and into the AddressBook directory, 326 because it now works on both the Desktop and the iPhone giving you a single 327 interface to do AddressBook work on both platforms. 328 329- Added GTMNSScanner+JSON for scanning out JSON objects and arrays. We don't 330 parse JSON as there are several other frameworks out there for doing that. 331 332- Fixed up GTMABAddressBook so that it will compile and run on Tiger as well. 333 This did mean some slight functional differences in terms of the 334 *WithCompositeNameWithPrefix methods as they can't do diacritic or width 335 insensitive search on Tiger, but this shouldn't affect most users. 336 337- Added GTMGoogleSearch to foundation to make doing google searches easier. 338 339- Added GTMUIImage+Resize for iPhone to conveniently handle generating resized 340 UIImages while preserving aspect ratios. 341 342- Added support for passing in a context object to some of the 343 GTMNSEnumerator+Filter routines. 344 345- Fixed up bug in GTMFileSystemKQueue where we were passing the kqueue argument 346 in incorrectly. Added appropriate tests. 347 348- Added NSMatrix to the UIState support. 349 350- Added NSMatrix and NSCell to GTMLocalizer support. 351 352- Added gtm_dictionaryWithHttpArgumentsString to NSDictionary+URLArguments. 353 354- Added GTMDebugKeyValueObserving category to NSObject. This makes debugging 355 KVO a little easier in some cases. To turn it on, set the "GTMDebugKVO" 356 environment variable to "1". It will output a lot of data about adding and 357 removing KVO observers, and when the values are actually changed. 358 359- Added better support for NSBox to GTMAppKit+UnitTesting. Previously we 360 didn't check any box specific attributes. 361 362- Updated how GTMNSObject+UnitTesting searches for files to include the Target 363 SDK from compile time. Also removed some of the formatting options so 364 try and make it simpler to follow. 365 366- Added GTMNSDictionary+CaseInsensitive, e.g. for use with HTTP headers. 367 368- Added GTMNSData+Hex for conversion to and from hex strings. 369 370- Added GTMNSNumber+64Bit for working with CGFloats, NSIntegers and 371 NSUIntegers using NSNumber on all supported SDKs. 372 373- Added GTMIBArray for building arrays in nib files. 374 375- Added SDEFCompiler.sh for making it easier to error check SDEFs at 376 compile time. See BuildScripts/SDEFCompiler.sh for details on how to set it 377 up. If you work with SDEFs at all, this one is worth checking out. 378 379- GTMNSAnimation+Duration.m adds support for checking for control and shift 380 keys when trying to decide how to calculate durations for animations. 381 382- Added Xcode configs for iPhone 2.2, 2.2.1, 3.0, 3.1, 3.1.2. 383 384- Added configurations GTMiPhone for all the new configs, updated the build 385 scripts to build all iPhone SDKs also. 386 387- RunMacOSUnitTests supports GTM_REMOVE_TARGET_GCOV_ONLY to have only gcda 388 removed from the target and not the whole project. 389 390- RunMacOSUnitTests supports GTM_ONE_TEST_AT_A_TIME to have only one test 391 run at a time to support global state (color sync profile, etc.). 392 393- Added the GTM XcodePlugin. This plugin enhances Xcode with the following 394 features: 395 - Cleanup line ending white space on saves. 396 See Xcode Preferences > Google panel to turn this on. 397 - Create Unit Test Executable. 398 Select a unittest target, and then select "Create Unit Test Executable" 399 from the project menu, and it will create an executable you can debug. 400 - Turn Code Coverage On 401 Turns on code coverage for the current target. Nice when working with 402 CoverStory. 403 - Show Code Coverage/Clean Code Coverage/Clean Project Coverage and Build 404 Utilities for working with CoverStory. 405 - Under the help menu, quick links to the Google Style guides, Radar, 406 and our favorite tech note. 407 408 Note that you can see all the menu items that GTM Xcode Plugin has added by 409 turning on the "Show Icon on Menu Items" option in the Xcode Preferences > 410 Google panel. 411 412- iPhone unittests now print "Test Case '-[TEST SELECTOR]' started." before 413 each test. 414 415- Added GTMTypeCasting.h which gives you safer objective-c casts based on 416 C++ static_cast and dynamic_cast. 417 418- Added GTMStringEncoding which is a generic base 2-128 encoder/decoder with 419 support for custom character maps. 420 421- Added support for localizing binding options in GTMUILocalizer. 422 423- Cleaned up several leaks in tests and elsewhere. 424 425- Added PListCompiler.sh for compiling plists. 426 427- Added GTM_NSSTRINGIFY_MACRO for turning other macros into NSStrings. 428 429- Removed GTMTheme because it wasn't generic enough for inclusion in GTM, and 430 was never fully implemented 431 432- Added GTM_NONNULL, NS_RETURNS_RETAINED, and CF_RETURNS_RETAINED macrs to 433 support clang analysis. 434 435- Changed GTMStackTrace to put out a cleaner trace, and to work on 64 bit. 436 NOTE that if you are parsing this format, that it has changed. 437 eg 32 bit 438 #0 UnitTest - Foundation 0x0001c392 -[SenTest run] 439 and 64 bit 440 #0 UnitTest - Foundation 0x10010000001c3921 -[SenTest run] 441 442- Added GTMNSAnimatablePropertyContainer methods that allow you to stop 443 animations properly in 10.5. 444 445- Added gtm_imageByRotating for rotating a UIImage. Based on code by Trevor 446 Harmon: 447 http://vocaro.com/trevor/blog/wp-content/uploads/2009/10/UIImage+Resize.h 448 http://vocaro.com/trevor/blog/wp-content/uploads/2009/10/UIImage+Resize.m 449 450- Added support for creating uniquely named files and directories easily with 451 GTMNSFileHandle+UniqueName. 452 453 454Release 1.5.1 455Changes since 1.5.0 45616-June-2008 457 458- Fixed building tiger gcov with a directory path that contains a space. 459 460 461Release 1.5.0 462Changes since 1.0.0 46313-June-2008 464 465- Updated the project to Xcode 3. This is the only supported Xcode version 466 for the project. The code can build against the Tiger or Leopard SDKs, and 467 developers can pull individual files into a Xcode 2.x project and things 468 should work just fine. 469 470- Fixed up the prefix header of the project and prefix handing in the Unittest 471 Xcode Config. (thanks schafdog) 472 473- Fixed error in handling default compression for NSData+zlib 474 475- Changed name on API in NSString+XML and added another api to make this a 476 litte more clear. (thanks Kent) 477 478- GTMRegex 479 - Found and fixed a bug in the enumerators that was causing them to 480 incorrectly walk a string when using '^' in an expression. 481 - Added helpers for substring tests and unittests for the new apis. 482 - Added initializer that takes an outError to allow the collection of any 483 pattern parsing error message (in case the pattern came from a user and 484 complete error information is needed to message the user). 485 486- Added GTMScriptRunner for spawning scripts. 487 488- Added GTMNSFileManager+Path for two small helpers. 489 490- Added GTMNSWorkspace+ScreenSaver 491 492- Added GTMNSString+Data 493 494- added a common header (GTMDefines) for any common defines so the conditionals 495 are all in one place 496 497- Support for things compiling against the iPhone SDK 498 - Everything in the GTMiPhone project works in the iPhone 499 - Added iPhone xcconfig files 500 - Added iPhone unittests (See below) 501 502- More work on the UI unittests 503 - support pretty much any part of a UI 504 - support for CALayers 505 - full support for the iPhone 506 - the iPhone uses the same macro set at OCUnit, but has its own runtime 507 for running tests. 508 - extended capabilities of UIUnitTesting to be more flexible and give better 509 error reporting for states. 510 511- Renamed the actual framework to "GoogleToolboxForMac.framework" (it should 512 have matched the project on code.google.com from the start) 513 514- added a Debug-gcov target that will product debug bits with code coverage 515 support to check unittests, etc. 516 517- GTMDebugSelectorValidation to provide something to include in class impls 518 to get validation of object/selector pair(s) being implemented so you don't 519 have to wait for a runtime invocation failures. (especially useful for 520 things that take a success and failure selector so one doesn't always get 521 called) 522 523- added _GTMDevLog (really in GTMDefines) that are a set of macros that can be 524 used for logging. This allows any project to redefine them to direct logging 525 into its runtime needs. 526 527- Moved GTMGeometryUtils into Foundation from AppKit 528 529- Removed several HI* calls from GTMGeometryUtils as Carbon UI in general is 530 deprecated. 531 532- Xcode configs 533 - changed the layout to make it a little easier to tell how to use them. 534 - added Leopard or later configs 535 536- Unittest coverage greatly increased 537 538- Added RunMacOSUnitTests shell script. We run this script for starting up our 539 unittests because it turns on a variety of "enhancements" (such as zombies, 540 scribbling etc) to encourage our unittests to fail for us. 541 542 https://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wa/getSoftware?bundleID=19915 543 544- Remove NSColor+Theme and NSWorkspace+Theme as they are no longer needed for 545 testing things for unittests, instead GTMUnitTestingUtilities.m(Lines 64-79) 546 force the user settable things to ensure tests are consistent. 547 548- Added GTMBase64. 549 550- Added GTMHTTPFetcher and GTMProgressMonitorInputStream. 551 552- Moved the data files for unittests into subdirectories call TestData to 553 help make it a little easier to find files within the main directories. 554 555- GTMDelegatingTableColumn get an overhaul to match the 10.5 sdk so it's closer 556 to a dropin for previous sdks. 557 558- Added a lot of functionality to NSAppleEventDescriptor and NSAppleScript 559 allowing you to easily call labeled and positional handlers in an AppleScript, 560 get/set properties and get NSAppleEventDescriptors for most basic datatypes. 561 562- Added GTMFourCharCode for wrapping FourCharCodes in an ObjC object. Mainly for 563 use by the NSAppleEventDescriptor code, and also useful for storing them 564 in ObjC collection classes. 565 566- Added GTMStackTrace. 567 568- Added NSString+URLArguments and NSDictionary+URLArguments 569 570- Added GTMHTTPServer as a simple server but mainly for use in unittesting. 571 572- Added _GTMCompileAssert for doing compile time assertions to GTMDefines.h 573 574- Added GTMUnitTestDevLog and GTMTestCase for logging and tracking logs while 575 running unittests to verify what is being logged is what you expect. All 576 unittests should now inherit from GTMTestCase instead of SenTestCase to take 577 advantage of the new log tracking. See GTMUnitTestDevLog.h for details. 578 579- Extracted GTMIPhoneUnitTestDelegate from GTMIPhoneUnitTestMain.m to its own 580 file. Tests can now be run from another application. 581 582 583Release 1.0.0 58414-January-2008 585 586- Initial public release. Includes some simple utils, xcode configs, and 587 some support for doing unittests of graphical things.