forked from mpw/ObjectiveHTTPD
-
Notifications
You must be signed in to change notification settings - Fork 0
/
testobjectivehttpd.m
85 lines (78 loc) · 2.78 KB
/
testobjectivehttpd.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#import <MPWFoundation/MPWDictStore.h>
@interface NSObject(testSelectors)
-(NSArray*)testSelectors;
-testFixture;
@end
static void runTests()
{
int tests=0;
int success=0;
NSMutableArray *failures=[NSMutableArray array];
NSArray *classes=@[
@"MPWStTests",
@"STSimpleDataflowConstraint",
@"MPWScriptedMethod",
@"MPWIdentifier",
@"MPWStScanner",
@"MPWScheme",
@"MPWInterval",
@"MPWMessage",
@"MPWMethodHeader",
@"MPWMethodStore",
@"MPWMethodCallBack",
@"MPWPropertyPath",
// @"MPWPropertyPathGetter",
// @"MPWPropertyPathSetter",
@"MPWPropertyPathComponent",
// @"MPWFrameworkScheme",
@"MPWSchemeScheme",
// @"MPWVarScheme",
@"MPWVARBinding",
// @"MPWSelfContainedBindingsScheme",
@"STCompiler",
// @"MPWFilterDefinition",
@"MPWMethodHeader",
];
for (NSString *className in classes ) {
id testClass=NSClassFromString( className );
id fixture=testClass;
if ( fixture ) {
NSArray *testNames=[testClass testSelectors];
for ( NSString *testName in testNames ) {
if ( [testClass respondsToSelector:@selector(testFixture)] ) {
fixture=[testClass testFixture];
}
SEL testSel=NSSelectorFromString( testName );
@try {
tests++;
fprintf(stderr," %s:%s",[className UTF8String],[testName UTF8String]);
// NSLog(@"%@:%@ -- will test",className,testName);
[fixture performSelector:testSel];
fprintf(stderr,"\r \r");
// NSLog(@"%@:%@ -- success",className,testName);
success++;
} @catch (NSException *error) {
fprintf(stderr,"\r \r");
NSString *name=[error name];
NSString *reason=[error reason];
[failures addObject:[NSString stringWithFormat:@"%@:%@: %@",className,testName,reason]];
}
}
} else {
tests++;
[failures addObject:[NSString stringWithFormat:@"error: %@ not found",className]];
}
}
printf("\n\033[91;3%dmtests: %d total, %d successes %d failures\033[0m\n",failures.count > 0 ? 1:2,tests,success,failures.count);
if (failures.count) {
printf("\n");
for (NSString *failure in failures) {
printf("\033[91;31m%s\033[0m\n",[failure UTF8String]);
}
}
}
int main( int argc, char *argv[] ) {
printf("tests!\n");
runTests();
return 0;
}