Ejemplo n.º 1
0
 def __calculate_left_work(self, pcb):
     """
     we have to find out how much cpu-time is left in the workplan
     :param pcb: the PCB of the target Process
     :return: int. left service time
     """
     pe = ProcessEvaluator() # we 'abuse' the process evaluator
     # @TODO: change this. The evaluator module is not meant to be used this way
     service_time = pe.getServiceTime(pcb)
     return service_time
Ejemplo n.º 2
0
class ProcessEvaluatorTestCase(SimpleFiFoScenario):
    def setUp(self):
        super(ProcessEvaluatorTestCase, self).setUp()
        scheduler = SchedulerFactory.getScheduler("FiFo", timeslice=10)
        scheduler.initialize("A")
        scheduler.run()

        self.evaluator = ProcessEvaluator()

    def test_getPeriodForPCB_01(self):
        # test get pcb by name
        period_B = self.evaluator.getPeriodForPCB("B")
        self.assertTupleEqual(period_B, (10, 20))

    def test_getPeriodForPCB_02(self):
        period_A = self.evaluator.getPeriodForPCB("A")
        self.assertTupleEqual(period_A, (0, 35))

    def test_getPeriodForPCB_03(self):
        # test get pcb by reference
        period_B = self.evaluator.getPeriodForPCB(self.pcb2)
        self.assertTupleEqual(period_B, (10, 20))

    def test_getServiceTime_01(self):
        service_time = self.evaluator.getServiceTime("A")
        self.assertEqual(service_time, 20)

    def test_getServiceTime_02(self):
        service_time = self.evaluator.getServiceTime("B")
        self.assertEqual(service_time, 10)

    def test_getWaitTime_01(self):
        wait_time = self.evaluator.getWaitTime("A")
        self.assertEqual(wait_time, 15)

    def test_getWaitTime_02(self):
        wait_time = self.evaluator.getWaitTime("B")
        self.assertEqual(wait_time, 0)