From 38f8077d5e2c621831225577a16c971a8aa3921a Mon Sep 17 00:00:00 2001 From: Ludovic Apvrille <ludovic.apvrille@telecom-paristech.fr> Date: Wed, 10 Mar 2021 13:57:12 +0100 Subject: [PATCH] Revert "Merge branch 'planTest' into 'master'" This reverts merge request !402 --- .../simulation/DependencyGraphTranslator.java | 94 +--- .../tmltranslator/simulation/PlanArrays.java | 43 -- .../JFrameLatencyComparedDetailedPopup.java | 3 +- .../JFrameLatencyDetailedAnalysis.java | 1 - .../JFrameLatencyDetailedPopup.java | 4 +- .../LatencyAnalysisParallelAlgorithms.java | 8 +- .../TableRenderer.java | 8 +- .../ComparisonOfSimulationTracesTest.java | 2 +- .../CompareLatencyInSimulationTracesTest.java | 40 +- .../GraphLatencyAnalysisTest.java | 18 +- .../NestedStructurePLANTest.java | 107 ++++- .../GraphLatencyAnalysisTaintingTest.java | 2 +- .../ComparisonOfSimulationTracesTest.java | 50 -- .../input/seqGraph1.graphml | 429 ------------------ 14 files changed, 135 insertions(+), 674 deletions(-) rename ttool/src/test/java/ui/{comparisonofsimulationtraces => ComparisonOfsimulationTracesInXML}/ComparisonOfSimulationTracesTest.java (98%) rename ttool/src/test/java/ui/{graphlatencyanalysis => GraphLatencyAnalysis}/CompareLatencyInSimulationTracesTest.java (85%) rename ttool/src/test/java/ui/{graphlatencyanalysis => GraphLatencyAnalysis}/GraphLatencyAnalysisTest.java (91%) rename ttool/src/test/java/ui/{graphlatencyanalysis => GraphLatencyAnalysis}/NestedStructurePLANTest.java (51%) rename ttool/src/test/java/ui/{graphlatencytainting => GraphLatencyTainting}/GraphLatencyAnalysisTaintingTest.java (99%) delete mode 100644 ttool/src/test/java/ui/comparisonofsimulationtracesinxml/ComparisonOfSimulationTracesTest.java delete mode 100644 ttool/src/test/resources/ui/graphLatencyAnalysis/input/seqGraph1.graphml diff --git a/src/main/java/tmltranslator/simulation/DependencyGraphTranslator.java b/src/main/java/tmltranslator/simulation/DependencyGraphTranslator.java index eef72f59e1..d8730bbbb9 100644 --- a/src/main/java/tmltranslator/simulation/DependencyGraphTranslator.java +++ b/src/main/java/tmltranslator/simulation/DependencyGraphTranslator.java @@ -153,7 +153,6 @@ public class DependencyGraphTranslator extends SwingWorker { private Object[][] dataByTask = null; private Object[][] dataByTaskMinMax = null; private HashMap<Integer, Vector<SimulationTransaction>> dataByTaskR = new HashMap<Integer, Vector<SimulationTransaction>>(); - private HashMap<Integer, Vector<SimulationTransaction>> mandatoryOptionalSimT = new HashMap<Integer, Vector<SimulationTransaction>>(); private HashMap<Integer, List<SimulationTransaction>> dataBydelayedTasks = new HashMap<Integer, List<SimulationTransaction>>(); private HashMap<Integer, HashMap<String, ArrayList<ArrayList<Integer>>>> timeDelayedPerRow = new HashMap<Integer, HashMap<String, ArrayList<ArrayList<Integer>>>>(); private HashMap<Integer, HashMap<String, ArrayList<ArrayList<Integer>>>> timeDelayedPerRowMinMax = new HashMap<Integer, HashMap<String, ArrayList<ArrayList<Integer>>>>(); @@ -169,7 +168,6 @@ public class DependencyGraphTranslator extends SwingWorker { private ArrayList<String> devicesToBeConsidered = new ArrayList<String>(); private Vector<SimulationTransaction> relatedsimTraces = new Vector<SimulationTransaction>(); private Vector<SimulationTransaction> delayDueTosimTraces = new Vector<SimulationTransaction>(); - private Vector<SimulationTransaction> mandatoryOptional = new Vector<SimulationTransaction>(); private HashMap<String, ArrayList<SimulationTransaction>> relatedsimTraceswithTaint = new HashMap<String, ArrayList<SimulationTransaction>>(); private int nbOfNodes = 0; private List<String> usedLabels = new ArrayList<String>(); @@ -207,8 +205,8 @@ public class DependencyGraphTranslator extends SwingWorker { private static final String WAIT_REQ_LABEL = "Wait reqChannel_"; private static final String GET_REQ_ARG_LABEL = "getReqArg"; private static final String WAIT_ST = "Wait: "; - private static final String WAIT_EVENT = "Waitevent:"; - private static final String SEND_EVENT = "Sendevent:"; + private static final String WAIT_EVENT = "Wait event: "; + private static final String SEND_EVENT = "Send event: "; private static final String STOP_AFTER_INFINITE_LOOP = "Stop after infinite loop"; private static final String START_OF_FORK = "startOfFork"; private static final String START_OF_JOIN = "startOfJoin"; @@ -2065,7 +2063,6 @@ public class DependencyGraphTranslator extends SwingWorker { dataBydelayedTasks = new HashMap<Integer, List<SimulationTransaction>>(); dataByTask = null; relatedsimTraces = new Vector<SimulationTransaction>(); - mandatoryOptional = new Vector<SimulationTransaction>(); delayDueTosimTraces = new Vector<SimulationTransaction>(); dependencyGraphRelations.setRunnableTimePerDevice(new HashMap<String, ArrayList<ArrayList<Integer>>>()); if (path2 != null && path2.getLength() > 0) { @@ -2075,7 +2072,7 @@ public class DependencyGraphTranslator extends SwingWorker { GraphPath<Vertex, DefaultEdge> pathTochannel = DijkstraShortestPath.findPathBetween(g, v1, getvertex(ChannelName)); GraphPath<Vertex, DefaultEdge> pathFromChannel = DijkstraShortestPath.findPathBetween(g, getvertex(ChannelName), getvertex(task22)); - if (pathFromChannel != null && pathFromChannel.getLength() > 0) { + if (pathTochannel != null && pathTochannel.getLength() > 0 && pathFromChannel != null && pathFromChannel.getLength() > 0) { devicesToBeConsidered.addAll(busChList); } } @@ -2723,23 +2720,6 @@ public class DependencyGraphTranslator extends SwingWorker { dependencyGraphRelations.getRunnableTimePerDevice().put(dName, timeValuesList); } } - } else if (pathToDestination != null && pathToDestination.getLength() > 0) { - mandatoryOptional.add(st); - ArrayList<Integer> timeValues = new ArrayList<Integer>(); - timeValues.add(0, Integer.valueOf(st.runnableTime)); - timeValues.add(1, startTime); - String dName = st.deviceName + "_" + st.coreNumber; - if (!(st.runnableTime).equals(st.startTime)) { - if (dependencyGraphRelations.getRunnableTimePerDevice().containsKey(dName)) { - if (!dependencyGraphRelations.getRunnableTimePerDevice().get(dName).contains(timeValues)) { - dependencyGraphRelations.getRunnableTimePerDevice().get(dName).add(timeValues); - } - } else { - ArrayList<ArrayList<Integer>> timeValuesList = new ArrayList<ArrayList<Integer>>(); - timeValuesList.add(timeValues); - dependencyGraphRelations.getRunnableTimePerDevice().put(dName, timeValuesList); - } - } } else if (((st.deviceName.equals(task2DeviceName) && task2CoreNbr.equals(st.coreNumber)) || (st.deviceName.equals(task1DeviceName) && task1CoreNbr.equals(st.coreNumber)) || devicesToBeConsidered.contains(deviceName)) && !st.id.equals(idTask1) && !st.id.equals(idTask2)) { @@ -2777,7 +2757,6 @@ public class DependencyGraphTranslator extends SwingWorker { dataByTaskR.put(i, relatedsimTraces); dataBydelayedTasks.put(i, delayDueTosimTraces); timeDelayedPerRow.put(i, dependencyGraphRelations.getRunnableTimePerDevice()); - mandatoryOptionalSimT.put(i, mandatoryOptional); // dataByTask[i][5] = list.getModel(); // dataByTask[i][6] = totalTime; } @@ -3734,20 +3713,6 @@ public class DependencyGraphTranslator extends SwingWorker { return dataByTaskRowDetails; } - public String[][] getMandatoryOptionalByRow(int row) { - String[][] dataByTaskRowDetails = new String[mandatoryOptionalSimT.get(row).size()][5]; - int i = 0; - for (SimulationTransaction st : mandatoryOptionalSimT.get(row)) { - dataByTaskRowDetails[i][0] = st.command; - dataByTaskRowDetails[i][1] = nameIDTaskList.get(st.id); - dataByTaskRowDetails[i][2] = st.deviceName + "_" + st.coreNumber; - dataByTaskRowDetails[i][3] = st.startTime; - dataByTaskRowDetails[i][4] = st.endTime; - i++; - } - return dataByTaskRowDetails; - } - // fill the detailed latency table once a row is selected public Object[][] getTaskByRowDetailsMinMaxTaint(int row) { String task12 = (String) dataByTaskMinMax[row][0]; @@ -3810,10 +3775,6 @@ public class DependencyGraphTranslator extends SwingWorker { return dataByTaskR.get(row); } - public List<SimulationTransaction> getMandatoryOptionalSimTTaks(int row) { - return mandatoryOptionalSimT.get(row); - } - public Vector<SimulationTransaction> getMinMaxTasksByRowTainted(int row) { int maxStartTime = (int) dataByTaskMinMax[row][1]; int maxEndTime = (int) dataByTaskMinMax[row][3]; @@ -4181,25 +4142,18 @@ public class DependencyGraphTranslator extends SwingWorker { } // import graph in .graphml format - public Graph<Vertex, DefaultEdge> importGraph(String filename) throws IOException { + public void importGraph(String filename) throws ExportException, IOException, ImportException { FileReader ps = new FileReader(filename + ".graphml"); - Graph<Vertex, DefaultEdge> importedG = new DefaultDirectedGraph<>(DefaultEdge.class); - GraphMLImporter<Vertex, DefaultEdge> importer; // gmlExporter.exportGraph(g, PS); // FileWriter PS2 = new FileWriter(filename + "test.graphml"); - VertexProvider<Vertex> vertexProvider = (id, attributes) -> { - Vertex v = new Vertex(id, 0); - return v; + VertexProvider<String> vertexProvider = (id, attributes) -> { + String cv = new String(id); + return cv; }; - EdgeProvider<Vertex, DefaultEdge> edgeProvider = (from, to, label, attributes) -> new DefaultEdge(); - importer = new GraphMLImporter<Vertex, DefaultEdge>(vertexProvider, edgeProvider); - try { - importer.importGraph(importedG, ps); - } catch (ImportException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return importedG; + EdgeProvider<String, DefaultEdge> edgeProvider = (from, to, label, attributes) -> new DefaultEdge(); + GraphMLImporter<String, DefaultEdge> importer = new GraphMLImporter<String, DefaultEdge>(vertexProvider, edgeProvider); + Graph<String, DefaultEdge> importedGraph = null; + importer.importGraph(importedGraph, ps); } public HashMap<String, String> getNameIDTaskList() { @@ -4393,30 +4347,4 @@ public class DependencyGraphTranslator extends SwingWorker { public DependencyGraphRelations getDependencyGraphRelations() { return dependencyGraphRelations; } - - public boolean compareWithImported(String filename) { - try { - Graph<Vertex, DefaultEdge> importedGraph = importGraph(filename); - for (Vertex vg : g.vertexSet()) { - if (!importedGraph.vertexSet().contains(vg)) { - return false; - } - } - for (DefaultEdge vg : g.edgeSet()) { - if (!importedGraph.edgeSet().toString().contains(vg.toString())) { - return false; - } - } - if (g.vertexSet().size() != importedGraph.vertexSet().size()) { - return false; - } - if (g.edgeSet().size() != importedGraph.edgeSet().size()) { - return false; - } - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return true; - } } \ No newline at end of file diff --git a/src/main/java/tmltranslator/simulation/PlanArrays.java b/src/main/java/tmltranslator/simulation/PlanArrays.java index 06f9906163..b16153a788 100644 --- a/src/main/java/tmltranslator/simulation/PlanArrays.java +++ b/src/main/java/tmltranslator/simulation/PlanArrays.java @@ -10,7 +10,6 @@ public class PlanArrays { private List<String> onPathBehavior = new ArrayList<String>(); private List<String> offPathBehavior = new ArrayList<String>(); private List<String> offPathBehaviorCausingDelay = new ArrayList<String>(); - private List<String> mandatoryOptional = new ArrayList<String>(); private static final String ZERO = "0"; private static final String DEVICE_NAME = "Device Name"; private String[] columnNames; @@ -39,23 +38,6 @@ public class PlanArrays { deviceNames1.add(deviceNameandcore); } } - for (SimulationTransaction st : dgraph.getMandatoryOptionalSimTTaks(row)) { - if (st.coreNumber == null) { - st.coreNumber = ZERO; - } - tmpEnd = Integer.parseInt(st.endTime); - if (tmpEnd > maxTime) { - maxTime = tmpEnd; - } - tmpStart = Integer.parseInt(st.startTime); - if (tmpStart < minTime) { - minTime = tmpStart; - } - String deviceNameandcore = st.deviceName + "_" + st.coreNumber; - if (!deviceNames1.contains(deviceNameandcore)) { - deviceNames1.add(deviceNameandcore); - } - } for (SimulationTransaction st : dgraph.getRowDetailsByHW(row)) { tmpEnd = Integer.parseInt(st.endTime); if (st.coreNumber == null) { @@ -103,26 +85,6 @@ public class PlanArrays { } } } - for (SimulationTransaction st : dgraph.getMandatoryOptionalSimTTaks(row)) { - if (st.coreNumber == null) { - st.coreNumber = ZERO; - } - for (String dName : deviceNames1) { - String deviceNameandcore = st.deviceName + "_" + st.coreNumber; - if (deviceNameandcore.equals(dName)) { - length = Integer.parseInt(st.length); - for (int i = 0; i < length; i++) { - int columnnmber = Integer.parseInt(st.endTime) - minTime - i; - dataDetailedByTask[deviceNames1.indexOf(dName)][columnnmber] = dgraph.getNameIDTaskList().get(st.id); - ; - mandatoryOptional.add(dgraph.getNameIDTaskList().get(st.id) + columnNames[columnnmber]); - // if (!dgraph.getOnPath().contains(st)) { - // dgraph.getOnPath().add(st); - // } - } - } - } - } HashMap<String, ArrayList<ArrayList<Integer>>> delayTime = dgraph.getRowDelayDetailsByHW(row); for (SimulationTransaction st : dgraph.getRowDetailsByHW(row)) { int startTime = Integer.valueOf(st.startTime); @@ -346,9 +308,4 @@ public class PlanArrays { public String[] getColumnNames() { return columnNames; } - - public List<String> getMandatoryOptional() { - return mandatoryOptional; - } - } diff --git a/src/main/java/ui/simulationtraceanalysis/JFrameLatencyComparedDetailedPopup.java b/src/main/java/ui/simulationtraceanalysis/JFrameLatencyComparedDetailedPopup.java index 6a9b92e677..05e6f2cf21 100644 --- a/src/main/java/ui/simulationtraceanalysis/JFrameLatencyComparedDetailedPopup.java +++ b/src/main/java/ui/simulationtraceanalysis/JFrameLatencyComparedDetailedPopup.java @@ -59,6 +59,7 @@ import javax.swing.table.DefaultTableModel; import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumn; import javax.swing.table.TableColumnModel; + import tmltranslator.simulation.DependencyGraphTranslator; import tmltranslator.simulation.SimulationTransaction; @@ -559,7 +560,7 @@ public class JFrameLatencyComparedDetailedPopup extends JFrame implements TableM table.setFillsViewportHeight(true); table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); table.setAutoCreateRowSorter(true); - TableRenderer tr = new TableRenderer(onPathBehavior, offPathBehaviorCausingDelay, offPathBehavior, offPathBehavior); + TableRenderer tr = new TableRenderer(onPathBehavior, offPathBehaviorCausingDelay, offPathBehavior); int ncols = table.getColumnCount(); table.getModel().addTableModelListener(this); TableColumnModel tcm = table.getColumnModel(); diff --git a/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedAnalysis.java b/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedAnalysis.java index 58633d849e..1e8d5948c8 100644 --- a/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedAnalysis.java +++ b/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedAnalysis.java @@ -511,7 +511,6 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe protected void generateDirectedGraph(TMLMapping<TGComponent> tmap, List<TMLComponentDesignPanel> cpanels) { try { dgraph = new DependencyGraphTranslator(tmap); - tc.setDgraph(dgraph); pbar.setMaximum(dgraph.getNodeNbProgressBar()); pbar.setMinimum(0); dgraph.addPropertyChangeListener(new PropertyChangeListener() { diff --git a/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedPopup.java b/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedPopup.java index 9ab0c0677f..3cda41c3b4 100644 --- a/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedPopup.java +++ b/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedPopup.java @@ -56,6 +56,7 @@ import javax.swing.table.DefaultTableModel; import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumn; import javax.swing.table.TableColumnModel; + import tmltranslator.simulation.DependencyGraphTranslator; import tmltranslator.simulation.PlanArrays; @@ -228,8 +229,7 @@ public class JFrameLatencyDetailedPopup extends JFrame implements TableModelList table.setFillsViewportHeight(true); table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); table.setAutoCreateRowSorter(true); - TableRenderer tr = new TableRenderer(arrays.getOnPathBehavior(), arrays.getOffPathBehaviorCausingDelay(), arrays.getOffPathBehavior(), - arrays.getMandatoryOptional()); + TableRenderer tr = new TableRenderer(arrays.getOnPathBehavior(), arrays.getOffPathBehaviorCausingDelay(), arrays.getOffPathBehavior()); int ncols = table.getColumnCount(); table.getModel().addTableModelListener(this); TableColumnModel tcm = table.getColumnModel(); diff --git a/src/main/java/ui/simulationtraceanalysis/LatencyAnalysisParallelAlgorithms.java b/src/main/java/ui/simulationtraceanalysis/LatencyAnalysisParallelAlgorithms.java index 8fccc86300..e59cb0cdcc 100644 --- a/src/main/java/ui/simulationtraceanalysis/LatencyAnalysisParallelAlgorithms.java +++ b/src/main/java/ui/simulationtraceanalysis/LatencyAnalysisParallelAlgorithms.java @@ -6,6 +6,7 @@ import java.util.Vector; import javax.xml.parsers.ParserConfigurationException; import javax.xml.xpath.XPathExpressionException; import org.xml.sax.SAXException; + import tmltranslator.TMLMapping; import tmltranslator.simulation.DependencyGraphTranslator; import tmltranslator.simulation.SimulationTransaction; @@ -24,7 +25,7 @@ public class LatencyAnalysisParallelAlgorithms implements Runnable { private List<TMLComponentDesignPanel> cpanels; private DependencyGraphTranslator dgraph, dgraph1, dgraph2; private int row, row1, row2, row3, row4, selectedIndex; - private Object[][] dataDetailedByTask, dataDetailedByTask2, dataMandatoryOptional; + private Object[][] dataDetailedByTask, dataDetailedByTask2; private LatencyDetailedAnalysisMain main; private MainGUI mainGUI; private SimulationTrace selectedST; @@ -44,7 +45,6 @@ public class LatencyAnalysisParallelAlgorithms implements Runnable { jFrameLDA.generateDirectedGraph(tmap, cpanels); } else if (algorithmId == 2) { dataDetailedByTask = dgraph.getTaskByRowDetails(row); - dataMandatoryOptional = dgraph.getMandatoryOptionalByRow(row); } else if (algorithmId == 3) { dataDetailedByTask = dgraph.getTaskByRowDetailsMinMaxTaint(row); } else if (algorithmId == 4) { @@ -222,10 +222,6 @@ public class LatencyAnalysisParallelAlgorithms implements Runnable { this.dgraph1 = dgraph1; } - public Object[][] getDataMandatoryOptional() { - return dataMandatoryOptional; - } - public void latencyDetailedAnalysis(JFrameCompareLatencyDetail jFrameCompareLatencyDetail, String task12, String task22, String task32, String task42, Vector<SimulationTransaction> transFile12, Vector<SimulationTransaction> transFile22) { cld = jFrameCompareLatencyDetail; diff --git a/src/main/java/ui/simulationtraceanalysis/TableRenderer.java b/src/main/java/ui/simulationtraceanalysis/TableRenderer.java index f0970b2c79..407d06889b 100644 --- a/src/main/java/ui/simulationtraceanalysis/TableRenderer.java +++ b/src/main/java/ui/simulationtraceanalysis/TableRenderer.java @@ -17,17 +17,14 @@ class TableRenderer extends DefaultTableCellRenderer { private List<String> onPathBehaviors = new Vector<String>(); private List<String> offPathBehaviors = new Vector<String>(); private List<String> offPathBehaviorCausingDelay = new Vector<String>(); - private List<String> mandatoryOptionalByRow = new Vector<String>(); - public TableRenderer(List<String> onPathBehavior, List<String> offPathBehaviorCausingDelay, List<String> offPathBehavior, - List<String> mandatoryOptionalByRow) { + public TableRenderer(List<String> onPathBehavior, List<String> offPathBehaviorCausingDelay, List<String> offPathBehavior) { this.onPathBehaviors = new Vector<String>(); this.offPathBehaviorCausingDelay = new Vector<String>(); this.offPathBehaviors = new Vector<String>(); this.onPathBehaviors = onPathBehavior; this.offPathBehaviorCausingDelay = offPathBehaviorCausingDelay; this.offPathBehaviors = offPathBehavior; - this.mandatoryOptionalByRow = mandatoryOptionalByRow; } public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { @@ -47,9 +44,6 @@ class TableRenderer extends DefaultTableCellRenderer { } else if (offPathBehaviors.contains(value.toString() + table.getColumnName(column))) { randomColour = Color.orange; // randomColour = Color.red; - } else if (mandatoryOptionalByRow.contains(value.toString() + table.getColumnName(column))) { - randomColour = Color.LIGHT_GRAY; - // randomColour = Color.red; } } else { this.colorCell = false; diff --git a/ttool/src/test/java/ui/comparisonofsimulationtraces/ComparisonOfSimulationTracesTest.java b/ttool/src/test/java/ui/ComparisonOfsimulationTracesInXML/ComparisonOfSimulationTracesTest.java similarity index 98% rename from ttool/src/test/java/ui/comparisonofsimulationtraces/ComparisonOfSimulationTracesTest.java rename to ttool/src/test/java/ui/ComparisonOfsimulationTracesInXML/ComparisonOfSimulationTracesTest.java index cde245810b..72661a360a 100644 --- a/ttool/src/test/java/ui/comparisonofsimulationtraces/ComparisonOfSimulationTracesTest.java +++ b/ttool/src/test/java/ui/ComparisonOfsimulationTracesInXML/ComparisonOfSimulationTracesTest.java @@ -1,4 +1,4 @@ -package ui.comparisonofsimulationtraces; +package ui.ComparisonOfsimulationTracesInXML; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; diff --git a/ttool/src/test/java/ui/graphlatencyanalysis/CompareLatencyInSimulationTracesTest.java b/ttool/src/test/java/ui/GraphLatencyAnalysis/CompareLatencyInSimulationTracesTest.java similarity index 85% rename from ttool/src/test/java/ui/graphlatencyanalysis/CompareLatencyInSimulationTracesTest.java rename to ttool/src/test/java/ui/GraphLatencyAnalysis/CompareLatencyInSimulationTracesTest.java index 78cd58bcf7..14718c4732 100644 --- a/ttool/src/test/java/ui/graphlatencyanalysis/CompareLatencyInSimulationTracesTest.java +++ b/ttool/src/test/java/ui/GraphLatencyAnalysis/CompareLatencyInSimulationTracesTest.java @@ -1,4 +1,4 @@ -package ui.graphlatencyanalysis; +package ui.GraphLatencyAnalysis; import static org.junit.Assert.assertTrue; @@ -27,19 +27,18 @@ import ui.simulationtraceanalysis.LatencyDetailedAnalysisMain; public class CompareLatencyInSimulationTracesTest extends AbstractUITest { private static final String INPUT_PATH = "/ui/graphLatencyAnalysis/input"; - private static final String SIMULATIONTRACEPATHFILE1 = INPUT_PATH + "/graphTestSimulationTrace.xml"; - private static final String SIMULATIONTRACEPATHFILE2 = INPUT_PATH + "/testFunc.xml"; - private static final String MODELPATH = INPUT_PATH + "/GraphTestModel.xml"; - private static final String MAPPINGDIAGNAME = "Architecture2"; - private static final int OPERATOR1ID = 44; - private static final int OPERATOR2ID = 26; - private static final int OPERATOR3ID = 40; - private static final int OPERATOR4ID = 28; - + private static final String simulationTracePathFile1 = INPUT_PATH + "/graphTestSimulationTrace.xml"; + private static final String simulationTracePathFile2 = INPUT_PATH + "/testFunc.xml"; + private static final String modelPath = INPUT_PATH + "/GraphTestModel.xml"; + private static final String mappingDiagName = "Architecture2"; private Vector<String> checkedTransactionsFile1 = new Vector<String>(); private Vector<String> checkedTransactionsFile2 = new Vector<String>(); + private static final int operator1ID = 44; + private static final int operator2ID = 26; + private static final int operator3ID = 40; + private static final int operator4ID = 28; private DependencyGraphTranslator dgraph1, dgraph2; - private String task1, task2, task3, task4; + private static String task1, task2, task3, task4; private JFrameCompareLatencyDetail cld; private LatencyDetailedAnalysisMain LatencyDetailedAnalysisMain; private JFrameLatencyDetailedAnalysis jFrameLatencyDetailedAnalysis; @@ -50,7 +49,7 @@ public class CompareLatencyInSimulationTracesTest extends AbstractUITest { private HashMap<String, Integer> checkedT1 = new HashMap<String, Integer>(); private HashMap<String, Integer> checkedT2 = new HashMap<String, Integer>(); // protected MainGUI mainGUI1 = null; - private Object[][] dataDetailedByTask, dataDetailedByTask2, dataHWDelayByTask, dataHWDelayByTask2; + private static Object[][] dataDetailedByTask, dataDetailedByTask2, dataHWDelayByTask, dataHWDelayByTask2; public CompareLatencyInSimulationTracesTest() { super(); @@ -59,9 +58,9 @@ public class CompareLatencyInSimulationTracesTest extends AbstractUITest { @Before public void GraphLatencyAnalysis() throws XPathExpressionException, ParserConfigurationException, SAXException, IOException, InterruptedException { - mainGUI.openProjectFromFile(new File(getBaseResourcesDir() + MODELPATH)); - final TMLArchiPanel panel = findArchiPanel(MAPPINGDIAGNAME); - simT1 = new SimulationTrace("", 6, (getBaseResourcesDir() + SIMULATIONTRACEPATHFILE1)); + mainGUI.openProjectFromFile(new File(getBaseResourcesDir() + modelPath)); + final TMLArchiPanel panel = findArchiPanel(mappingDiagName); + simT1 = new SimulationTrace("graphTestSimulationTrace", 6, (getBaseResourcesDir() + simulationTracePathFile1)); LatencyDetailedAnalysisMain = new LatencyDetailedAnalysisMain(3, mainGUI, simT1, false, false, 3); LatencyDetailedAnalysisMain.setCheckedTransactionsFile(new Vector<String>()); try { @@ -76,6 +75,7 @@ public class CompareLatencyInSimulationTracesTest extends AbstractUITest { cld.setVisible(false); } } catch (XPathExpressionException | ParserConfigurationException | SAXException | IOException e) { + // TODO Auto-generated catch block e.printStackTrace(); } LatencyDetailedAnalysisMain.getTc().getT().join(); @@ -85,7 +85,7 @@ public class CompareLatencyInSimulationTracesTest extends AbstractUITest { checkedT1 = LatencyDetailedAnalysisMain.getCheckedT1(); cld.setDgraph(null); LatencyDetailedAnalysisMain.setCheckedTransactionsFile(new Vector<String>()); - simT2 = new SimulationTrace("", 6, (getBaseResourcesDir() + SIMULATIONTRACEPATHFILE2)); + simT2 = new SimulationTrace("graphTestSimulationTrace", 6, (getBaseResourcesDir() + simulationTracePathFile2)); try { LatencyDetailedAnalysisMain.latencyDetailedAnalysisForXML(mainGUI, simT2, false, true, 1); } catch (XPathExpressionException | ParserConfigurationException | SAXException | IOException e) { @@ -110,18 +110,18 @@ public class CompareLatencyInSimulationTracesTest extends AbstractUITest { for (Entry<String, Integer> cT : checkedT1.entrySet()) { int id = cT.getValue(); String taskName = cT.getKey(); - if (id == OPERATOR1ID) { + if (id == operator1ID) { task1 = taskName; - } else if (id == OPERATOR2ID) { + } else if (id == operator2ID) { task2 = taskName; } } for (Entry<String, Integer> cT : checkedT2.entrySet()) { int id = cT.getValue(); String taskName = cT.getKey(); - if (id == OPERATOR3ID) { + if (id == operator3ID) { task3 = taskName; - } else if (id == OPERATOR4ID) { + } else if (id == operator4ID) { task4 = taskName; } } diff --git a/ttool/src/test/java/ui/graphlatencyanalysis/GraphLatencyAnalysisTest.java b/ttool/src/test/java/ui/GraphLatencyAnalysis/GraphLatencyAnalysisTest.java similarity index 91% rename from ttool/src/test/java/ui/graphlatencyanalysis/GraphLatencyAnalysisTest.java rename to ttool/src/test/java/ui/GraphLatencyAnalysis/GraphLatencyAnalysisTest.java index 1471c6c1a4..52ea83df8e 100644 --- a/ttool/src/test/java/ui/graphlatencyanalysis/GraphLatencyAnalysisTest.java +++ b/ttool/src/test/java/ui/GraphLatencyAnalysis/GraphLatencyAnalysisTest.java @@ -1,4 +1,4 @@ -package ui.graphlatencyanalysis; +package ui.GraphLatencyAnalysis; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; @@ -24,15 +24,15 @@ public class GraphLatencyAnalysisTest extends AbstractUITest { private static final String SIMULATIONTRACE_PATH = INPUT_PATH + "/graphTestSimulationTrace.xml"; private static final String modelPath = INPUT_PATH + "/GraphTestModel.xml"; private static final String mappingDiagName = "Architecture2"; - private static final int OPERATOR1_ID = 44; - private static final int OPERATOR2_ID = 26; - private Vector<SimulationTransaction> transFile1; + // private Vector<String> dropDown; private HashMap<String, Integer> checkedDropDown = new HashMap<String, Integer>(); - private String task1; - private String task2; - private DependencyGraphTranslator dgt; - private Object[][] allLatencies, minMaxArray, taskHWByRowDetails, detailedLatency; + private static final int OPERATOR1_ID = 44; + private static final int OPERATOR2_ID = 26; + private static String task1; + private static String task2; + private static DependencyGraphTranslator dgt; + private static Object[][] allLatencies, minMaxArray, taskHWByRowDetails, detailedLatency; private JFrameLatencyDetailedAnalysis latencyDetailedAnalysis; private LatencyDetailedAnalysisMain LatencyDetailedAnalysisMain; @@ -47,7 +47,7 @@ public class GraphLatencyAnalysisTest extends AbstractUITest { System.out.println("Non NULL Panel"); } mainGUI.checkModelingSyntax(panel, true); - SimulationTrace file2 = new SimulationTrace("", 6, SIMULATIONTRACE_PATH); + SimulationTrace file2 = new SimulationTrace("graphTestSimulationTrace", 6, SIMULATIONTRACE_PATH); LatencyDetailedAnalysisMain = new LatencyDetailedAnalysisMain(3, mainGUI, file2, false, false, 3); LatencyDetailedAnalysisMain.getTc().setMainGUI(mainGUI); LatencyDetailedAnalysisMain.latencyDetailedAnalysis(file2, panel, false, false, mainGUI); diff --git a/ttool/src/test/java/ui/graphlatencyanalysis/NestedStructurePLANTest.java b/ttool/src/test/java/ui/GraphLatencyAnalysis/NestedStructurePLANTest.java similarity index 51% rename from ttool/src/test/java/ui/graphlatencyanalysis/NestedStructurePLANTest.java rename to ttool/src/test/java/ui/GraphLatencyAnalysis/NestedStructurePLANTest.java index e8f3651ab9..e07f24de35 100644 --- a/ttool/src/test/java/ui/graphlatencyanalysis/NestedStructurePLANTest.java +++ b/ttool/src/test/java/ui/GraphLatencyAnalysis/NestedStructurePLANTest.java @@ -1,20 +1,20 @@ -package ui.graphlatencyanalysis; +package ui.GraphLatencyAnalysis; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; + import java.awt.*; import java.io.File; -import java.io.IOException; import java.util.HashMap; import java.util.Map.Entry; import java.util.Vector; + import org.junit.Before; import org.junit.Test; -import myutil.TraceManager; + import tmltranslator.simulation.DependencyGraphTranslator; import tmltranslator.simulation.SimulationTransaction; -import tmltranslator.simulation.Vertex; import ui.AbstractUITest; import ui.SimulationTrace; import ui.TMLArchiPanel; @@ -22,33 +22,39 @@ import ui.simulationtraceanalysis.JFrameLatencyDetailedAnalysis; import ui.simulationtraceanalysis.LatencyDetailedAnalysisMain; public class NestedStructurePLANTest extends AbstractUITest { - private static final String MAPPING_DIAG_NAME = "Architecture"; + + private static final int[] EXIST_EDGE = {66, 65, + 66,63, + 64, 63}; + + private static final String mapping_Diag_Name = "Architecture"; private static final String INPUT_PATH = "/ui/graphLatencyAnalysis/input"; private static final String SIMULATIONTRACE_PATH_FILE = INPUT_PATH + "/loopseqTrace.xml"; private static final String MODEL_PATH = INPUT_PATH + "/loopseqgraph.xml"; - private static final int OPERATOR1_ID = 69; - private static final int OPERATOR2_ID = 53; - private static final String GRAPH = INPUT_PATH + "/seqGraph1"; + private LatencyDetailedAnalysisMain LatencyDetailedAnalysisMain; private JFrameLatencyDetailedAnalysis latencyDetailedAnalysis; - private DependencyGraphTranslator dgt; + private static DependencyGraphTranslator dgt; private Vector<SimulationTransaction> transFile1; private HashMap<String, Integer> checkedDropDown = new HashMap<String, Integer>(); - private String task1; - private String task2; - private Object[][] allLatencies; + private static final int OPERATOR1_ID = 69; + private static final int OPERATOR2_ID = 53; + private static String task1; + private static String task2; + private static Object[][] allLatencies; @Before public void NestedStructurePLAN() throws InterruptedException { mainGUI.openProjectFromFile(new File(getBaseResourcesDir() + MODEL_PATH)); - final TMLArchiPanel panel = findArchiPanel(MAPPING_DIAG_NAME); + // mainGUI.openProjectFromFile(new File(modelPath)); + final TMLArchiPanel panel = findArchiPanel(mapping_Diag_Name); if (panel == null) { System.out.println("NULL Panel"); } else { System.out.println("Non NULL Panel"); } mainGUI.checkModelingSyntax(panel, true); - SimulationTrace file2 = new SimulationTrace("", 6, SIMULATIONTRACE_PATH_FILE); + SimulationTrace file2 = new SimulationTrace("graphTestSimulationTrace", 6, SIMULATIONTRACE_PATH_FILE); LatencyDetailedAnalysisMain = new LatencyDetailedAnalysisMain(3, mainGUI, file2, false, false, 3); LatencyDetailedAnalysisMain.getTc().setMainGUI(mainGUI); LatencyDetailedAnalysisMain.latencyDetailedAnalysis(file2, panel, false, false, mainGUI); @@ -59,8 +65,10 @@ public class NestedStructurePLANTest extends AbstractUITest { try { latencyDetailedAnalysis.getT().join(); } catch (InterruptedException e) { + // TODO Auto-generated catch block e.printStackTrace(); } + dgt = latencyDetailedAnalysis.getDgraph(); } } @@ -69,15 +77,72 @@ public class NestedStructurePLANTest extends AbstractUITest { public void parseFile() { assertNotNull(latencyDetailedAnalysis); int graphsize = dgt.getGraphsize(); + System.out.println("Graphsize=" + graphsize); assertTrue(graphsize >= 57); - if (GRAPH != null) { - try { - Boolean test = dgt.compareWithImported(GRAPH); - assertTrue(test); - } catch (Exception e) { - e.printStackTrace(); - } + + // test sequence to all its nexts + + for(int i=0; i<EXIST_EDGE.length-1; i = i + 2) { + assertTrue(dgt.edgeExists(EXIST_EDGE[i], EXIST_EDGE[i+1])); } + + /*assertTrue(dgt.edgeExists(66, 65)); + assertTrue(dgt.edgeExists(66, 63)); + // test sequence branch to another + assertTrue(dgt.edgeExists(64, 63));*/ + + + + + assertTrue(dgt.edgeExists(63, 62)); + // test ordered sequence + assertTrue(dgt.edgeExists(62, 61)); + assertTrue(dgt.edgeExists(62, 60)); + // test nested sequence to unordered sequence + assertTrue(dgt.edgeExists(57, 60)); + assertTrue(dgt.edgeExists(68, 60)); + // test unordered sequence nexts + assertTrue(dgt.edgeExists(61, 67)); + assertTrue(dgt.edgeExists(61, 58)); + assertTrue(dgt.edgeExists(68, 58)); + assertTrue(dgt.edgeExists(57, 67)); + // test ordered sequence nexts + assertTrue(dgt.edgeExists(26, 25)); + assertTrue(dgt.edgeExists(26, 21)); + assertTrue(dgt.edgeExists(26, 23)); + // test ordered sequence ends + assertTrue(dgt.edgeExists(24, 21)); + // nested seq loop + assertTrue(dgt.edgeExists(27, 23)); + assertTrue(dgt.edgeExists(30, 36)); + assertTrue(dgt.edgeExists(29, 36)); + // inside loop only connected to loop vertex + assertFalse(dgt.edgeExists(30, 22)); + assertFalse(dgt.edgeExists(29, 22)); + // sequence last branch end not connected to other branches + assertFalse(dgt.edgeExists(22, 25)); + assertFalse(dgt.edgeExists(22, 21)); + // sequence branches not connected backward + assertFalse(dgt.edgeExists(27, 25)); + // loop for ever edges+ nested loops and seq + assertTrue(dgt.edgeExists(44, 49)); + assertTrue(dgt.edgeExists(44, 51)); + assertTrue(dgt.edgeExists(44, 53)); + assertTrue(dgt.edgeExists(43, 42)); + assertTrue(dgt.edgeExists(43, 41)); + assertTrue(dgt.edgeExists(45, 41)); + assertTrue(dgt.edgeExists(40, 49)); + assertTrue(dgt.edgeExists(48, 54)); + assertTrue(dgt.edgeExists(48, 51)); + assertTrue(dgt.edgeExists(48, 53)); + assertTrue(dgt.edgeExists(50, 49)); + assertTrue(dgt.edgeExists(50, 53)); + assertTrue(dgt.edgeExists(50, 54)); + assertTrue(dgt.edgeExists(52, 51)); + assertTrue(dgt.edgeExists(52, 49)); + assertTrue(dgt.edgeExists(52, 54)); + assertFalse(dgt.edgeExists(40, 54)); + assertFalse(dgt.edgeExists(40, 42)); transFile1 = LatencyDetailedAnalysisMain.getLatencyDetailedAnalysis().parseFile(new File(getBaseResourcesDir() + SIMULATIONTRACE_PATH_FILE)); assertTrue(transFile1.size() == 38); checkedDropDown = latencyDetailedAnalysis.getCheckedT(); diff --git a/ttool/src/test/java/ui/graphlatencytainting/GraphLatencyAnalysisTaintingTest.java b/ttool/src/test/java/ui/GraphLatencyTainting/GraphLatencyAnalysisTaintingTest.java similarity index 99% rename from ttool/src/test/java/ui/graphlatencytainting/GraphLatencyAnalysisTaintingTest.java rename to ttool/src/test/java/ui/GraphLatencyTainting/GraphLatencyAnalysisTaintingTest.java index 3bfd7269d1..6da087deaa 100644 --- a/ttool/src/test/java/ui/graphlatencytainting/GraphLatencyAnalysisTaintingTest.java +++ b/ttool/src/test/java/ui/GraphLatencyTainting/GraphLatencyAnalysisTaintingTest.java @@ -1,4 +1,4 @@ -package ui.graphlatencytainting; +package ui.GraphLatencyTainting; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; diff --git a/ttool/src/test/java/ui/comparisonofsimulationtracesinxml/ComparisonOfSimulationTracesTest.java b/ttool/src/test/java/ui/comparisonofsimulationtracesinxml/ComparisonOfSimulationTracesTest.java deleted file mode 100644 index cc433be902..0000000000 --- a/ttool/src/test/java/ui/comparisonofsimulationtracesinxml/ComparisonOfSimulationTracesTest.java +++ /dev/null @@ -1,50 +0,0 @@ -package ui.comparisonofsimulationtracesinxml; - -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -import java.io.IOException; - -import javax.xml.parsers.ParserConfigurationException; - -import org.junit.BeforeClass; -import org.junit.Test; -import org.xml.sax.SAXException; - -import tmltranslator.simulation.CompareSimulationTrace; -import ui.AbstractUITest; -import ui.SimulationTrace; -import ui.interactivesimulation.JFrameShowLatencyDetails; -import ui.simulationtraceanalysis.JFrameCompareSimulationTraces; - -public class ComparisonOfSimulationTracesTest extends AbstractUITest { - private static final String PATH1 = "/ui/xmlCompare/input/simple.xml"; - private static final String PATH2 = "/ui/xmlCompare/input/simplifiedWithSecurity.xml"; - private static String STfilePath1 = getBaseResourcesDir() + PATH1; - private static String STfilePath2 = getBaseResourcesDir() + PATH2; - - private JFrameCompareSimulationTraces cSimTrace; - private CompareSimulationTrace newContentPane; - private JFrameShowLatencyDetails showLatencyDetails; - private SimulationTrace selectedST1 = new SimulationTrace("", 6, STfilePath1); - private SimulationTrace selectedST2 = new SimulationTrace("", 6, STfilePath2); - - @Test - public void loadTest() { - assertNotNull(selectedST1); - assertNotNull(selectedST2); - } - - @Test - public void parseXMLTest() throws SAXException, IOException, ParserConfigurationException { - cSimTrace = new JFrameCompareSimulationTraces(mainGUI, "", selectedST1, false); - cSimTrace.setVisible(false); - cSimTrace.parseXML(STfilePath1, STfilePath2); - assertNotNull(cSimTrace.getTransFile1()); - assertNotNull(cSimTrace.getTransFile2()); - newContentPane = new CompareSimulationTrace(); - newContentPane.JPanelCompareXmlGraph(cSimTrace.getTransFile1(), cSimTrace.getTransFile2()); - assertTrue(newContentPane.getTable().getRowCount() > 0); - } - -} \ No newline at end of file diff --git a/ttool/src/test/resources/ui/graphLatencyAnalysis/input/seqGraph1.graphml b/ttool/src/test/resources/ui/graphLatencyAnalysis/input/seqGraph1.graphml deleted file mode 100644 index c81cd9696a..0000000000 --- a/ttool/src/test/resources/ui/graphLatencyAnalysis/input/seqGraph1.graphml +++ /dev/null @@ -1,429 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?><graphml xmlns="http://graphml.graphdrawing.org/xmlns" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> -<key id="vertex_label_key" for="node" attr.name="VertexLabel" attr.type="string"/> -<key id="edge_label_key" for="edge" attr.name="EdgeLabel" attr.type="string"/> -<graph edgedefault="directed"> -<node id="Bus0"> -<data key="vertex_label_key">Bus0</data> -</node> -<node id="Memory0"> -<data key="vertex_label_key">Memory0</data> -</node> -<node id="f__dataC__13"> -<data key="vertex_label_key">f__dataC__13</data> -</node> -<node id="f__data__16"> -<data key="vertex_label_key">f__data__16</data> -</node> -<node id="CPU_R"> -<data key="vertex_label_key">CPU_R</data> -</node> -<node id="f__rez"> -<data key="vertex_label_key">f__rez</data> -</node> -<node id="f__rez__start__39"> -<data key="vertex_label_key">f__rez__start__39</data> -</node> -<node id="f__rez__infiniteloop__54"> -<data key="vertex_label_key">f__rez__infiniteloop__54</data> -</node> -<node id="f__rez__rseq__44"> -<data key="vertex_label_key">f__rez__rseq__44</data> -</node> -<node id="f__rez__readchannel__53"> -<data key="vertex_label_key">f__rez__readchannel__53</data> -</node> -<node id="f__rez__stopstate__52"> -<data key="vertex_label_key">f__rez__stopstate__52</data> -</node> -<node id="f__rez__execc__51"> -<data key="vertex_label_key">f__rez__execc__51</data> -</node> -<node id="f__rez__stopstate__50"> -<data key="vertex_label_key">f__rez__stopstate__50</data> -</node> -<node id="f__rez__loop__49"> -<data key="vertex_label_key">f__rez__loop__49</data> -</node> -<node id="f__rez__execi__46"> -<data key="vertex_label_key">f__rez__execi__46</data> -</node> -<node id="f__rez__seq__43"> -<data key="vertex_label_key">f__rez__seq__43</data> -</node> -<node id="f__rez__d-delay__47"> -<data key="vertex_label_key">f__rez__d-delay__47</data> -</node> -<node id="f__rez__stopstate__48"> -<data key="vertex_label_key">f__rez__stopstate__48</data> -</node> -<node id="f__rez__execi__42"> -<data key="vertex_label_key">f__rez__execi__42</data> -</node> -<node id="f__rez__stopstate__45"> -<data key="vertex_label_key">f__rez__stopstate__45</data> -</node> -<node id="f__rez__execc__41"> -<data key="vertex_label_key">f__rez__execc__41</data> -</node> -<node id="f__rez__stopstate__40"> -<data key="vertex_label_key">f__rez__stopstate__40</data> -</node> -<node id="f__app"> -<data key="vertex_label_key">f__app</data> -</node> -<node id="f__app__start__20"> -<data key="vertex_label_key">f__app__start__20</data> -</node> -<node id="f__app__Waitevent:f__sendData__f__sendData__38"> -<data key="vertex_label_key">f__app__Waitevent:f__sendData__f__sendData__38</data> -</node> -<node id="f__app__readchannel__37"> -<data key="vertex_label_key">f__app__readchannel__37</data> -</node> -<node id="f__app__seq__26"> -<data key="vertex_label_key">f__app__seq__26</data> -</node> -<node id="f__app__execi__25"> -<data key="vertex_label_key">f__app__execi__25</data> -</node> -<node id="f__app__stopstate__24"> -<data key="vertex_label_key">f__app__stopstate__24</data> -</node> -<node id="f__app__execi__21"> -<data key="vertex_label_key">f__app__execi__21</data> -</node> -<node id="f__app__loop__0__36"> -<data key="vertex_label_key">f__app__loop__0__36</data> -</node> -<node id="f__app__execi__23"> -<data key="vertex_label_key">f__app__execi__23</data> -</node> -<node id="f__app__stopstate__22"> -<data key="vertex_label_key">f__app__stopstate__22</data> -</node> -<node id="f__app__action__33"> -<data key="vertex_label_key">f__app__action__33</data> -</node> -<node id="f__app__choice__34"> -<data key="vertex_label_key">f__app__choice__34</data> -</node> -<node id="f__app__writechannel__28"> -<data key="vertex_label_key">f__app__writechannel__28</data> -</node> -<node id="f__app__stopstate__27"> -<data key="vertex_label_key">f__app__stopstate__27</data> -</node> -<node id="f__app__execi__32"> -<data key="vertex_label_key">f__app__execi__32</data> -</node> -<node id="f__app__stopstate__30"> -<data key="vertex_label_key">f__app__stopstate__30</data> -</node> -<node id="f__app__execi__31"> -<data key="vertex_label_key">f__app__execi__31</data> -</node> -<node id="f__app__stopstate__29"> -<data key="vertex_label_key">f__app__stopstate__29</data> -</node> -<node id="CPU_S"> -<data key="vertex_label_key">CPU_S</data> -</node> -<node id="f__send"> -<data key="vertex_label_key">f__send</data> -</node> -<node id="f__send__start__56"> -<data key="vertex_label_key">f__send__start__56</data> -</node> -<node id="f__send__seq__66"> -<data key="vertex_label_key">f__send__seq__66</data> -</node> -<node id="f__send__d-delay__65"> -<data key="vertex_label_key">f__send__d-delay__65</data> -</node> -<node id="f__send__stopstate__64"> -<data key="vertex_label_key">f__send__stopstate__64</data> -</node> -<node id="f__send__execi__63"> -<data key="vertex_label_key">f__send__execi__63</data> -</node> -<node id="f__send__seq__62"> -<data key="vertex_label_key">f__send__seq__62</data> -</node> -<node id="f__send__rseq__61"> -<data key="vertex_label_key">f__send__rseq__61</data> -</node> -<node id="f__send__execc__60"> -<data key="vertex_label_key">f__send__execc__60</data> -</node> -<node id="f__send__stopstate__59"> -<data key="vertex_label_key">f__send__stopstate__59</data> -</node> -<node id="f__send__execi__58"> -<data key="vertex_label_key">f__send__execi__58</data> -</node> -<node id="f__send__stopstate__57"> -<data key="vertex_label_key">f__send__stopstate__57</data> -</node> -<node id="f__send__Sendevent:f__sendData__f__sendData__67"> -<data key="vertex_label_key">f__send__Sendevent:f__sendData__f__sendData__67</data> -</node> -<node id="f__send__writechannel__69"> -<data key="vertex_label_key">f__send__writechannel__69</data> -</node> -<node id="f__send__stopstate__68"> -<data key="vertex_label_key">f__send__stopstate__68</data> -</node> -<edge id="Bus0f__dataC__13" source="Bus0" target="f__dataC__13"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="Bus0f__data__16" source="Bus0" target="f__data__16"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="CPU_Rf__rez" source="CPU_R" target="f__rez"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__rezf__rez__start__39" source="f__rez" target="f__rez__start__39"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__rez__start__39f__rez__infiniteloop__54" source="f__rez__start__39" target="f__rez__infiniteloop__54"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__rez__infiniteloop__54f__rez__rseq__44" source="f__rez__infiniteloop__54" target="f__rez__rseq__44"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__rez__rseq__44f__rez__readchannel__53" source="f__rez__rseq__44" target="f__rez__readchannel__53"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__rez__readchannel__53f__rez__stopstate__52" source="f__rez__readchannel__53" target="f__rez__stopstate__52"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__rez__rseq__44f__rez__execc__51" source="f__rez__rseq__44" target="f__rez__execc__51"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__rez__execc__51f__rez__stopstate__50" source="f__rez__execc__51" target="f__rez__stopstate__50"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__rez__rseq__44f__rez__loop__49" source="f__rez__rseq__44" target="f__rez__loop__49"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__rez__loop__49f__rez__execi__46" source="f__rez__loop__49" target="f__rez__execi__46"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__rez__execi__46f__rez__seq__43" source="f__rez__execi__46" target="f__rez__seq__43"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__rez__loop__49f__rez__d-delay__47" source="f__rez__loop__49" target="f__rez__d-delay__47"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__rez__d-delay__47f__rez__stopstate__48" source="f__rez__d-delay__47" target="f__rez__stopstate__48"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__rez__seq__43f__rez__execi__42" source="f__rez__seq__43" target="f__rez__execi__42"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__rez__execi__42f__rez__stopstate__45" source="f__rez__execi__42" target="f__rez__stopstate__45"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__rez__seq__43f__rez__execc__41" source="f__rez__seq__43" target="f__rez__execc__41"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__rez__execc__41f__rez__stopstate__40" source="f__rez__execc__41" target="f__rez__stopstate__40"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="CPU_Rf__app" source="CPU_R" target="f__app"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__appf__app__start__20" source="f__app" target="f__app__start__20"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__app__start__20f__app__Waitevent:f__sendData__f__sendData__38" source="f__app__start__20" target="f__app__Waitevent:f__sendData__f__sendData__38"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__app__Waitevent:f__sendData__f__sendData__38f__app__readchannel__37" source="f__app__Waitevent:f__sendData__f__sendData__38" target="f__app__readchannel__37"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__app__readchannel__37f__app__seq__26" source="f__app__readchannel__37" target="f__app__seq__26"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__app__seq__26f__app__execi__25" source="f__app__seq__26" target="f__app__execi__25"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__app__execi__25f__app__stopstate__24" source="f__app__execi__25" target="f__app__stopstate__24"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__app__seq__26f__app__execi__21" source="f__app__seq__26" target="f__app__execi__21"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__app__execi__21f__app__loop__0__36" source="f__app__execi__21" target="f__app__loop__0__36"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__app__seq__26f__app__execi__23" source="f__app__seq__26" target="f__app__execi__23"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__app__execi__23f__app__stopstate__22" source="f__app__execi__23" target="f__app__stopstate__22"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__app__loop__0__36f__app__action__33" source="f__app__loop__0__36" target="f__app__action__33"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__app__action__33f__app__choice__34" source="f__app__action__33" target="f__app__choice__34"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__app__loop__0__36f__app__writechannel__28" source="f__app__loop__0__36" target="f__app__writechannel__28"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__app__writechannel__28f__app__stopstate__27" source="f__app__writechannel__28" target="f__app__stopstate__27"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__app__choice__34f__app__execi__32" source="f__app__choice__34" target="f__app__execi__32"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__app__execi__32f__app__stopstate__30" source="f__app__execi__32" target="f__app__stopstate__30"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__app__choice__34f__app__execi__31" source="f__app__choice__34" target="f__app__execi__31"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__app__execi__31f__app__stopstate__29" source="f__app__execi__31" target="f__app__stopstate__29"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="CPU_Sf__send" source="CPU_S" target="f__send"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__sendf__send__start__56" source="f__send" target="f__send__start__56"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__send__start__56f__send__seq__66" source="f__send__start__56" target="f__send__seq__66"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__send__seq__66f__send__d-delay__65" source="f__send__seq__66" target="f__send__d-delay__65"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__send__d-delay__65f__send__stopstate__64" source="f__send__d-delay__65" target="f__send__stopstate__64"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__send__seq__66f__send__execi__63" source="f__send__seq__66" target="f__send__execi__63"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__send__execi__63f__send__seq__62" source="f__send__execi__63" target="f__send__seq__62"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__send__seq__62f__send__rseq__61" source="f__send__seq__62" target="f__send__rseq__61"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__send__seq__62f__send__execc__60" source="f__send__seq__62" target="f__send__execc__60"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__send__execc__60f__send__stopstate__59" source="f__send__execc__60" target="f__send__stopstate__59"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__send__rseq__61f__send__execi__58" source="f__send__rseq__61" target="f__send__execi__58"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__send__execi__58f__send__stopstate__57" source="f__send__execi__58" target="f__send__stopstate__57"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__send__rseq__61f__send__Sendevent:f__sendData__f__sendData__67" source="f__send__rseq__61" target="f__send__Sendevent:f__sendData__f__sendData__67"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__send__Sendevent:f__sendData__f__sendData__67f__send__writechannel__69" source="f__send__Sendevent:f__sendData__f__sendData__67" target="f__send__writechannel__69"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__send__writechannel__69f__send__stopstate__68" source="f__send__writechannel__69" target="f__send__stopstate__68"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="CPU_RBus0" source="CPU_R" target="Bus0"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="Bus0CPU_R" source="Bus0" target="CPU_R"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="CPU_SBus0" source="CPU_S" target="Bus0"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="Bus0CPU_S" source="Bus0" target="CPU_S"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="Memory0Bus0" source="Memory0" target="Bus0"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="Bus0Memory0" source="Bus0" target="Memory0"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__rez__stopstate__40f__rez__loop__49" source="f__rez__stopstate__40" target="f__rez__loop__49"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__rez__stopstate__52f__rez__infiniteloop__54" source="f__rez__stopstate__52" target="f__rez__infiniteloop__54"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__rez__stopstate__50f__rez__infiniteloop__54" source="f__rez__stopstate__50" target="f__rez__infiniteloop__54"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__app__stopstate__30f__app__loop__0__36" source="f__app__stopstate__30" target="f__app__loop__0__36"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__rez__stopstate__48f__rez__infiniteloop__54" source="f__rez__stopstate__48" target="f__rez__infiniteloop__54"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__app__stopstate__29f__app__loop__0__36" source="f__app__stopstate__29" target="f__app__loop__0__36"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__send__Sendevent:f__sendData__f__sendData__67f__app__Waitevent:f__sendData__f__sendData__38" source="f__send__Sendevent:f__sendData__f__sendData__67" target="f__app__Waitevent:f__sendData__f__sendData__38"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__dataC__13f__rez__readchannel__53" source="f__dataC__13" target="f__rez__readchannel__53"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__data__16f__app__readchannel__37" source="f__data__16" target="f__app__readchannel__37"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__send__writechannel__69f__data__16" source="f__send__writechannel__69" target="f__data__16"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__app__writechannel__28f__dataC__13" source="f__app__writechannel__28" target="f__dataC__13"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__app__stopstate__24f__app__execi__21" source="f__app__stopstate__24" target="f__app__execi__21"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__rez__stopstate__45f__rez__execc__41" source="f__rez__stopstate__45" target="f__rez__execc__41"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__send__stopstate__64f__send__execi__63" source="f__send__stopstate__64" target="f__send__execi__63"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__send__stopstate__57f__send__execc__60" source="f__send__stopstate__57" target="f__send__execc__60"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__send__stopstate__68f__send__execc__60" source="f__send__stopstate__68" target="f__send__execc__60"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__app__stopstate__27f__app__execi__23" source="f__app__stopstate__27" target="f__app__execi__23"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__rez__stopstate__52f__rez__loop__49" source="f__rez__stopstate__52" target="f__rez__loop__49"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__rez__stopstate__52f__rez__execc__51" source="f__rez__stopstate__52" target="f__rez__execc__51"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__rez__stopstate__50f__rez__loop__49" source="f__rez__stopstate__50" target="f__rez__loop__49"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__rez__stopstate__50f__rez__readchannel__53" source="f__rez__stopstate__50" target="f__rez__readchannel__53"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__rez__stopstate__48f__rez__readchannel__53" source="f__rez__stopstate__48" target="f__rez__readchannel__53"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__rez__stopstate__48f__rez__execc__51" source="f__rez__stopstate__48" target="f__rez__execc__51"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__send__stopstate__57f__send__Sendevent:f__sendData__f__sendData__67" source="f__send__stopstate__57" target="f__send__Sendevent:f__sendData__f__sendData__67"> -<data key="edge_label_key">1.0</data> -</edge> -<edge id="f__send__stopstate__68f__send__execi__58" source="f__send__stopstate__68" target="f__send__execi__58"> -<data key="edge_label_key">1.0</data> -</edge> -</graph> -</graphml> -- GitLab