use of com.dat3m.dartagnan.parsers.cat.ParserCat in project Dat3M by hernanponcedeleon.
the class PrinterTest method AARCH64toString.
@Test()
public void AARCH64toString() throws Exception {
Wmm cat = new ParserCat().parse(new File(ResourceHelper.CAT_RESOURCE_PATH + "cat/aarch64.cat"));
assertNotNull(cat.toString());
}
use of com.dat3m.dartagnan.parsers.cat.ParserCat in project Dat3M by hernanponcedeleon.
the class UnusedTestFails method data.
@Parameterized.Parameters(name = "{index}: {0} bound={2}")
public static Iterable<Object[]> data() throws IOException {
String scCat = GlobalSettings.ATOMIC_AS_LOCK ? "cat/svcomp-locks.cat" : "cat/svcomp.cat";
Wmm sc = new ParserCat().parse(new File(ResourceHelper.CAT_RESOURCE_PATH + scCat));
Wmm tso = new ParserCat().parse(new File(ResourceHelper.CAT_RESOURCE_PATH + "cat/tso.cat"));
Wmm power = new ParserCat().parse(new File(ResourceHelper.CAT_RESOURCE_PATH + "cat/power.cat"));
Wmm arm = new ParserCat().parse(new File(ResourceHelper.CAT_RESOURCE_PATH + "cat/aarch64.cat"));
List<Object[]> data = new ArrayList<>();
return data;
}
use of com.dat3m.dartagnan.parsers.cat.ParserCat in project Dat3M by hernanponcedeleon.
the class BuildWitnessTest method BuildWriteEncode.
@Test
public void BuildWriteEncode() throws Exception {
Configuration config = Configuration.builder().setOption(WITNESS_ORIGINAL_PROGRAM_PATH, ResourceHelper.TEST_RESOURCE_PATH + "witness/lazy01-for-witness.bpl").setOption(BOUND, "1").build();
Program p = new ProgramParser().parse(new File(ResourceHelper.TEST_RESOURCE_PATH + "witness/lazy01-for-witness.bpl"));
Wmm wmm = new ParserCat().parse(new File(ResourceHelper.CAT_RESOURCE_PATH + "cat/svcomp.cat"));
VerificationTask task = VerificationTask.builder().withConfig(config).build(p, wmm, EnumSet.of(Property.getDefault()));
try (SolverContext ctx = TestHelper.createContext();
ProverEnvironment prover = ctx.newProverEnvironment(ProverOptions.GENERATE_MODELS)) {
Result res = IncrementalSolver.run(ctx, prover, task);
WitnessBuilder witnessBuilder = new WitnessBuilder(task, ctx, prover, res);
config.inject(witnessBuilder);
WitnessGraph graph = witnessBuilder.build();
File witnessFile = new File(System.getenv("DAT3M_HOME") + "/output/lazy01-for-witness.graphml");
// The file should not exist
assertFalse(witnessFile.exists());
// Write to file
graph.write();
// The file should exist now
assertTrue(witnessFile.exists());
// Delete the file
witnessFile.delete();
// Create encoding
BooleanFormula enc = graph.encode(p, ctx);
BooleanFormulaManager bmgr = ctx.getFormulaManager().getBooleanFormulaManager();
// Check the formula is not trivial
assertFalse(bmgr.isFalse(enc));
assertFalse(bmgr.isTrue(enc));
}
}
use of com.dat3m.dartagnan.parsers.cat.ParserCat in project Dat3M by hernanponcedeleon.
the class Dat3M method runTest.
private void runTest() {
UiOptions options = optionsPane.getOptions();
testResult = null;
try {
Editor programEditor = editorsPane.getEditor(EditorCode.PROGRAM);
Program program = new ProgramParser().parse(programEditor.getEditorPane().getText(), programEditor.getLoadedFormat());
try {
Wmm targetModel = new ParserCat().parse(editorsPane.getEditor(EditorCode.TARGET_MM).getEditorPane().getText());
testResult = new ReachabilityResult(program, targetModel, options);
} catch (Exception e) {
String msg = e.getMessage() == null ? "Memory model cannot be parsed" : e.getMessage();
showError(msg, "Target memory model error");
}
} catch (Exception e) {
String msg = e.getMessage() == null ? "Program cannot be parsed" : e.getMessage();
Throwable cause = e.getCause();
if (cause instanceof InputMismatchException) {
Token token = ((InputMismatchException) cause).getOffendingToken();
msg = "Problem with \"" + token.getText() + "\" at line " + token.getLine();
}
showError(msg, "Program error");
}
}
use of com.dat3m.dartagnan.parsers.cat.ParserCat in project Dat3M by hernanponcedeleon.
the class BranchTest method data.
@Parameterized.Parameters(name = "{index}: {0}")
public static Iterable<Object[]> data() throws IOException {
ImmutableMap<String, Result> expected = readExpectedResults();
Wmm linuxWmm = new ParserCat().parse(new File(ResourceHelper.CAT_RESOURCE_PATH + "cat/linux-kernel.cat"));
Wmm aarch64Wmm = new ParserCat().parse(new File(ResourceHelper.CAT_RESOURCE_PATH + "cat/aarch64.cat"));
List<Object[]> data;
try (Stream<Path> fileStream = Files.walk(Paths.get(ResourceHelper.TEST_RESOURCE_PATH + "branch/C/"))) {
data = fileStream.filter(Files::isRegularFile).filter(f -> (f.toString().endsWith("litmus"))).map(f -> new Object[] { f.toString(), expected.get(f.getFileName().toString()), linuxWmm }).collect(Collectors.toList());
}
try (Stream<Path> fileStream = Files.walk(Paths.get(ResourceHelper.TEST_RESOURCE_PATH + "branch/AARCH64/"))) {
data.addAll(fileStream.filter(Files::isRegularFile).filter(f -> (f.toString().endsWith("litmus"))).map(f -> new Object[] { f.toString(), expected.get(f.getFileName().toString()), aarch64Wmm }).collect(Collectors.toList()));
}
return data;
}
Aggregations