protected ExecutionResult runTest(TestCase test) {
ExecutionResult result = new ExecutionResult(test);
try {
logger.debug("Executing test");
result = TestCaseExecutor.getInstance().execute(test);
int num = test.size();
MaxStatementsStoppingCondition.statementsExecuted(num);
result.setTrace(comparisonObserver.getTrace(), ComparisonTraceEntry.class);
result.setTrace(primitiveObserver.getTrace(), PrimitiveTraceEntry.class);
result.setTrace(inspectorObserver.getTrace(), InspectorTraceEntry.class);
result.setTrace(fieldObserver.getTrace(), PrimitiveFieldTraceEntry.class);
result.setTrace(nullObserver.getTrace(), NullTraceEntry.class);
result.setTrace(sameObserver.getTrace(), SameTraceEntry.class);
if(!Properties.isRegression())
result.setTrace(arrayObserver.getTrace(), ArrayTraceEntry.class);
result.setTrace(arrayLengthObserver.getTrace(), ArrayLengthTraceEntry.class);
result.setTrace(containsTraceObserver.getTrace(), ContainsTraceEntry.class);
} catch (Exception e) {
throw new Error(e);
}
return result;
}