mirror of
https://github.com/gnustep/libs-base.git
synced 2025-05-30 00:11:26 +00:00
import testsuite
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32187 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
734c214892
commit
0e02133729
374 changed files with 20864 additions and 0 deletions
75
Tests/base/NSTask/launch.m
Normal file
75
Tests/base/NSTask/launch.m
Normal file
|
@ -0,0 +1,75 @@
|
|||
#import <Foundation/NSTask.h>
|
||||
#import <Foundation/NSFileHandle.h>
|
||||
#import <Foundation/NSFileManager.h>
|
||||
#import <Foundation/NSData.h>
|
||||
#import <Foundation/NSAutoreleasePool.h>
|
||||
|
||||
#import "ObjectTesting.h"
|
||||
|
||||
int main()
|
||||
{
|
||||
NSTask *task;
|
||||
NSPipe *outPipe;
|
||||
NSFileManager *mgr;
|
||||
NSString *helpers;
|
||||
NSFileHandle *outHandle;
|
||||
NSAutoreleasePool *arp;
|
||||
NSData *data = nil;
|
||||
|
||||
arp = [[NSAutoreleasePool alloc] init];
|
||||
|
||||
mgr = [NSFileManager defaultManager];
|
||||
helpers = [mgr currentDirectoryPath];
|
||||
helpers = [helpers stringByAppendingPathComponent: @"Helpers"];
|
||||
helpers = [helpers stringByAppendingPathComponent: @"obj"];
|
||||
|
||||
task = [[NSTask alloc] init];
|
||||
outPipe = [[NSPipe pipe] retain];
|
||||
[task setLaunchPath: [helpers stringByAppendingPathComponent: @"testcat"]];
|
||||
[task setArguments: [NSArray arrayWithObjects: nil]];
|
||||
[task setStandardOutput: outPipe];
|
||||
outHandle = [outPipe fileHandleForReading];
|
||||
|
||||
[task launch];
|
||||
PASS([task standardOutput] == outPipe, "standardOutput returns pipe");
|
||||
data = [outHandle readDataToEndOfFile];
|
||||
PASS([data length] > 0, "was able to read data from subtask");
|
||||
NSLog(@"Data was %*.*s", [data length], [data length], [data bytes]);
|
||||
[task terminate];
|
||||
|
||||
task = [[NSTask alloc] init];
|
||||
outPipe = [[NSPipe pipe] retain];
|
||||
[task setLaunchPath: [helpers stringByAppendingPathComponent: @"testecho"]];
|
||||
[task setArguments: [NSArray arrayWithObjects: @"Hello", @"there", nil]];
|
||||
[task setStandardOutput: outPipe];
|
||||
outHandle = [outPipe fileHandleForReading];
|
||||
|
||||
[task launch];
|
||||
data = [outHandle readDataToEndOfFile];
|
||||
PASS([data length] > 0, "was able to read data from subtask");
|
||||
NSLog(@"Data was %*.*s", [data length], [data length], [data bytes]);
|
||||
[task terminate];
|
||||
|
||||
|
||||
TEST_EXCEPTION([task launch];, @"NSInvalidArgumentException", YES,
|
||||
"raised exception on failed launch")
|
||||
[outPipe release];
|
||||
[task release];
|
||||
|
||||
#if !defined(__MINGW32__)
|
||||
task = [[NSTask alloc] init];
|
||||
[task setLaunchPath:
|
||||
[helpers stringByAppendingPathComponent: @"processgroup"]];
|
||||
[task setArguments: [NSArray arrayWithObjects:
|
||||
[NSString stringWithFormat: @"%d", getpgrp()],
|
||||
nil]];
|
||||
[task launch];
|
||||
[task waitUntilExit];
|
||||
PASS([task terminationStatus] == 0, "subtask changes process group");
|
||||
[task release];
|
||||
#endif
|
||||
|
||||
[arp release];
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue