diff --git a/build.gradle b/build.gradle index 40bf160ae8450589d027d7d434dc89c3f2e051ee..8ac771526db05a6503b03bf5bbe9335c5ec6e968 100644 --- a/build.gradle +++ b/build.gradle @@ -36,7 +36,6 @@ dependencies { testCompile (group: 'junit', name: 'junit', version: '4.7') - testCompile (group: 'de.prob', name: 'tla2b', version: '1.0.4-SNAPSHOT') testCompile (group: 'de.prob', name: 'tla2bAST', version: '1.0.5-SNAPSHOT') releaseJars (group: 'de.tla', name: 'tlatools', version: '1.0.0-SNAPSHOT') diff --git a/src/test/java/de/tlc4b/analysis/NotSupportedTest.java b/src/test/java/de/tlc4b/analysis/NotSupportedTest.java new file mode 100644 index 0000000000000000000000000000000000000000..e7e67a600cce7e176736fe7918ae797162e8f690 --- /dev/null +++ b/src/test/java/de/tlc4b/analysis/NotSupportedTest.java @@ -0,0 +1,16 @@ +package de.tlc4b.analysis; + +import static de.tlc4b.util.TestUtil.checkMachine; + +import org.junit.Test; + +import de.tlc4b.exceptions.NotSupportedException; + +public class NotSupportedTest { + + @Test(expected = NotSupportedException.class) + public void testDuplicateSeenMachine() throws Exception { + String machine = "MACHINE test \n" + "SEES M1 \n" + "END"; + checkMachine(machine); + } +} diff --git a/src/test/java/de/tlc4b/analysis/RenamerTest.java b/src/test/java/de/tlc4b/analysis/RenamerTest.java index fbb1645886aa7588d0024dddbe5a504df2d63e88..40061430d2733f61aa5cdce272dcb96150b927c8 100644 --- a/src/test/java/de/tlc4b/analysis/RenamerTest.java +++ b/src/test/java/de/tlc4b/analysis/RenamerTest.java @@ -28,8 +28,8 @@ public class RenamerTest { String expected = "---- MODULE test ----\n" + "VARIABLES WITH_1 \n" - + "Inv == WITH_1 = 1\n" - + "Init == WITH_1 = 1 \n" + + "Invariant1 == WITH_1 = 1\n" + + "Init == WITH_1 = 1 \n\n" + "Next == 1 = 2 /\\ UNCHANGED <<WITH_1>>\n" + "===="; compare(expected, machine); @@ -47,7 +47,7 @@ public class RenamerTest { String expected = "---- MODULE test ----\n" + "VARIABLES x \n" - + "Inv == x = 1\n" + + "Invariant1 == x = 1\n" + "Init == x = 1 \n" + "WITH_1 == x' = 2\n" + "Next == WITH_1 \n" diff --git a/src/test/java/de/tlc4b/analysis/ScopeTest.java b/src/test/java/de/tlc4b/analysis/ScopeTest.java index cf65a0f0f8c59abac7f961a6899293aa9f95cbbf..6c8802a4c230b80cf60f3fc4abc86181cb92c23d 100644 --- a/src/test/java/de/tlc4b/analysis/ScopeTest.java +++ b/src/test/java/de/tlc4b/analysis/ScopeTest.java @@ -15,12 +15,6 @@ public class ScopeTest { checkMachine(machine); } - @Test(expected = ScopeException.class) - public void testDuplicateSeenMachine() throws Exception { - String machine = "MACHINE test \n" + "SEES M1, M1 \n" + "END"; - checkMachine(machine); - } - @Test(expected = ScopeException.class) public void testConstraintsMissingMachineParameter() throws Exception { String machine = "MACHINE test \n" + "CONSTRAINTS k = 1 \n" + "END"; diff --git a/src/test/java/de/tlc4b/prettyprint/OperationsTest.java b/src/test/java/de/tlc4b/prettyprint/OperationsTest.java index da79ba87d9efb2009cc1b8de453846e59d3842a1..6c333f503188a87f15960f394cf8cf206832505e 100644 --- a/src/test/java/de/tlc4b/prettyprint/OperationsTest.java +++ b/src/test/java/de/tlc4b/prettyprint/OperationsTest.java @@ -18,7 +18,7 @@ public class OperationsTest { String expected = "---- MODULE test ----\n" + "VARIABLES x \n" - + "Inv == x = 1\n" + + "Invariant1 == x = 1\n" + "Init == x = 1 \n" + "Next == 1 = 2 /\\ UNCHANGED <<x>>\n" + "===="; @@ -37,7 +37,7 @@ public class OperationsTest { String expected = "---- MODULE test ----\n" + "VARIABLES x \n" - + "Inv == x = 1\n" + + "Invariant1 == x = 1\n" + "Init == x = 1 \n" + "foo == x' = 2\n" + "Next == foo \n" diff --git a/src/test/java/de/tlc4b/prettyprint/SubstitutionsTest.java b/src/test/java/de/tlc4b/prettyprint/SubstitutionsTest.java index e3d27dcbf84e7d3bca8e5315afb3008e150fbe4e..9a4946dd4e9bf156d4695a560dd63a250b159dd9 100644 --- a/src/test/java/de/tlc4b/prettyprint/SubstitutionsTest.java +++ b/src/test/java/de/tlc4b/prettyprint/SubstitutionsTest.java @@ -36,7 +36,7 @@ public class SubstitutionsTest { String expected = "---- MODULE test ----\n" + "EXTENDS Naturals \n" + "VARIABLES x \n" - + "Inv == x = 1\n" + + "Invariant1 == x = 1\n" + "Init == \\E a \\in {1}, b \\in {2} : TRUE /\\ x = a + b \n" + "Next == 1 = 2 /\\ UNCHANGED <<x>>\n" + "===="; diff --git a/src/test/java/de/tlc4b/util/TestUtil.java b/src/test/java/de/tlc4b/util/TestUtil.java index 607c7b8436faf90295352d91c43fc8febb01192c..4a16b11c402cda773c6eff5597475a9af120dd5e 100644 --- a/src/test/java/de/tlc4b/util/TestUtil.java +++ b/src/test/java/de/tlc4b/util/TestUtil.java @@ -11,14 +11,14 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; - - - - import java.util.List; import de.be4.classicalb.core.parser.exceptions.BException; import de.be4.classicalb.core.parser.node.Start; +import de.tla2b.exceptions.FrontEndException; +import de.tla2b.exceptions.TLA2BException; +import de.tla2b.output.ASTPrettyPrinter; +import de.tla2b.output.Renamer; import de.tlc4b.TLC4BGlobals; import de.tlc4b.Translator; import de.tlc4b.tlc.TLCResults.TLCResult; @@ -28,7 +28,7 @@ public class TestUtil { public static void compare(String expectedModule, String machine) throws Exception { TLC4BGlobals.setForceTLCToEvalConstants(false); - + Translator b2tlaTranslator = new Translator(machine); b2tlaTranslator.translate(); System.out.println(b2tlaTranslator.getModuleString()); @@ -36,12 +36,17 @@ public class TestUtil { * create standard modules BBuildins */ - String name = b2tlaTranslator.getMachineName(); - StringBuilder sb1 = de.tla2b.translation.Tla2BTranslator - .translateString(name, b2tlaTranslator.getModuleString(), null); - StringBuilder sb2 = de.tla2b.translation.Tla2BTranslator - .translateString(name, expectedModule, null); - if (!sb2.toString().equals(sb1.toString())) { + String moduleName = b2tlaTranslator.getMachineName(); + String str1 = translateTLA2B(moduleName, + b2tlaTranslator.getModuleString()); + + String str2 = translateTLA2B(moduleName, expectedModule); + + // StringBuilder sb1 = de.tla2b.translation.Tla2BTranslator + // .translateString(name, b2tlaTranslator.getModuleString(), null); + // StringBuilder sb2 = de.tla2b.translation.Tla2BTranslator + // .translateString(name, expectedModule, null); + if (!str1.equals(str2)) { // assertEquals(expected, actual); fail("expected:\n" + expectedModule + "\nbut was:\n" @@ -49,28 +54,39 @@ public class TestUtil { } // assertEquals(sb2.toString(), sb1.toString()); } - - - public static void compareLTL(String expectedModule, String machine, String ltlFormula) - throws Exception { + + public static String translateTLA2B(String moduleName, String tlaString) + throws TLA2BException { + return de.tla2bAst.Translator.translateModuleString(moduleName, + tlaString, null); + } + + public static String translateTLA2B(String moduleName, String tlaString, + String configString) throws TLA2BException { + return de.tla2bAst.Translator.translateModuleString(moduleName, + tlaString, configString); + } + + public static void compareLTL(String expectedModule, String machine, + String ltlFormula) throws Exception { Translator b2tlaTranslator = new Translator(machine, ltlFormula); b2tlaTranslator.translate(); System.out.println(b2tlaTranslator.getModuleString()); String name = b2tlaTranslator.getMachineName(); - de.tla2b.translation.Tla2BTranslator - .translateString(name, b2tlaTranslator.getModuleString(), null); + // de.tla2b.translation.Tla2BTranslator.translateString(name, + // b2tlaTranslator.getModuleString(), null); assertEquals(expectedModule, b2tlaTranslator.getModuleString()); } - - public static void checkMachine(String machine) - throws Exception { + + public static void checkMachine(String machine) throws Exception { Translator b2tlaTranslator = new Translator(machine); b2tlaTranslator.translate(); System.out.println(b2tlaTranslator.getModuleString()); String name = b2tlaTranslator.getMachineName(); - de.tla2b.translation.Tla2BTranslator - .translateString(name, b2tlaTranslator.getModuleString(), null); + String str1 = translateTLA2B(name, b2tlaTranslator.getModuleString()); + // de.tla2b.translation.Tla2BTranslator.translateString(name, + // b2tlaTranslator.getModuleString(), null); } public static void print(Start start) { @@ -88,14 +104,18 @@ public class TestUtil { System.out.println(b2tlaTranslator.getConfigString()); String name = b2tlaTranslator.getMachineName(); - de.tla2b.translation.Tla2BTranslator - .translateString(name, b2tlaTranslator.getModuleString(), - b2tlaTranslator.getConfigString()); + //parse check + translateTLA2B(name, b2tlaTranslator.getModuleString(), + b2tlaTranslator.getConfigString()); + // de.tla2b.translation.Tla2BTranslator.translateString(name, + // b2tlaTranslator.getModuleString(), + // b2tlaTranslator.getConfigString()); + assertEquals(expectedModule, b2tlaTranslator.getModuleString()); assertEquals(expectedConfig, b2tlaTranslator.getConfigString()); } - + public static void compareConfig(String expectedModule, String expectedConfig, String machine) throws Exception { Translator b2tlaTranslator = new Translator(machine); @@ -105,17 +125,17 @@ public class TestUtil { System.out.println(b2tlaTranslator.getConfigString()); String name = b2tlaTranslator.getMachineName(); - StringBuilder sb1 = de.tla2b.translation.Tla2BTranslator - .translateString(name, b2tlaTranslator.getModuleString(), - b2tlaTranslator.getConfigString()); - StringBuilder sb2 = de.tla2b.translation.Tla2BTranslator - .translateString(name, expectedModule, expectedConfig); - if (!sb2.toString().equals(sb1.toString())) { - fail("expected:\n" + expectedModule + "\nbut was:\n" - + b2tlaTranslator.getModuleString() + "\n\nexpected:\n" - + expectedConfig + "\nbut was:\n" - + b2tlaTranslator.getConfigString()); - } + // StringBuilder sb1 = de.tla2b.translation.Tla2BTranslator + // .translateString(name, b2tlaTranslator.getModuleString(), + // b2tlaTranslator.getConfigString()); + // StringBuilder sb2 = de.tla2b.translation.Tla2BTranslator + // .translateString(name, expectedModule, expectedConfig); + // if (!sb2.toString().equals(sb1.toString())) { + // fail("expected:\n" + expectedModule + "\nbut was:\n" + // + b2tlaTranslator.getModuleString() + "\n\nexpected:\n" + // + expectedConfig + "\nbut was:\n" + // + b2tlaTranslator.getConfigString()); + // } } public static void compareEquals(String expected, String machine) @@ -135,7 +155,8 @@ public class TestUtil { public static TLCResult test(String[] args) throws IOException { System.out.println("Starting JVM..."); - final Process p = startJVM("", TLC4BTester.class.getCanonicalName(), args); + final Process p = startJVM("", TLC4BTester.class.getCanonicalName(), + args); StreamGobbler stdOut = new StreamGobbler(p.getInputStream()); stdOut.start(); StreamGobbler errOut = new StreamGobbler(p.getErrorStream()); @@ -145,13 +166,13 @@ public class TestUtil { } catch (InterruptedException e) { e.printStackTrace(); } - - for (int i = stdOut.getLog().size()-1; i > 1 ; i--) { + + for (int i = stdOut.getLog().size() - 1; i > 1; i--) { String s = stdOut.getLog().get(i); - //System.out.println(s); - if(s.startsWith("Result:")){ + // System.out.println(s); + if (s.startsWith("Result:")) { String resultString = s.substring(s.indexOf(':') + 2); - resultString = resultString.replaceAll("\\s+",""); + resultString = resultString.replaceAll("\\s+", ""); System.out.println(resultString); return TLCResult.valueOf(resultString); } @@ -159,11 +180,7 @@ public class TestUtil { System.out.println("No result found."); return null; } - - - - - + private static Process startJVM(final String optionsAsString, final String mainClass, final String[] arguments) throws IOException { @@ -188,8 +205,6 @@ public class TestUtil { } - - class StreamGobbler extends Thread { private InputStream is; private ArrayList<String> log; @@ -205,7 +220,7 @@ class StreamGobbler extends Thread { public void run() { try { - InputStreamReader isr = new InputStreamReader(is, "UTF-8"); + InputStreamReader isr = new InputStreamReader(is, "UTF-8"); BufferedReader br = new BufferedReader(isr); String line = null; while ((line = br.readLine()) != null) { @@ -217,4 +232,3 @@ class StreamGobbler extends Thread { } } } -