[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: tests on OpenBSD
From: |
Sebastian Reitenbach |
Subject: |
Re: tests on OpenBSD |
Date: |
Thu, 23 Jun 2011 15:20:47 +0200 |
User-agent: |
SOGoMail 1.3.7 |
On Wednesday, June 22, 2011 12:47 CEST, David Chisnall <theraven@sucs.org>
wrote:
> On 22 Jun 2011, at 11:43, Sebastian Reitenbach wrote:
>
> > This is what I've seen too. Commenting out the line where it goes to
> > generates the exception in -[NSException raise] will make all tests happy.
> > The hanging tests, when you connect with gdb to it, you will see they hang
> > in the same place like Sudoku.
>
>
> Can you try to narrow it down a bit? Some things to try:
>
> - Reduced test case just throwing an exception - does it crash?
> - Reduced test case throwing a string with @throw - does it crash?
> - Throwing a C++ exception instead, does that work?
> - Using libobjc2 instead of GCC libobjc2 (completely different EH
> implementation), does that make a difference?
I wrote two test programs, both seem to work fine using libobjc2:
#import <Foundation/Foundation.h>
int main(int argc, char **argv) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init] ;
int result = 0 ;
NS_DURING
[NSException raise:@"EXCEPTIO" format:@"FORMAT"];
NS_HANDLER
NSLog(@"%@", @"Trowing a test exception");
result = 1 ;
NS_ENDHANDLER
NSLog(@"Leaving ...");
[pool release] ;
return result ;
}
$ obj/simple 1 2 3
2011-06-23 15:19:07.861 simple[22686] Trowing a test exception
2011-06-23 15:19:07.867 simple[22686] Leaving ...
The second test program using @throw seems to work:
#import <Foundation/Foundation.h>
int main(int argc, char **argv) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init] ;
int result = 0 ;
@try {
if (argc > 1) {
@throw [NSException exceptionWithName:@"Trowing a test
exception" reason:@"Testing the @throw directive." userInfo:nil];
}
}
@catch (id theException) {
NSLog(@"%@", theException);
result = 1 ;
}
@finally {
NSLog(@"This always happens.");
result += 2 ;
}
NSLog(@"Leaving ...");
[pool release] ;
return result ;
}
$ obj/simple
2011-06-23 15:09:31.204 simple[30355] This always happens.
2011-06-23 15:09:31.210 simple[30355] Leaving ...
$ obj/simple test
2011-06-23 15:09:37.859 simple[4040] <NSException: 0x2184ad68> NAME:Trowing a
test exception REASON:Testing the @throw directive.
2011-06-23 15:09:37.865 simple[4040] This always happens.
2011-06-23 15:09:37.865 simple[4040] Leaving ...
both tested with libobjc2 and gnustep-make from svn. However, compiling and
running sudoku, it hangs...
I'm now going back and reinstall using libobjc1, and will retest with my test
program.
Sebastian
- tests on OpenBSD, Riccardo Mottola, 2011/06/22
- Re: tests on OpenBSD,
Sebastian Reitenbach <=