Пример #1
0
    def test_no_double_accounting_saw(self):
        "test that suspension-aware analysis is correctly accounted for"
        lb.apply_part_fmlp_bounds(self.ts)

        self.assertTrue(rta.is_schedulable(1, self.p0))
        self.assertTrue(rta.is_schedulable(1, self.p1))

        # Expected inflated WCET and response times:

        # - for highest-priority task:
        #   - no WCET inflation
        #   - local pi-blocking of up to 1ms
        #   - remote pi-blocking of up to (1 + 1) ms
        self.assertEqual(self.p0[0].cost, 10)
        self.assertEqual(self.p1[0].cost, 10)

        self.assertEqual(self.p0[0].response_time, 10 + 1 + 2)
        self.assertEqual(self.p1[0].response_time, 10 + 1 + 2)

        # - for lower-priority task:
        #   - no WCET inflation
        #   - no arrival blocking
        #   - interference of up to 10ms (no inflation)
        #   - remote pi-blocking of up to (1 + 1) ms
        self.assertEqual(self.p0[1].cost, 10)
        self.assertEqual(self.p1[1].cost, 10)

        self.assertEqual(self.p0[1].response_time, 10 + 10 + 2)
        self.assertEqual(self.p1[1].response_time, 10 + 10 + 2)
Пример #2
0
    def test_no_double_accounting_saw(self):
        "test that suspension-aware analysis is correctly accounted for"
        lb.apply_part_fmlp_bounds(self.ts)

        self.assertTrue(rta.is_schedulable(1, self.p0))
        self.assertTrue(rta.is_schedulable(1, self.p1))

        # Expected inflated WCET and response times:

        # - for highest-priority task:
        #   - no WCET inflation
        #   - local pi-blocking of up to 1ms
        #   - remote pi-blocking of up to (1 + 1) ms
        self.assertEqual(self.p0[0].cost, 10)
        self.assertEqual(self.p1[0].cost, 10)

        self.assertEqual(self.p0[0].response_time, 10 + 1 + 2)
        self.assertEqual(self.p1[0].response_time, 10 + 1 + 2)

        # - for lower-priority task:
        #   - no WCET inflation
        #   - no arrival blocking
        #   - interference of up to 10ms (no inflation)
        #   - remote pi-blocking of up to (1 + 1) ms
        self.assertEqual(self.p0[1].cost, 10)
        self.assertEqual(self.p1[1].cost, 10)

        self.assertEqual(self.p0[1].response_time, 10 + 10 + 2)
        self.assertEqual(self.p1[1].response_time, 10 + 10 + 2)
Пример #3
0
 def test_part_fmlp_np(self):
     lb.apply_part_fmlp_bounds(self.ts, preemptive=False)
     self.saw_non_zero_blocking()