[rtems-central commit] spec: Fix bsp_interrupt_spurious() validation

Sebastian Huber sebh at rtems.org
Mon Jul 26 11:12:45 UTC 2021


Module:    rtems-central
Branch:    master
Commit:    80cbbed0b3fc46c8b593267adcdf89c0dfeeb909
Changeset: http://git.rtems.org/rtems-central/commit/?id=80cbbed0b3fc46c8b593267adcdf89c0dfeeb909

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Mon Jul 26 13:11:00 2021 +0200

spec: Fix bsp_interrupt_spurious() validation

---

 spec/bsp/req/interrupt-spurious.yml | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/spec/bsp/req/interrupt-spurious.yml b/spec/bsp/req/interrupt-spurious.yml
index ebdd53c..fbd7d3e 100644
--- a/spec/bsp/req/interrupt-spurious.yml
+++ b/spec/bsp/req/interrupt-spurious.yml
@@ -130,11 +130,26 @@ test-prepare: null
 test-setup:
   brief: null
   code: |
-    ctx->vector = GetValidInterruptVectorNumber( NULL );
-    T_assert_lt_u32( ctx->vector, BSP_INTERRUPT_VECTOR_COUNT );
+    rtems_vector_number vector;
 
+    for ( vector = 0; vector < BSP_INTERRUPT_VECTOR_COUNT; ++vector ) {
+      rtems_status_code          sc;
+      rtems_interrupt_attributes attributes;
+
+      sc = rtems_interrupt_get_attributes( vector, &attributes );
+
+      if (
+        sc == RTEMS_SUCCESSFUL &&
+        !HasInterruptVectorEntriesInstalled( vector )
+      ) {
+        break;
+      }
+    }
+
+    T_assert_lt_u32( vector, BSP_INTERRUPT_VECTOR_COUNT );
+    ctx->vector = vector;
     ctx->first = &bsp_interrupt_handler_table[
-      bsp_interrupt_handler_index( ctx->vector )
+      bsp_interrupt_handler_index( vector )
     ];
 
     rtems_interrupt_entry_initialize( &ctx->entry, EntryRoutine, ctx, "Info" );



More information about the vc mailing list