views:

15

answers:

1

I'm trying to add some UnitTests to a bunch of Cocoa Legacy code. I created a Unit Test Bundle, and added all source and frameworks needed, but the build fails with this message:

2010-08-26 16:07:18.074 otest-x86_64[64675:903] The test bundle at 
/Users/giordano/application/build/Release/UnitTest.octest 
could not be loaded because its Objective-C runtime information does not match 
the runtime information required by the test rig.  This is likely because the 
test rig is being run with Objective-C garbage collection disabled, but the 
test bundle requires Objective-C garbage collection.  To enable Objective-C 
garbage collection for the test rig, run it in an environment without the 
OBJC_DISABLE_GC environment variable.

I tried to enable garbage collector, but another error appears:

2010-08-26 16:38:28.824 otest-x86_64[71383:903] The test bundle at 
/Users/giordano/work/CleanCode/Pomodori.st/desktop/Osx/pomodoro-
buildfix/pomodoro/build/Release/UnitTest.octest could not be loaded 
because an unanticipated error occurred: Error Domain=NSCocoaErrorDomain 
Code=3587 UserInfo=0x20002a640 "The bundle “UnitTest.octest” couldn’t be 
loaded because it is damaged or missing necessary resources."
 (dlopen_preflight(/Users/giordano/application/build/Release/UnitTest.octest/Contents/MacOS/UnitTest): Library not loaded: 
@loader_path/../Frameworks/Sparkle.framework/Versions/A/Sparkle
  Referenced from: 
/Users/giordano/application/build/Release/UnitTest.octest/Contents/MacOS/UnitTest
  Reason: no suitable image found.  Did find:
    /Users/giordano/application/build/Release/UnitTest.octest/Contents/MacOS/../Frameworks/Sparkle.framework/Versions/A/Sparkle: 
GC capability mismatch
    /Users/giordano/application/build/Release/UnitTest.octest/Contents/MacOS/../Frameworks/Sparkle.framework/Versions/A/Sparkle: 
GC capability mismatch)

I wonder if it's possible to force Unit Test to run without Garbage Collection: Any clue?

A: 

The sparkle framework needs to built GC enabled.

bbum
ok, but why Tests Bundle must be GC enabled?
Giordano Scalzo
Everything must either be GC enabled or Retain-Release capable. You can't mix. I don't know enough about your project to know which one is the right answer.
bbum