Notice: We have migrated to GitLab launching 2024-05-01 see here:

#4737 new defect

rtems_interrupt_is_pending behaviour expected between tc-intr-clear and tc-intr-raise-on

Reported by: Lucian-Raul Silistru Owned by: joel@…
Priority: normal Milestone:
Component: test Version: 6
Severity: normal Keywords:
Cc: Blocked By:


In testsuite tc-validation-intr there's a discrepancy between expected behaviour of rtems_interrupt_is_pending when the vector is disabled in tc-intr-clear and tc-intr-raise-on.

In tc-intr-raise-on CheckRaiseOn? IsPending? is ignored with a comment that not all interrupt controller will signal a pending interrupt when the vector is disabled.

In tc-intr-clear CheckClear? there's a verification under
if ( attr->can_disable )
that fails the test if IsPending? does not return true after an interrupt is raised on a disabled vector.

According to the tc-intr-raise-on comment, the tc-intr-clear check should be relaxed, is that correct?

Change History (3)

comment:1 Changed on 10/07/22 at 05:13:19 by Sebastian Huber

With which interrupt controller do you have the issue?

comment:2 Changed on 10/07/22 at 07:23:18 by Lucian-Raul Silistru

We have a custom external controller (on a sparcv8 based CPU) where rtems_interrupt_is_pending (pending register) will return false if the vector is disabled (and interrupt is raised).

So the check at will fail.
At the same time there's this unused check and comment

We would like to know which version is the valid/correct one.

comment:3 Changed on 10/07/22 at 07:45:44 by Sebastian Huber

We have two options:

  1. We add the pending behaviour to the interrupt attributes so that we can write more thorough validation tests.
  1. We remove some checks in the validation tests.
Note: See TracTickets for help on using tickets.