mirror of
https://github.com/gnustep/libs-base.git
synced 2025-05-30 08:21:25 +00:00
Fix leaks
This commit is contained in:
parent
77c66e3d95
commit
088b76bed1
10 changed files with 71 additions and 65 deletions
|
@ -17,25 +17,25 @@ testMutationAffectingSubsequentCall()
|
|||
BOOL correctCallCount;
|
||||
__block NSUInteger callCount = 0;
|
||||
|
||||
mutableString = [NSMutableString stringWithString:@"Hello World"];
|
||||
mutableString = [NSMutableString stringWithString: @"Hello World"];
|
||||
results = [NSMutableArray array];
|
||||
range = NSMakeRange(0, mutableString.length);
|
||||
expectedResults = @[ @"Hello", @"World" ];
|
||||
|
||||
[mutableString
|
||||
enumerateSubstringsInRange:range
|
||||
options:NSStringEnumerationByWords
|
||||
usingBlock:^(NSString *substring, NSRange substringRange,
|
||||
enumerateSubstringsInRange: range
|
||||
options: NSStringEnumerationByWords
|
||||
usingBlock: ^(NSString *substring, NSRange substringRange,
|
||||
NSRange enclosingRange, BOOL *stop) {
|
||||
[results addObject:substring];
|
||||
[results addObject: substring];
|
||||
callCount++;
|
||||
|
||||
if ([substring isEqualToString:@"Hello"])
|
||||
if ([substring isEqualToString: @"Hello"])
|
||||
{
|
||||
// Simulate a mutation that affects subsequent
|
||||
// enumeration "Hello " is changed to "Hello"
|
||||
[mutableString
|
||||
deleteCharactersInRange:NSMakeRange(
|
||||
deleteCharactersInRange: NSMakeRange(
|
||||
substringRange.location
|
||||
+ substringRange.length,
|
||||
1)];
|
||||
|
@ -44,14 +44,14 @@ testMutationAffectingSubsequentCall()
|
|||
}];
|
||||
|
||||
[mutableString
|
||||
enumerateSubstringsInRange:NSMakeRange(5, mutableString.length - 5)
|
||||
options:NSStringEnumerationByWords
|
||||
usingBlock:^(NSString *substring, NSRange substringRange,
|
||||
enumerateSubstringsInRange: NSMakeRange(5, mutableString.length - 5)
|
||||
options: NSStringEnumerationByWords
|
||||
usingBlock: ^(NSString *substring, NSRange substringRange,
|
||||
NSRange enclosingRange, BOOL *stop) {
|
||||
[results addObject:substring];
|
||||
[results addObject: substring];
|
||||
}];
|
||||
|
||||
correctResults = [results isEqualToArray:expectedResults];
|
||||
correctResults = [results isEqualToArray: expectedResults];
|
||||
correctCallCount = (callCount == 1); // Ensure only one call before stopping
|
||||
|
||||
PASS(correctResults && correctCallCount,
|
||||
|
@ -74,11 +74,11 @@ testBasicFunctionality()
|
|||
expected = @[ @"Hello", @"World" ];
|
||||
|
||||
[string
|
||||
enumerateSubstringsInRange:range
|
||||
options:NSStringEnumerationByWords
|
||||
usingBlock:^(NSString *substring, NSRange substringRange,
|
||||
enumerateSubstringsInRange: range
|
||||
options: NSStringEnumerationByWords
|
||||
usingBlock: ^(NSString *substring, NSRange substringRange,
|
||||
NSRange enclosingRange, BOOL *stop) {
|
||||
[results addObject:substring];
|
||||
[results addObject: substring];
|
||||
}];
|
||||
|
||||
PASS_EQUAL(results, expected, "Should correctly enumerate words.");
|
||||
|
@ -96,11 +96,11 @@ testEmptyRange()
|
|||
range = NSMakeRange(0, 0);
|
||||
|
||||
[string
|
||||
enumerateSubstringsInRange:range
|
||||
options:NSStringEnumerationByWords
|
||||
usingBlock:^(NSString *substring, NSRange substringRange,
|
||||
enumerateSubstringsInRange: range
|
||||
options: NSStringEnumerationByWords
|
||||
usingBlock: ^(NSString *substring, NSRange substringRange,
|
||||
NSRange enclosingRange, BOOL *stop) {
|
||||
[results addObject:substring];
|
||||
[results addObject: substring];
|
||||
}];
|
||||
|
||||
PASS(results.count == 0,
|
||||
|
@ -119,11 +119,11 @@ void testLocationOffset() {
|
|||
expected = @[ @"World", @"Continued"];
|
||||
|
||||
[string
|
||||
enumerateSubstringsInRange:range
|
||||
options:NSStringEnumerationByWords
|
||||
usingBlock:^(NSString *substring, NSRange substringRange,
|
||||
enumerateSubstringsInRange: range
|
||||
options: NSStringEnumerationByWords
|
||||
usingBlock: ^(NSString *substring, NSRange substringRange,
|
||||
NSRange enclosingRange, BOOL *stop) {
|
||||
[results addObject:substring];
|
||||
[results addObject: substring];
|
||||
}];
|
||||
|
||||
PASS_EQUAL(results, expected, "Should correctly enumerate words with location offset.");
|
||||
|
@ -143,19 +143,19 @@ testStoppingEnumeration()
|
|||
__block BOOL didStop = NO;
|
||||
|
||||
[string
|
||||
enumerateSubstringsInRange:range
|
||||
options:NSStringEnumerationByWords
|
||||
usingBlock:^(NSString *substring, NSRange substringRange,
|
||||
enumerateSubstringsInRange: range
|
||||
options: NSStringEnumerationByWords
|
||||
usingBlock: ^(NSString *substring, NSRange substringRange,
|
||||
NSRange enclosingRange, BOOL *stop) {
|
||||
if ([substring isEqualToString:@"Hello"])
|
||||
if ([substring isEqualToString: @"Hello"])
|
||||
{
|
||||
*stop = YES;
|
||||
didStop = YES;
|
||||
}
|
||||
[results addObject:substring];
|
||||
[results addObject: substring];
|
||||
}];
|
||||
|
||||
PASS(didStop && [results count] == 1 && [results[0] isEqualToString:@"Hello"],
|
||||
PASS(didStop && [results count] == 1 && [results[0] isEqualToString: @"Hello"],
|
||||
"Enumeration should stop after 'Hello'.");
|
||||
}
|
||||
|
||||
|
@ -168,17 +168,17 @@ main(int argc, const char *argv[])
|
|||
NSString *s1 = @"Line 1\nLine 2";
|
||||
__block NSUInteger currentIteration = 0;
|
||||
[s1
|
||||
enumerateSubstringsInRange:(NSRange){.location = 0, .length = [s1 length]}
|
||||
options:NSStringEnumerationByLines
|
||||
usingBlock:^(NSString *substring, NSRange substringRange,
|
||||
enumerateSubstringsInRange: (NSRange){.location = 0, .length = [s1 length]}
|
||||
options: NSStringEnumerationByLines
|
||||
usingBlock: ^(NSString *substring, NSRange substringRange,
|
||||
NSRange enclosingRange, BOOL *stop) {
|
||||
// *stop = YES;
|
||||
if (currentIteration == 0)
|
||||
PASS([substring isEqual:@"Line 1"],
|
||||
PASS([substring isEqual: @"Line 1"],
|
||||
"First line of \"Line 1\\nLine 2\" is \"Line 1\"");
|
||||
if (currentIteration == 1)
|
||||
PASS(
|
||||
[substring isEqual:@"Line 2"],
|
||||
[substring isEqual: @"Line 2"],
|
||||
"Second line of \"Line 1\\nLine 2\" is \"Line 2\"");
|
||||
currentIteration++;
|
||||
}];
|
||||
|
@ -190,17 +190,17 @@ main(int argc, const char *argv[])
|
|||
|
||||
NSString *s1 = @"Paragraph 1\nParagraph 2";
|
||||
__block NSUInteger currentIteration = 0;
|
||||
[s1 enumerateSubstringsInRange:(NSRange){.location = 0, .length = [s1 length]}
|
||||
options:NSStringEnumerationByParagraphs
|
||||
usingBlock:^(NSString *substring, NSRange substringRange,
|
||||
[s1 enumerateSubstringsInRange: (NSRange){.location = 0, .length = [s1 length]}
|
||||
options: NSStringEnumerationByParagraphs
|
||||
usingBlock: ^(NSString *substring, NSRange substringRange,
|
||||
NSRange enclosingRange, BOOL *stop) {
|
||||
// *stop = YES;
|
||||
if (currentIteration == 0)
|
||||
PASS([substring isEqual:@"Paragraph 1"],
|
||||
PASS([substring isEqual: @"Paragraph 1"],
|
||||
"First paragraph of \"Paragraph 1\\nParagraph "
|
||||
"2\" is \"Paragraph 1\"");
|
||||
if (currentIteration == 1)
|
||||
PASS([substring isEqual:@"Paragraph 2"],
|
||||
PASS([substring isEqual: @"Paragraph 2"],
|
||||
"Second paragraph of \"Paragraph 1\\nParagraph "
|
||||
"2\" is \"Paragraph 2\"");
|
||||
currentIteration++;
|
||||
|
@ -219,16 +219,16 @@ main(int argc, const char *argv[])
|
|||
|
||||
NSString *s1 = @"Word1 word2.";
|
||||
__block NSUInteger currentIteration = 0;
|
||||
[s1 enumerateSubstringsInRange:(NSRange){.location = 0, .length = [s1 length]}
|
||||
options:NSStringEnumerationByWords
|
||||
usingBlock:^(NSString *substring, NSRange substringRange,
|
||||
[s1 enumerateSubstringsInRange: (NSRange){.location = 0, .length = [s1 length]}
|
||||
options: NSStringEnumerationByWords
|
||||
usingBlock: ^(NSString *substring, NSRange substringRange,
|
||||
NSRange enclosingRange, BOOL *stop) {
|
||||
// *stop = YES;
|
||||
if (currentIteration == 0)
|
||||
PASS([substring isEqual:@"Word1"],
|
||||
PASS([substring isEqual: @"Word1"],
|
||||
"First word of \"Word1 word2.\" is \"Word1\"");
|
||||
if (currentIteration == 1)
|
||||
PASS([substring isEqual:@"word2"],
|
||||
PASS([substring isEqual: @"word2"],
|
||||
"Second word of \"Word1 word2.\" is \"word2\"");
|
||||
currentIteration++;
|
||||
}];
|
||||
|
@ -239,17 +239,17 @@ main(int argc, const char *argv[])
|
|||
|
||||
NSString *s1 = @"Sentence 1. Sentence 2.";
|
||||
__block NSUInteger currentIteration = 0;
|
||||
[s1 enumerateSubstringsInRange:(NSRange){.location = 0, .length = [s1 length]}
|
||||
options:NSStringEnumerationBySentences
|
||||
usingBlock:^(NSString *substring, NSRange substringRange,
|
||||
[s1 enumerateSubstringsInRange: (NSRange){.location = 0, .length = [s1 length]}
|
||||
options: NSStringEnumerationBySentences
|
||||
usingBlock: ^(NSString *substring, NSRange substringRange,
|
||||
NSRange enclosingRange, BOOL *stop) {
|
||||
// *stop = YES;
|
||||
if (currentIteration == 0)
|
||||
PASS([substring isEqual:@"Sentence 1. "],
|
||||
PASS([substring isEqual: @"Sentence 1. "],
|
||||
"First sentence of \"Sentence 1. Sentence 2.\" "
|
||||
"is \"Sentence 1. \"");
|
||||
if (currentIteration == 1)
|
||||
PASS([substring isEqual:@"Sentence 2."],
|
||||
PASS([substring isEqual: @"Sentence 2."],
|
||||
"Second sentence of \"Sentence 1. Sentence 2.\" "
|
||||
"is \"Sentence 2.\"");
|
||||
currentIteration++;
|
||||
|
@ -268,4 +268,4 @@ main(int argc, const char *argv[])
|
|||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue