}
if (tCase == null) {
sumIt.summarizeDown(entry, entry.ErrorMsg);
LogWriter sumObj = OutProducerFactory.createOutProducer(param);
entry.UserDefinedParams = param;
sumObj.initialize(entry, logging);
sumObj.summary(entry);
continue;
}
System.out.println("Creating: " + tCase.getObjectName());
LogWriter log = (LogWriter) dcl.getInstance(
(String) param.get("LogWriter"));
log.initialize(entry, logging);
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());
e.printStackTrace ();
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 = OutProducerFactory.createOutProducer(param);
entry.UserDefinedParams = param;
sumObj.initialize(entry, logging);
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;
}
if (( exclusions != null ) && (exclusions.contains(entry.SubEntries[j].longName))) {
Summarizer.summarizeDown(entry.SubEntries[j],
"known issue");
continue;
}
System.out.println("running: " +
entry.SubEntries[j].entryName);
LogWriter ifclog = (LogWriter) dcl.getInstance(
(String) param.get("LogWriter"));
ifclog.initialize(entry.SubEntries[j], logging);
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) {
office.closeExistingOffice(param, true);
shortWait(5000);
}
tEnv = getEnv(entry, param);
}
MultiMethodTest ifc = null;
lib.TestResult res = null;
// run the interface test twice if it failed.
int countInterfaceTestRun = 0;
boolean finished = false;
while (!finished) {
try {
countInterfaceTestRun++;
finished = true;
res = executeInterfaceTest(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) {
office.closeExistingOffice(param, true);
shortWait(5000);
}
tEnv = getEnv(entry, param);
if (countInterfaceTestRun < 2) {
finished = false;
}
else {
Summarizer.summarizeDown(entry.SubEntries[j],
e.toString()+".FAILED");
}
}
}
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 = OutProducerFactory.createOutProducer(param);
entry.SubEntries[j].UserDefinedParams = param;
sumIfc.initialize(entry.SubEntries[j], logging);
sumIfc.summary(entry.SubEntries[j]);
}
try {
if (!keepdocument) 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 = OutProducerFactory.createOutProducer(param);
sumObj.initialize(entry, logging);
sumObj.summary(entry);
}
if (entries.length > 1) {
System.out.println();