package org.overture.vdm2jml.tests.exec;
import java.io.File;
import org.junit.Assume;
import org.overture.ast.lex.Dialect;
import org.overture.codegen.tests.exec.util.ExecutionResult;
import org.overture.codegen.tests.exec.util.testhandlers.TraceHandler;
import org.overture.codegen.tests.util.JavaToolsUtils;
import org.overture.codegen.vdm2jml.JmlGenerator;
import org.overture.config.Release;
public class JmlTraceTestHandler extends TraceHandler
{
public JmlTraceTestHandler(Release release, Dialect dialect)
{
super(release, dialect);
}
@Override
public String getMainClassAnnotation()
{
return JmlGenerator.JML_NULLABLE_BY_DEFAULT;
}
@Override
public ExecutionResult runJava(File folder)
{
String openJmlDir = System.getenv(JmlExecTestBase.OPENJML_ENV_VAR);
Assume.assumeTrue("Could not find OpenJML installation directory", openJmlDir != null);
File cgRuntime = new File(JmlExecTestBase.CODEGEN_RUNTIME);
File openJml = new File(openJmlDir, JmlExecTestBase.OPEN_JML);
JmlExecTestBase.assumeFile(JmlExecTestBase.OPEN_JML, openJml);
File vdm2jmlRuntime = new File(JmlExecTestBase.VDM_TO_JML_RUNTIME);
JmlExecTestBase.assumeFile(JmlExecTestBase.VDM_TO_JML_RUNTIME, vdm2jmlRuntime);
File jmlRuntime = new File(openJmlDir, JmlExecTestBase.JML_RUNTIME);
JmlExecTestBase.assumeFile(JmlExecTestBase.JML_RUNTIME, jmlRuntime);
ExecutionResult produceExecResult = produceExecResult(folder, new String[] {
JavaToolsUtils.ENABLE_ASSERTIONS_ARG }, new File[] { jmlRuntime,
openJml, cgRuntime, vdm2jmlRuntime });
return processTraceResult(produceExecResult);
}
}