ftp.nice.ch/pub/next/tools/performance/NWBench.NIHS.bs.tar.gz#/NWBench.NIHS.bs/Source/Controller.m

This is Controller.m in view mode; [Download] [Up]

#import "Controller.h"
#import "Benchmark.h"

@implementation Controller

- runAll:sender
{
	List	*list;
	int	i;

	list	= [benchmarkMatrix cellList];

	for(i=0;i<list->numElements;i++){
		[list->dataPtr[i] performClick:self];
	}
	[sendButton	setEnabled:YES];
	return self;
}


- logResults:(char *)buf
{
	int	len = [resultsText textLength];

	[resultsText setSel:len :len];
	[resultsText replaceSel:buf];
	[resultsText replaceSel:"\n"];
	return self;
}


- runDhrystone:sender
{
	int dhry_main();
	char	buf[256];

	[dhryField setIntValue:dhry_main()];
	[mipsField setFloatValue:(float)[dhryField intValue]/1575.0];
	sprintf(buf,"MIPS: %g\n",[mipsField floatValue]);
	[self	logResults:buf];
	return self;
}

- runMemSpeed:sender
{
	[memSpeed runBenchmark];
	return self;
}


- runEthSpeed:sender
{
	[etSpeed runBenchmark];
	return self;
}

- runUser:sender
{
	[userSpeed runBenchmark];
	return self;
}

- runPS:sender
{
	[psBench runBenchmark];
	return self;
}


- runDiskSpeed:sender
{
	[diskSpeed runBenchmark];
	return self;
}

- runDeveloper:sender
{
	[devBench runBenchmark];
	return self;
}

- appendFile:(const char *)file toText:text
{
	NXStream	*str;
	char		*addr;
	int		len,maxlen;
	int		tlen = [text textLength];

	str = NXMapFile(file,NX_READONLY);
	if(!str) return self;
	NXGetMemoryBuffer(str,&addr,&len,&maxlen);

	[text	setSel:tlen :tlen];
	[text	replaceSel:addr];

	NXCloseMemory(str,NX_FREEBUFFER);
	return self;
}

- appDidInit:sender
{
	workspace = [Application workspace];
	[workspace hideOtherApplications];

	[self	appendFile:"/usr/Devices/System.config/Instance0.table"
		toText:resultsText];
	
	if(getuid()==0 || geteuid()==0){
		system("/bin/rm -f /tmp/out;"
			"/usr/etc/disk -q /dev/rsd0a > /tmp/out");
		[self	appendFile:"/tmp/out" toText:resultsText];
	}

	else {
		[self logResults:"Benchmark program should be run as root "
				"for additional info."];
	}

	
	return self;
}


- submitToNeXT:sender
{
	char	*disk;
	char	*cc;
	NXStream	*results;
	char	buf[MAXPATHLEN+1];
	char	buf2[MAXPATHLEN+1];

	if(NXRunAlertPanel(0,"Insert Floppy Disk","OK","Abort",0)){
		return nil;
	}
	[workspace checkForRemovableMedia];
	if(![workspace getMountedRemovableMedia:&disk]){
		NXRunAlertPanel(0,"Can't find removable media",0,0,0);
		return nil;
	}		
	if(cc=index(disk,'\t')) *disk = '\000';
	strcpy(buf,disk);
	strcpy(buf2,disk);

	strcat(buf,"/results");
	strcat(buf2,"check");
	results = NXOpenMemory(0,0,NX_READWRITE);

	[resultsText	writeText:results];
	NXSaveToFile(results,buf);
	NXCloseMemory(results,NX_FREEBUFFER);

	sprintf("sum %s | awk '{print $1 * 1234}' > %s",buf,buf2);

	return self;
}


@end

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.