param.put("ServiceFactory",msf);
DescEntry entry = entries[l];
//get some helper classes
Summarizer sumIt = new Summarizer();
DynamicClassLoader dcl = new DynamicClassLoader();
TestCase tCase = null;
try {
tCase = (TestCase)
dcl.getInstance("mod._"+entry.entryName);
} catch (java.lang.IllegalArgumentException ie) {
entry.ErrorMsg=ie.getMessage();
entry.hasErrorMsg=true;
} catch (java.lang.NoClassDefFoundError ie) {
entry.ErrorMsg=ie.getMessage();
entry.hasErrorMsg=true;
}
if (tCase == null) {
sumIt.summarizeDown(entry,entry.ErrorMsg);
LogWriter sumObj = (LogWriter) dcl.getInstance(
(String)param.get("OutProducer"));
sumObj.initialize(entry,true);
entry.UserDefinedParams = param;
sumObj.summary(entry);
continue;
}
System.out.println("Creating: "+tCase.getObjectName());
LogWriter log = (LogWriter) dcl.getInstance(
(String)param.get("LogWriter"));
log.initialize(entry,true);
entry.UserDefinedParams = param;
TestEnvironment tEnv = null;
try {
tCase.setLogWriter((PrintWriter) log);
tCase.initializeTestCase(param);
tEnv = tCase.getTestEnvironment(param);
} catch (Exception e) {
System.out.println("Exception while creating "+tCase.getObjectName());
System.out.println("Message "+e.getMessage());
tEnv = null;
} catch (java.lang.UnsatisfiedLinkError e) {
System.out.println("Exception while creating "+tCase.getObjectName());
System.out.println("Message "+e.getMessage());
tEnv = null;
} catch (java.lang.NoClassDefFoundError e) {
System.out.println("Exception while creating "+tCase.getObjectName());
System.out.println("Message "+e.getMessage());
tEnv = null;
}
if (tEnv == null) {
sumIt.summarizeDown(entry,"Couldn't create "+tCase.getObjectName());
LogWriter sumObj = (LogWriter) dcl.getInstance(
(String)param.get("OutProducer"));
sumObj.initialize(entry,true);
entry.UserDefinedParams = param;
sumObj.summary(entry);
continue;
}
System.out.println(tCase.getObjectName()+" recreated ");
for (int j=0;j<entry.SubEntryCount;j++) {
if (!entry.SubEntries[j].isToTest) {
Summarizer.summarizeDown(entry.SubEntries[j],"not part of the job");
continue;
}
System.out.println("running: "+entry.SubEntries[j].entryName);
LogWriter ifclog = (LogWriter) dcl.getInstance(
(String)param.get("LogWriter"));
ifclog.initialize(entry.SubEntries[j],true);
entry.SubEntries[j].UserDefinedParams = param;
entry.SubEntries[j].Logger = ifclog;
if (tEnv == null || tEnv.isDisposed()) {
helper.ProcessHandler ph =
(helper.ProcessHandler) param.get("AppProvider");
if (ph != null) {
ph.kill();
shortWait(5000);
}
tEnv = getEnv(entry,param);
}
MultiMethodTest ifc = null;
lib.TestResult res = null;
try {
ifc = (MultiMethodTest) dcl.getInstance(
entry.SubEntries[j].entryName);
res = ifc.run(entry.SubEntries[j],tEnv,param);
} catch (IllegalArgumentException iae) {
System.out.println("Couldn't load class "+entry.SubEntries[j].entryName);
System.out.println("**** "+iae.getMessage()+" ****");
Summarizer.summarizeDown(entry.SubEntries[j],iae.getMessage());
} catch (java.lang.NoClassDefFoundError iae) {
System.out.println("Couldn't load class "+entry.SubEntries[j].entryName);
System.out.println("**** "+iae.getMessage()+" ****");
Summarizer.summarizeDown(entry.SubEntries[j],iae.getMessage());
} catch (java.lang.RuntimeException e) {
helper.ProcessHandler ph =
(helper.ProcessHandler) param.get("AppProvider");
if (ph != null) {
ph.kill();
shortWait(5000);
}
tEnv = getEnv(entry,param);
ifc = (MultiMethodTest) dcl.getInstance(
entry.SubEntries[j].entryName);
if ((tEnv != null) && (ifc != null)) {
res = ifc.run(entry.SubEntries[j],tEnv,param);
} else res = null;
}
if (res != null) {
for (int k=0;k<entry.SubEntries[j].SubEntryCount;k++) {
if (res.hasMethod(entry.SubEntries[j].SubEntries[k].entryName)) {
entry.SubEntries[j].SubEntries[k].State=
res.getStatusFor(entry.SubEntries[j].SubEntries[k].entryName).toString();
}
}
}
sumIt.summarizeUp(entry.SubEntries[j]);
LogWriter sumIfc = (LogWriter) dcl.getInstance(
(String)param.get("OutProducer"));
sumIfc.initialize(entry.SubEntries[j],true);
entry.SubEntries[j].UserDefinedParams = param;
sumIfc.summary(entry.SubEntries[j]);
}
try {
tCase.cleanupTestCase(param);
} catch (Exception e) {
System.out.println("couldn't cleanup");
} catch (java.lang.NoClassDefFoundError e){
System.out.println("couldn't cleanup");
}
sumIt.summarizeUp(entry);
LogWriter sumObj = (LogWriter) dcl.getInstance(
(String)param.get("OutProducer"));
sumObj.initialize(entry,true);
sumObj.summary(entry);
}