mirror of
https://github.com/gnustep/libs-base.git
synced 2025-05-30 08:21:25 +00:00
Merge branch 'master' into NSBundle-msvc-tests
This commit is contained in:
commit
ca9136397d
26 changed files with 142 additions and 39 deletions
|
@ -16,6 +16,8 @@ int main()
|
|||
GSXMLNode *node;
|
||||
GSXMLRPC *rpc;
|
||||
NSString *str;
|
||||
NSString *testPath;
|
||||
NSString *absolutePath;
|
||||
NSData *dat;
|
||||
|
||||
TEST_FOR_CLASS(@"GSXMLDocument",[GSXMLDocument alloc],
|
||||
|
@ -149,13 +151,16 @@ int main()
|
|||
"Can parse a method call with a date");
|
||||
|
||||
mgr = [NSFileManager defaultManager];
|
||||
testPath = [[mgr currentDirectoryPath]
|
||||
stringByAppendingPathComponent: @"GNUmakefile"];
|
||||
absolutePath = [[NSURL fileURLWithPath: testPath] absoluteString];
|
||||
|
||||
str = [NSString stringWithFormat:
|
||||
@"<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n"
|
||||
@"<!DOCTYPE foo [\n"
|
||||
@"<!ENTITY foo SYSTEM \"file://%@/GNUmakefile\">\n"
|
||||
@"<!ENTITY foo SYSTEM \"%@\">\n"
|
||||
@"]>\n"
|
||||
@"<file>&&foo;A</file>", [mgr currentDirectoryPath]];
|
||||
@"<file>&&foo;A</file>", absolutePath];
|
||||
|
||||
parser = [GSXMLParser parserWithData:
|
||||
[str dataUsingEncoding: NSUTF8StringEncoding]];
|
||||
|
|
|
@ -10,27 +10,34 @@ int main()
|
|||
[dict setObject:@"value" forKey:@"key"];
|
||||
NSProgress *progress = [[NSProgress alloc] initWithParent: nil
|
||||
userInfo: dict];
|
||||
PASS(progress != nil, "[NSProgress initWithParent:userInfo:] returns instance");
|
||||
PASS(progress != nil,
|
||||
"[NSProgress initWithParent:userInfo:] returns instance");
|
||||
|
||||
PASS_EQUAL([progress userInfo], dict, @"[NSProgress userInfo] returns correct user info");
|
||||
PASS_EQUAL([progress userInfo], dict,
|
||||
"[NSProgress userInfo] returns correct user info");
|
||||
|
||||
[progress setUserInfoObject:@"new value" forKey:@"key"];
|
||||
PASS_EQUAL([[progress userInfo] objectForKey:@"key"], @"new value", @"[NSProgress setUserInfoObject:forKey:] updates user info");
|
||||
PASS_EQUAL([[progress userInfo] objectForKey:@"key"], @"new value",
|
||||
"[NSProgress setUserInfoObject:forKey:] updates user info");
|
||||
|
||||
progress = [NSProgress discreteProgressWithTotalUnitCount:100];
|
||||
PASS(progress != nil, "[NSProgress discreteProgressWithTotalUnitCount:] returns instance");
|
||||
PASS(progress != nil,
|
||||
"[NSProgress discreteProgressWithTotalUnitCount:] returns instance");
|
||||
|
||||
progress = [NSProgress progressWithTotalUnitCount:100];
|
||||
PASS(progress != nil, "[NSProgress progressWithTotalUnitCount:] returns instance");
|
||||
PASS(progress != nil,
|
||||
"[NSProgress progressWithTotalUnitCount:] returns instance");
|
||||
|
||||
progress = [NSProgress progressWithTotalUnitCount:100
|
||||
parent:progress
|
||||
pendingUnitCount:50];
|
||||
PASS(progress != nil, "[NSProgress progressWithTotalUnitCount:] returns instance");
|
||||
PASS(progress != nil,
|
||||
"[NSProgress progressWithTotalUnitCount:] returns instance");
|
||||
|
||||
[progress becomeCurrentWithPendingUnitCount:50];
|
||||
NSProgress *currentProgress = [NSProgress currentProgress];
|
||||
PASS(currentProgress == progress, "Correct progress object associated with current thread");
|
||||
PASS(currentProgress == progress,
|
||||
"Correct progress object associated with current thread");
|
||||
|
||||
NSProgress *new_progress = [NSProgress progressWithTotalUnitCount:100
|
||||
parent:progress
|
||||
|
@ -40,7 +47,8 @@ int main()
|
|||
|
||||
[currentProgress resignCurrent];
|
||||
|
||||
PASS([NSProgress currentProgress] == nil, "Current progress is nil after resign current");
|
||||
PASS([NSProgress currentProgress] == nil,
|
||||
"Current progress is nil after resign current");
|
||||
|
||||
[arp release]; arp = nil;
|
||||
return 0;
|
||||
|
|
|
@ -9,7 +9,7 @@ NSZombie_OBJC_FILES = NSZombie.m
|
|||
|
||||
processgroup_OBJC_FILES = processgroup.m
|
||||
|
||||
testcat_OBJC_FILES = testcat.m
|
||||
testcat_C_FILES = testcat.c
|
||||
|
||||
testecho_OBJC_FILES = testecho.m
|
||||
|
||||
|
|
|
@ -10,6 +10,8 @@ int main()
|
|||
NSAutoreleasePool *arp = [NSAutoreleasePool new];
|
||||
NSFileManager *mgr;
|
||||
NSString *helpers;
|
||||
NSString *testecho;
|
||||
NSString *testcat;
|
||||
NSArray *args;
|
||||
id task;
|
||||
id info;
|
||||
|
@ -18,6 +20,16 @@ int main()
|
|||
id pth2;
|
||||
BOOL yes;
|
||||
|
||||
/* Windows MSVC adds the '.exe' suffix to executables
|
||||
*/
|
||||
#if defined(_MSC_VER)
|
||||
testecho = @"testecho.exe";
|
||||
testcat = @"testcat.exe";
|
||||
#else
|
||||
testecho = @"testecho";
|
||||
testcat = @"testcat";
|
||||
#endif
|
||||
|
||||
info = [NSProcessInfo processInfo];
|
||||
env = [[info environment] mutableCopy];
|
||||
yes = YES;
|
||||
|
@ -32,7 +44,8 @@ int main()
|
|||
helpers = [helpers stringByAppendingPathComponent: @"Helpers"];
|
||||
helpers = [helpers stringByAppendingPathComponent: @"obj"];
|
||||
|
||||
pth1 = [helpers stringByAppendingPathComponent: @"testcat"];
|
||||
pth1 = [helpers stringByAppendingPathComponent: testcat];
|
||||
pth2 = [helpers stringByAppendingPathComponent: testecho];
|
||||
|
||||
/* Try some tasks. Make sure the program we use is common between Unix
|
||||
and Windows (and others?) */
|
||||
|
@ -43,7 +56,6 @@ int main()
|
|||
|
||||
task = [NSTask new];
|
||||
args = [NSArray arrayWithObjects: @"xxx", @"yyy", nil];
|
||||
pth2 = [helpers stringByAppendingPathComponent: @"testecho"];
|
||||
[task setEnvironment: env];
|
||||
[task setLaunchPath: pth2];
|
||||
[task setArguments: args];
|
||||
|
|
|
@ -8,15 +8,28 @@
|
|||
|
||||
int main()
|
||||
{
|
||||
NSAutoreleasePool *arp = [NSAutoreleasePool new];
|
||||
NSTask *task;
|
||||
NSPipe *outPipe;
|
||||
NSFileManager *mgr;
|
||||
NSString *helpers;
|
||||
NSString *testecho;
|
||||
NSString *testcat;
|
||||
NSString *processgroup;
|
||||
NSFileHandle *outHandle;
|
||||
NSAutoreleasePool *arp;
|
||||
NSData *data = nil;
|
||||
|
||||
arp = [[NSAutoreleasePool alloc] init];
|
||||
/* Windows MSVC adds the '.exe' suffix to executables
|
||||
*/
|
||||
#if defined(_MSC_VER)
|
||||
testecho = @"testecho.exe";
|
||||
testcat = @"testcat.exe";
|
||||
processgroup = @"processgroup.exe";
|
||||
#else
|
||||
testecho = @"testecho";
|
||||
testcat = @"testcat";
|
||||
processgroup = @"processgroup";
|
||||
#endif
|
||||
|
||||
mgr = [NSFileManager defaultManager];
|
||||
helpers = [mgr currentDirectoryPath];
|
||||
|
@ -25,7 +38,7 @@ int main()
|
|||
|
||||
task = [[NSTask alloc] init];
|
||||
outPipe = [[NSPipe pipe] retain];
|
||||
[task setLaunchPath: [helpers stringByAppendingPathComponent: @"testcat"]];
|
||||
[task setLaunchPath: [helpers stringByAppendingPathComponent: testcat]];
|
||||
[task setArguments: [NSArray arrayWithObjects: nil]];
|
||||
[task setStandardOutput: outPipe];
|
||||
outHandle = [outPipe fileHandleForReading];
|
||||
|
@ -39,7 +52,7 @@ int main()
|
|||
|
||||
task = [[NSTask alloc] init];
|
||||
outPipe = [[NSPipe pipe] retain];
|
||||
[task setLaunchPath: [helpers stringByAppendingPathComponent: @"testecho"]];
|
||||
[task setLaunchPath: [helpers stringByAppendingPathComponent: testecho]];
|
||||
[task setArguments: [NSArray arrayWithObjects: @"Hello", @"there", nil]];
|
||||
[task setStandardOutput: outPipe];
|
||||
outHandle = [outPipe fileHandleForReading];
|
||||
|
@ -59,7 +72,7 @@ int main()
|
|||
#if !defined(_WIN32)
|
||||
task = [[NSTask alloc] init];
|
||||
[task setLaunchPath:
|
||||
[helpers stringByAppendingPathComponent: @"processgroup"]];
|
||||
[helpers stringByAppendingPathComponent: processgroup]];
|
||||
[task setArguments: [NSArray arrayWithObjects:
|
||||
[NSString stringWithFormat: @"%d", getpgrp()],
|
||||
nil]];
|
||||
|
|
|
@ -32,7 +32,19 @@ static BOOL taskTerminationNotificationReceived;
|
|||
- (void) testNSTaskNotifications
|
||||
{
|
||||
NSDate *deadline;
|
||||
NSString *testsleep;
|
||||
NSString *testecho;
|
||||
BOOL earlyTermination = NO;
|
||||
|
||||
/* Windows MSVC adds the '.exe' suffix to executables
|
||||
*/
|
||||
#if defined(_MSC_VER)
|
||||
testecho = @"testecho.exe";
|
||||
testsleep = @"testsleep.exe";
|
||||
#else
|
||||
testecho = @"testecho";
|
||||
testsleep = @"testsleep";
|
||||
#endif
|
||||
|
||||
for (;;)
|
||||
{
|
||||
|
@ -48,7 +60,7 @@ static BOOL taskTerminationNotificationReceived;
|
|||
{
|
||||
BOOL terminated = NO;
|
||||
[task setLaunchPath:
|
||||
[path stringByAppendingPathComponent: @"testsleep"]];
|
||||
[path stringByAppendingPathComponent: testsleep]];
|
||||
[task launch];
|
||||
NSLog(@"Launched pid %d", [task processIdentifier]);
|
||||
NSLog(@"Running run loop for 5 seconds");
|
||||
|
@ -74,7 +86,7 @@ static BOOL taskTerminationNotificationReceived;
|
|||
else
|
||||
{
|
||||
[task setLaunchPath:
|
||||
[path stringByAppendingPathComponent: @"testecho"]];
|
||||
[path stringByAppendingPathComponent: testecho]];
|
||||
[task launch];
|
||||
NSLog(@"Launched pid %d", [task processIdentifier]);
|
||||
NSLog(@"Running run loop for 15 seconds");
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
#import <Foundation/NSAutoreleasePool.h>
|
||||
#import <Foundation/NSFileManager.h>
|
||||
#import <Foundation/NSStream.h>
|
||||
#import <Foundation/NSURL.h>
|
||||
#import <Foundation/NSUserDefaults.h>
|
||||
#import <Foundation/NSXMLParser.h>
|
||||
#include <string.h>
|
||||
|
@ -256,6 +257,12 @@ testParser(NSXMLParser *parser, NSString *expect)
|
|||
}
|
||||
else
|
||||
{
|
||||
#if defined(_WIN32)
|
||||
/* Replace CRLF from result files with LF
|
||||
*/
|
||||
expect = [expect stringByReplacingOccurrencesOfString: @"\r\n" withString: @"\n"];
|
||||
#endif
|
||||
|
||||
if (NO == [[handler description] isEqual: expect])
|
||||
{
|
||||
NSLog(@"######## Expected:\n%@\n######## Parsed:\n%@\n########\n",
|
||||
|
@ -370,6 +377,8 @@ int main()
|
|||
|
||||
{
|
||||
NSString *exp;
|
||||
NSString *mgrPath;
|
||||
NSString *absolutePath;
|
||||
NSData *dat;
|
||||
|
||||
exp = @"parserDidStartDocument:\n\
|
||||
|
@ -378,10 +387,13 @@ parser:didStartElement:namespaceURI:qualifiedName:attributes: file file {\n}\n\
|
|||
parserDidEndDocument:\n\
|
||||
";
|
||||
|
||||
mgrPath = [[mgr currentDirectoryPath] stringByAppendingPathComponent: @"GNUmakefile"];
|
||||
absolutePath = [[NSURL fileURLWithPath: mgrPath] absoluteString];
|
||||
|
||||
str = [NSString stringWithFormat:
|
||||
@"<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n"
|
||||
@"<!DOCTYPE file [<!ENTITY foo SYSTEM \"file://%@/GNUmakefile\">]>\n"
|
||||
@"<file>&&foo;A</file>", [mgr currentDirectoryPath]];
|
||||
@"<!DOCTYPE file [<!ENTITY foo SYSTEM \"%@\">]>\n"
|
||||
@"<file>&&foo;A</file>", absolutePath];
|
||||
|
||||
dat = [str dataUsingEncoding: NSUTF8StringEncoding];
|
||||
PASS((testParseData(dat, exp, YES)), "external entity (strict)")
|
||||
|
|
Binary file not shown.
|
@ -114,15 +114,10 @@ void testReadBasicType_##testName (char *pre, testType *expect, testType *toDeco
|
|||
NSData *data; \
|
||||
NSUnarchiver *unArch; \
|
||||
NSString *str2; \
|
||||
NSArray *encodedFiles; \
|
||||
NSString *prefix = [[NSString stringWithCString:pre] retain]; \
|
||||
unsigned int i, c; \
|
||||
encodedFiles = [[NSBundle bundleWithPath: [fm currentDirectoryPath]] \
|
||||
pathsForResourcesOfType:@"type" inDirectory:nil]; \
|
||||
for (i = 0, c = [encodedFiles count]; i < c; i++) \
|
||||
{ \
|
||||
NSString *fileName = [encodedFiles objectAtIndex:i]; \
|
||||
if ([[fileName lastPathComponent] hasPrefix:prefix]) \
|
||||
NSString *fileName; \
|
||||
long typeSize = sizeof(testType); \
|
||||
fileName = [[NSString stringWithFormat:@"%s-%li.type",pre,typeSize] retain]; \
|
||||
if ([fm isReadableFileAtPath:fileName]) \
|
||||
{ \
|
||||
data = [NSData dataWithContentsOfFile:fileName]; \
|
||||
unArch = [[NSUnarchiver alloc] initForReadingWithData:data]; \
|
||||
|
@ -136,7 +131,10 @@ void testReadBasicType_##testName (char *pre, testType *expect, testType *toDeco
|
|||
PASS((VAL_TEST(*expect,*toDecode) && [str isEqual:str2]), \
|
||||
"can unarchive %s from %s", pre, [fileName UTF8String]); \
|
||||
} \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
PASS(1 == 2, "Archive %s not found.", [fileName UTF8String]); \
|
||||
} \
|
||||
}
|
||||
|
||||
#define VAL_TEST(testX,testY) testX == testY
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue