Merge branch 'master' into NSBundle-msvc-tests

This commit is contained in:
Hugo Melder 2022-08-11 09:16:06 +02:00 committed by GitHub
commit ca9136397d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
26 changed files with 142 additions and 39 deletions

View file

@ -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>&amp;&foo;&#65;</file>", [mgr currentDirectoryPath]];
@"<file>&amp;&foo;&#65;</file>", absolutePath];
parser = [GSXMLParser parserWithData:
[str dataUsingEncoding: NSUTF8StringEncoding]];

View file

@ -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;

View file

@ -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

View file

@ -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];

View file

@ -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]];

View file

@ -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");

View file

@ -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>&amp;&foo;&#65;</file>", [mgr currentDirectoryPath]];
@"<!DOCTYPE file [<!ENTITY foo SYSTEM \"%@\">]>\n"
@"<file>&amp;&foo;&#65;</file>", absolutePath];
dat = [str dataUsingEncoding: NSUTF8StringEncoding];
PASS((testParseData(dat, exp, YES)), "external entity (strict)")

Binary file not shown.

View file

@ -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.