TestRateMonotonic.java 2.4 KB
Newer Older
1 2
package mvd.jester.priority;

3
import static org.junit.jupiter.api.Assertions.assertFalse;
4
import static org.junit.jupiter.api.Assertions.assertTrue;
5 6
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
7 8
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
9
import mvd.jester.model.SynchronousTask;
Michael Schmid committed
10
import mvd.jester.model.SystemManager;
11 12 13 14 15 16
import mvd.jester.simulator.DynamicForkJoin;
import mvd.jester.simulator.ParallelSynchronous;
import mvd.jester.simulator.internals.parallelsynchronous.TaskContext;
import mvd.jester.tests.ChwaLee;
import mvd.jester.tests.MaiaBertogna;
import mvd.jester.tests.SchmidMottok;
17 18 19 20 21 22 23 24 25 26

/**
 * TestRateMonotonic
 */
public class TestRateMonotonic {

    @Test
    @DisplayName("Test if priority manager returns the correct priority.")
    public void testPriority() {
        RateMonotonic rm = new RateMonotonic();
27 28
        SynchronousTask t1 = mock(SynchronousTask.class);
        SynchronousTask t2 = mock(SynchronousTask.class);
29 30
        when(t1.getPeriod()).thenReturn((long) 100);
        when(t2.getPeriod()).thenReturn((long) 200);
31

32 33 34 35
        TaskContext tc1 = mock(TaskContext.class);
        TaskContext tc2 = mock(TaskContext.class);
        when(tc1.getTask()).thenReturn(t1);
        when(tc2.getTask()).thenReturn(t2);
36 37 38

        assertTrue(rm.compare(t1, t2) < 0);
        assertTrue(rm.compare(tc1, tc2) < 0);
39 40 41 42 43 44 45 46 47 48 49
        assertTrue(rm.compare(t1, t1) == 0);
        assertTrue(rm.compare(tc1, tc1) == 0);
        assertTrue(rm.compare(t2, t1) > 0);
        assertTrue(rm.compare(tc2, tc1) > 0);
    }


    @Test
    @DisplayName("Check Tests and Simulators.")
    void testTestsAndSimulators() {
        RateMonotonic rm = new RateMonotonic();
Michael Schmid committed
50
        SystemManager manager = new SystemManager(8);
51 52 53 54 55 56
        assertFalse(rm.hasTest(ChwaLee.class));
        assertTrue(rm.hasTest(MaiaBertogna.class));
        assertTrue(rm.hasTest(SchmidMottok.class));
        assertTrue(rm.hasSimulator(ParallelSynchronous.class));
        assertTrue(rm.hasSimulator(DynamicForkJoin.class));

Michael Schmid committed
57 58 59
        assertFalse(rm.hasTest(new ChwaLee(manager)));
        assertTrue(rm.hasTest(new SchmidMottok(manager)));
        assertTrue(rm.hasTest(new MaiaBertogna(manager)));
60 61
        // assertTrue(rm.hasSimulator(new ParallelSynchronous(mock(SystemSetup.class))));
        // assertTrue(rm.hasSimulator(new DynamicForkJoin(mock(SystemSetup.class))));
62 63

        assertTrue(rm.getName().equals("RM"));
64 65
    }
}