diff options
-rw-r--r-- | Foundation/GTMStackTrace.m | 8 | ||||
-rw-r--r-- | Foundation/GTMStackTraceTest.m | 14 |
2 files changed, 18 insertions, 4 deletions
diff --git a/Foundation/GTMStackTrace.m b/Foundation/GTMStackTrace.m index 0b28743..05843b5 100644 --- a/Foundation/GTMStackTrace.m +++ b/Foundation/GTMStackTrace.m @@ -93,7 +93,7 @@ static NSUInteger GTMGetStackAddressDescriptorsForAddresses(void *pcs[], // Iterate through the stack. for (NSUInteger i = 0; i < count; ++i) { const char *class_name = NULL; - Boolean is_class_method = FALSE; + BOOL is_class_method = NO; size_t smallest_diff = SIZE_MAX; struct GTMAddressDescriptor *currDesc = &outDescs[i]; currDesc->address = pcs[i]; @@ -108,7 +108,7 @@ static NSUInteger GTMGetStackAddressDescriptorsForAddresses(void *pcs[], if (diff < smallest_diff) { best_method = class_descs[j].class_methods[k]; class_name = class_descs[j].class_name; - is_class_method = TRUE; + is_class_method = YES; smallest_diff = diff; } } @@ -121,7 +121,7 @@ static NSUInteger GTMGetStackAddressDescriptorsForAddresses(void *pcs[], if (diff < smallest_diff) { best_method = class_descs[j].instance_methods[k]; class_name = class_descs[j].class_name; - is_class_method = TRUE; + is_class_method = NO; smallest_diff = diff; } } @@ -140,7 +140,7 @@ static NSUInteger GTMGetStackAddressDescriptorsForAddresses(void *pcs[], dladdr(currDesc->address, &info); if ((size_t)currDesc->address - (size_t)info.dli_saddr < smallest_diff) { currDesc->symbol = info.dli_sname; - currDesc->is_class_method = FALSE; + currDesc->is_class_method = NO; currDesc->class_name = NULL; } currDesc->filename = info.dli_fname; diff --git a/Foundation/GTMStackTraceTest.m b/Foundation/GTMStackTraceTest.m index f1c1247..0739122 100644 --- a/Foundation/GTMStackTraceTest.m +++ b/Foundation/GTMStackTraceTest.m @@ -24,6 +24,13 @@ @end @implementation GTMStackTraceTest ++ (BOOL)classMethodTest { + NSString *stacktrace = GTMStackTrace(); + NSArray *stacklines = [stacktrace componentsSeparatedByString:@"\n"]; + NSString *firstFrame = [stacklines objectAtIndex:0]; + NSRange range = [firstFrame rangeOfString:@"+"]; + return range.location != NSNotFound; +} - (void)testStackTraceBasic { NSString *stacktrace = GTMStackTrace(); @@ -43,6 +50,13 @@ STAssertNotEquals(range.location, (NSUInteger)NSNotFound, @"First frame should contain #0, stack trace: %@", stacktrace); + + range = [firstFrame rangeOfString:@"-"]; + STAssertNotEquals(range.location, (NSUInteger)NSNotFound, + @"First frame should contain - since it's " + @"an instance method: %@", stacktrace); + STAssertTrue([[self class] classMethodTest], @"First frame should contain" + @"+ since it's a class method"); } -(void)testGetStackAddressDescriptors { |