From 6702976c73917cad98408b1a6d3be4e234916a72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A9sz=C3=A1ros=20M=C3=A1t=C3=A9=20R=C3=B3bert?= Date: Mon, 27 Jun 2016 19:41:12 +0200 Subject: [PATCH 1/2] codegenerator bugfixes: snapshot semantics, matching, etc. (by Andras Keremi) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mészáros Máté Róbert --- .../titan/codegenerator/AstWalkerJava.java | 24 ++++++++++++------- .../codegenerator/Def_Function_Writer.java | 4 +++- .../codegenerator/Def_Testcase_Writer.java | 4 ++-- .../codegenerator/Def_Type_Component.java | 18 ++++++++++++-- .../titan/codegenerator/Def_Type_Enum.java | 6 ++--- .../titan/codegenerator/Def_Type_Record.java | 2 +- .../titan/codegenerator/Def_Type_Set.java | 2 +- .../titan/codegenerator/Def_Type_Set_Of.java | 6 ++--- .../titan/codegenerator/Def_Type_Union.java | 17 ++++++------- 9 files changed, 50 insertions(+), 33 deletions(-) diff --git a/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/AstWalkerJava.java b/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/AstWalkerJava.java index ce55c3124..a73b165c3 100644 --- a/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/AstWalkerJava.java +++ b/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/AstWalkerJava.java @@ -19,6 +19,8 @@ import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Properties; @@ -77,7 +79,7 @@ public class AstWalkerJava implements IWorkbenchWindowActionDelegate { - // ttcn3-ból másolt + // copied from ttcn-3 static { try { @@ -151,7 +153,6 @@ public class AstWalkerJava implements IWorkbenchWindowActionDelegate { // get files in the folder File folder = new File(folderPath.toString()); File[] listOfFiles = folder.listFiles(); - String leadingPath = ""; for (int i = 0; i < path.segmentCount(); i++) { @@ -191,23 +192,26 @@ public class AstWalkerJava implements IWorkbenchWindowActionDelegate { } } + //initialize common files myASTVisitor.currentFileName = "Constants"; - myASTVisitor.visualizeNodeToJava(myASTVisitor.importListStrings); // erre + myASTVisitor.visualizeNodeToJava(myASTVisitor.importListStrings); myASTVisitor.visualizeNodeToJava("class Constants{\r\n}\r\n"); myASTVisitor.currentFileName = "Templates"; - myASTVisitor.visualizeNodeToJava(myASTVisitor.importListStrings); // erre + myASTVisitor.visualizeNodeToJava(myASTVisitor.importListStrings); myASTVisitor.visualizeNodeToJava("class Templates{\r\n}\r\n"); myASTVisitor.currentFileName = "TTCN_functions"; - myASTVisitor.visualizeNodeToJava(myASTVisitor.importListStrings); // erre + myASTVisitor.visualizeNodeToJava(myASTVisitor.importListStrings); myASTVisitor.visualizeNodeToJava("class TTCN_functions{\r\n}\r\n"); if (fileNames.size() > 0) { for (int i = 0, num = files.size(); i < num; i++) { + + //process files currentTTCN3module = (TTCN3Module) doAnalysis(files.get(i), null); modules.put(fileNames.get(i), currentTTCN3module); @@ -230,6 +234,8 @@ public class AstWalkerJava implements IWorkbenchWindowActionDelegate { Object[] modulestart = modules.get(fileNames.get(i)) .getOutlineChildren(); + + //start AST processing walkChildren(modulestart); } @@ -247,18 +253,18 @@ public class AstWalkerJava implements IWorkbenchWindowActionDelegate { - + //write additional classes Additional_Class_Writer additional_class=new Additional_Class_Writer(); myASTVisitor.currentFileName = "HC"; - myASTVisitor.visualizeNodeToJava(myASTVisitor.importListStrings); //erre + myASTVisitor.visualizeNodeToJava(myASTVisitor.importListStrings); myASTVisitor.visualizeNodeToJava(additional_class.writeHCClass()); myASTVisitor.currentFileName = "HCType"; - myASTVisitor.visualizeNodeToJava(myASTVisitor.importListStrings); //erre + myASTVisitor.visualizeNodeToJava(myASTVisitor.importListStrings); myASTVisitor.visualizeNodeToJava(additional_class.writeHCTypeClass()); - + //clear lists myASTVisitor.componentList.clear(); myASTVisitor.testCaseList.clear(); myASTVisitor.testCaseRunsOnList.clear(); diff --git a/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/Def_Function_Writer.java b/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/Def_Function_Writer.java index cc2b16344..cdf5b8830 100644 --- a/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/Def_Function_Writer.java +++ b/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/Def_Function_Writer.java @@ -575,11 +575,13 @@ public class Def_Function_Writer { functionString .append("if(timeout>0) try{queue.poll(timeout,TimeUnit.MILLISECONDS);}catch(InterruptedException e){} " + "\r\n"); + functionString.append("this.lock();" + "\r\n"); } else { functionString .append("try{queue.take();}catch(InterruptedException e){}" + "\r\n"); + functionString.append("this.lock();" + "\r\n"); } // endoftimer @@ -654,7 +656,7 @@ public class Def_Function_Writer { functionString.append("}" + "\r\n"); } - + functionString.append("this.unlock();" + "\r\n"); functionString.append("}" + "\r\n"); } diff --git a/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/Def_Testcase_Writer.java b/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/Def_Testcase_Writer.java index e5517a213..4e7e8fe0c 100644 --- a/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/Def_Testcase_Writer.java +++ b/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/Def_Testcase_Writer.java @@ -115,7 +115,7 @@ public class Def_Testcase_Writer { + testCaseNode.getLocation().getFile().getFullPath() .lastSegment() + "\";" + "\r\n"); testCaseString.append("int rownum=" +tcStatementBlock.getLocation().getLine()+ ";\r\n"); - testCaseString.append("if(!created) return;" + "\r\n"); + testCaseString.append("while(!created);" + "\r\n"); testCaseString.append("TTCN3Logger.writeLog(\"mtc\", \"PARALLEL\", sourcefilename, rownum, \"testcase\", \""+nodeName+"\", \"Testcase started on mtc\", false);"+ "\r\n"); int currentCounterValue=0; @@ -205,7 +205,7 @@ public class Def_Testcase_Writer { testCaseString.append("rownum="+tc_connectStatement.getLocation().getLine()+";\r\n"); testCaseString.append("hc.connect("+"\"" +tcConnectValues.get(currentConnectValue)+"\""); - logValues[logWriteCounter]=tcConnectValues.get(currentCounterValue); + logValues[logWriteCounter]=tcConnectValues.get(currentConnectValue); currentConnectValue++; logWriteCounter++; diff --git a/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/Def_Type_Component.java b/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/Def_Type_Component.java index 366ee60fc..15c64ebbe 100644 --- a/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/Def_Type_Component.java +++ b/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/Def_Type_Component.java @@ -65,9 +65,9 @@ public class Def_Type_Component { public void writeConstructor() { compString.append("public " + nodeName - + "(HCType hcomp, String name, String ID){" + "\r\n"); + + "(HCType hcont, String name, String ID){" + "\r\n"); compString.append("super(name);" + "\r\n"); - compString.append("hc=hcomp;" + "\r\n"); + compString.append("hc=hcont;" + "\r\n"); compString.append("if(hc.debugmode)TTCN3Logger.writeLog(name, \"PARALLEL\", \"Test component \" + name + \" created.\", false);" + "\r\n"); @@ -130,6 +130,19 @@ public class Def_Type_Component { compString.append(" " + "\r\n"); compString.append("}" + "\r\n"); } + + public void writeDomap() { + compString.append("" + "\r\n"); + compString.append("@Override" + "\r\n"); + compString + .append("public void domap(String thisport, String remotecomp, String remoteport) {" + + "\r\n"); + + //TODO + + compString.append(" " + "\r\n"); + compString.append("}" + "\r\n"); + } public String getJavaSource() { compString.append("class " + nodeName @@ -139,6 +152,7 @@ public class Def_Type_Component { this.writeAnyPortReceive(); this.writePrepareForConnection(); this.writeConnect(); + this.writeDomap(); compString.append("\r\n}"); String returnString = compString.toString(); diff --git a/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/Def_Type_Enum.java b/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/Def_Type_Enum.java index 7d7ca12c5..17057efda 100644 --- a/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/Def_Type_Enum.java +++ b/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/Def_Type_Enum.java @@ -59,12 +59,10 @@ public class Def_Type_Enum { for(int i=0;i Date: Mon, 27 Jun 2016 19:45:21 +0200 Subject: [PATCH 2/2] codegenerator: temporary module dependency order bugfix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mészáros Máté Róbert --- .../src/org/eclipse/titan/codegenerator/AstWalkerJava.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/AstWalkerJava.java b/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/AstWalkerJava.java index a73b165c3..2dba5283f 100644 --- a/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/AstWalkerJava.java +++ b/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/AstWalkerJava.java @@ -153,6 +153,8 @@ public class AstWalkerJava implements IWorkbenchWindowActionDelegate { // get files in the folder File folder = new File(folderPath.toString()); File[] listOfFiles = folder.listFiles(); + // Sort them in ascending order (temporary fix for linux) + Arrays.sort(listOfFiles); String leadingPath = ""; for (int i = 0; i < path.segmentCount(); i++) { -- GitLab