This is RegressionTest.m in view mode; [Download] [Up]
/**************************************************
* SynthBuilder
* Copyright 1993 Nick Porcaro All Rights Reserved
**************************************************/
#import <stdlib.h>
#import <math.h>
#import <stddef.h>
#import <ctype.h>
#import <string.h>
#import <appkit/Application.h>
#import <appkit/Panel.h>
#import <appkit/Control.h>
#import "Utilities.h"
#import "RegressionTest.h"
#import "Controller.h"
#import "FakeSynthPatch.h"
#import "MKCodeGen.h"
extern char *getAppName();
@implementation RegressionTest
- awakeFromNib
{
theRegressionDir = (char *) [regressionDirField stringValue];
theExampleDir = (char *) [exampleDirField stringValue];
return self;
}
- init
{
[super init];
[NXApp loadNibSection:"RegressionTest.nib" owner:self withNames:YES];
return self;
}
static char *examplePatches[] = {
"addamsFamily",
"am",
"amSynth",
"basicsounds",
"basicstereo",
"bottle",
"brass",
"brassSynth",
"dualRes",
"feedback",
"fm",
"fmSynth",
"fullsounds",
"guitarSynth",
"karplusStrong",
"multiControllers",
"partials",
"pitchednoise",
"realam",
"scaryBirds",
"stereo",
"stringPan",
"waveTableSynth",
"wobblyWaves"
};
#define NUM_TESTS sizeof(examplePatches)/sizeof(char*)
- displayInspector:sender
{
[inspector makeKeyAndOrderFront:self];
return self;
}
- setRegressionTestDir:sender
{
theRegressionDir = (char *) [sender stringValue];
return self;
}
- setExampleDir:sender
{
theExampleDir = (char *) [sender stringValue];
return self;
}
- runRegressionTests:sender
{
int i;
int example_count = NUM_TESTS;
static char outputFile[1024];
static char exampleFile[1024];
static char tempString[4096];
if (!theRegressionDir)
{
NXRunAlertPanel(getAppName(), "Set the regression test directory",
NULL, NULL, NULL);
return self;
}
if (!theExampleDir)
{
NXRunAlertPanel(getAppName(), "Set the example directory",
NULL, NULL, NULL);
return self;
}
/* Generate all the files */
for (i=0; i<example_count; i++)
{
sprintf(exampleFile, "%s/%s", theExampleDir, examplePatches[i]);
sprintf(outputFile, "%s/%s.m", theRegressionDir, examplePatches[i]);
[(Controller *) theController openFile:exampleFile];
[theMKCodeGen emitCodeTo:outputFile genComments:1 ToDest: -1];
}
/* Compile all the example apps sequentially */
for (i=0; i<example_count; i++)
{
sprintf(outputFile, "%s/%s.m", theRegressionDir, examplePatches[i]);
sprintf(tempString, "%s/mk-tester -no_start -mfile %s -sb_dir %s",
[utilities getAppDir], outputFile, [utilities getAppDir]);
printf("%s\n", tempString);
system(tempString);
}
return self;
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.