Skip to content
Snippets Groups Projects
GraphLatencyAnalysis.java 3.91 KiB
Newer Older
package ui.GraphLatencyAnalysis;

import static org.junit.Assert.*;

import java.io.File;
import java.util.Vector;

import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

import ui.AbstractUITest;
import ui.TMLArchiPanel;
import ui.directedgraph.DirectedGraphTranslator;
import ui.directedgraph.JFrameLatencyDetailedAnalysis;
import ui.directedgraph.JFrameLatencyDetailedPopup;
import ui.interactivesimulation.SimulationTransaction;

public class GraphLatencyAnalysis extends AbstractUITest {

    private static final String simulationTracePath = "/ui/graphLatencyAnalysis/input/graphTestSimulationTrace.xml";
    private static final String modelPath = "/ui/graphLatencyAnalysis/input/GraphTestModel.xml";
maysam zoor's avatar
maysam zoor committed
  
    private static final String mappingDiagName = "Architecture2";
    private Vector<SimulationTransaction> transFile1;
    private Vector<String> dropDown;

    private static final String t1 = "Application2__task4:sendevent:evt1__44";
    private static final String t2 = "Application2__task22:readchannel:comm_0__26";
    private static String task1;
    private static String task2;
    private static DirectedGraphTranslator dgt;

    private static Object[][] allLatencies, minMaxArray, taskHWByRowDetails, detailedLatency;
    private JFrameLatencyDetailedAnalysis latencyDetailedAnalysis;

    @Before
    public void GraphLatencyAnalysis() {

        mainGUI.openProjectFromFile(new File(getBaseResourcesDir() + modelPath));
        // mainGUI.openProjectFromFile(new File( modelPath));

        final TMLArchiPanel panel = findArchiPanel(mappingDiagName);

        if (panel == null) {
            System.out.println("NULL Panel");
        } else {
            System.out.println("Non NULL Panel");
        mainGUI.checkModelingSyntax(panel, true);
        SimulationTrace file2 = new SimulationTrace("graphTestSimulationTrace", 6, simulationTracePath);
        
        mainGUI.latencyDetailedAnalysis(file2, panel, false, false, mainGUI);
        latencyDetailedAnalysis = mainGUI.getLatencyDetailedAnalysis();
        if (latencyDetailedAnalysis != null) {
            latencyDetailedAnalysis.setVisible(false);
            if (latencyDetailedAnalysis.graphStatus() == Thread.State.TERMINATED )
            {
                dgt = latencyDetailedAnalysis.getDgraph();
            }
            while (latencyDetailedAnalysis.graphStatus() != Thread.State.TERMINATED ) {
                dgt = latencyDetailedAnalysis.getDgraph();
            }
apvrille's avatar
apvrille committed
        assertNotNull(latencyDetailedAnalysis);

        int graphsize = dgt.getGraphsize();

        assertTrue(graphsize == 40);

        dropDown = latencyDetailedAnalysis.getCheckedTransactions();
        assertTrue(dropDown.size() == 3);

        transFile1 = mainGUI.getLatencyDetailedAnalysis().parseFile(new File(getBaseResourcesDir() + simulationTracePath));

        // transFile1 = mainGUI.getLatencyDetailedAnalysis() .parseFile(new File(

        assertTrue(transFile1.size() == 175);

        int i = dropDown.indexOf(t1);
        int j = dropDown.indexOf(t2);

        task1 = dropDown.get(i);
        task2 = dropDown.get(j);

        allLatencies = dgt.latencyDetailedAnalysis(task1, task2, transFile1);

        assertTrue(allLatencies.length == 10);

        minMaxArray = dgt.latencyMinMaxAnalysis(task1, task2, transFile1);
        dgt.getRowDetailsMinMax(1);
        taskHWByRowDetails = dgt.getTasksByRowMinMax(1);

        assertTrue(minMaxArray.length > 0);

        assertTrue(taskHWByRowDetails.length == 15);
        taskHWByRowDetails = dgt.getTaskHWByRowDetailsMinMax(1);
        assertTrue(taskHWByRowDetails.length == 13);

        detailedLatency = dgt.getTaskByRowDetails(7);
        assertTrue(detailedLatency.length == 15);

        detailedLatency = dgt.getTaskHWByRowDetails(7);
        assertTrue(detailedLatency.length == 14);

    }

}