Ignore:
Timestamp:
02/11/08 02:38:11 (16 years ago)
Author:
Nicholas Riley
Message:

TestParser.m: Make testing more than a noop (oops).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ICeCoffEE/ICeCoffEE/TestParser.m

    r375 r377  
    1818void ICCF_CheckRange(NSRange range) {}
    1919
    20 void ps(NSString *format, ...) {
     20static void ps(NSString *format, ...) {
    2121    va_list args;
    2222    va_start(args, format);
     
    2727}
    2828
    29 void pr(NSString *s, NSRange r) {
     29static void pr(NSString *s, NSRange r) {
    3030    ps([[NSString alloc] initWithFormat: @"%@%@>%@<",
    3131        s, [@"" stringByPaddingToLength: r.location withString: @" " startingAtIndex: 0],
    3232        [@"" stringByPaddingToLength: r.length withString: @"-" startingAtIndex: 0]]);
     33}
     34
     35static BOOL check_parse(NSString *uri, NSString *text,
     36                        NSRange delimitedURIRange, NSRange initialSelectionRange) {
     37    // XXX figure XFAIL-type error checking
     38   
     39    NSRange enclosingRange;
     40    NSString *parsedURI = nil;
     41    NSException *parseException = nil;
     42    @try {
     43        enclosingRange = ICCF_URLEnclosingRange(text, initialSelectionRange);
     44        parsedURI = [text substringWithRange: enclosingRange];
     45    } @catch (NSException *e) {
     46        parseException = e;
     47    }
     48   
     49    if ([uri isEqualToString: parsedURI]) {
     50        return YES;
     51    }
     52   
     53    ps(@"Text       %@", text);
     54    pr(@"Available ", delimitedURIRange);
     55    pr(@"Starting  ", initialSelectionRange);
     56   
     57    if (parseException != nil) {
     58        ps(@"Exception  %@", parseException);
     59    } else {
     60        pr(@"Parsed    ", enclosingRange);
     61        ps(@"Parsed     %@", parsedURI);
     62        ps(@"Desired    %@", uri);
     63    }
     64    return NO;
    3365}
    3466
     
    6597            delimitedURIRange.location = 0;
    6698            delimitedURIRange.length = [uri length];
    67         }
     99        } // XXX add ^ ^ to indicate initialSelectionRange?
    68100       
    69101        for (unsigned startOffset = 0 ; startOffset < delimitedURIRange.length ; ++startOffset) {
     
    73105            };
    74106           
    75             // XXX figure XFAIL-type error checking
    76            
    77             NSRange enclosingRange;
    78             NSString *parsedURI = nil;
    79             NSException *parseException = nil;
    80             @try {
    81                 enclosingRange = ICCF_URLEnclosingRange(text, delimitedURIRange);
    82                 parsedURI = [text substringWithRange: enclosingRange];
    83             } @catch (NSException *e) {
    84                 parseException = e;
     107            if (check_parse(uri, text, delimitedURIRange, initialSelectionRange)) {
     108                pass++;
     109            } else {
     110                fail++;
     111                goto summary;
    85112            }
    86            
    87             if ([uri isEqualToString: parsedURI]) {
    88                 ++pass;
    89                 continue;
    90             }
    91            
    92             ps(@"Text       %@", text);
    93             pr(@"Available ", delimitedURIRange);
    94             pr(@"Starting  ", initialSelectionRange);
    95            
    96             if (parseException != nil) {
    97                 ps(@"Exception  %@", parseException);
    98             } else {
    99                 pr(@"Parsed    ", enclosingRange);
    100                 ps(@"Parsed     %@", parsedURI);
    101                 ps(@"Desired    %@", uri);
    102             }
    103             ++fail;
    104             goto summary;
    105113        }
    106114    }
Note: See TracChangeset for help on using the changeset viewer.