From 588a07e1a81adc796392906574599a077239dd9e Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Tue, 5 Jul 2022 10:45:54 +0200 Subject: validation: Always test spurious interrupts Update #3716. --- .../testsuites/validation/validation-intr.yml | 4 +++- .../validation/validation-smp-only-0.yml | 2 -- testsuites/validation/tc-bsp-interrupt-spurious.c | 24 +++++++++------------- 3 files changed, 13 insertions(+), 17 deletions(-) diff --git a/spec/build/testsuites/validation/validation-intr.yml b/spec/build/testsuites/validation/validation-intr.yml index 3bef9b7c9c..ced15b9490 100644 --- a/spec/build/testsuites/validation/validation-intr.yml +++ b/spec/build/testsuites/validation/validation-intr.yml @@ -8,9 +8,11 @@ cxxflags: [] enabled-by: true features: c cprogram includes: [] -ldflags: [] +ldflags: +- -Wl,--wrap=bsp_interrupt_handler_default links: [] source: +- testsuites/validation/tc-bsp-interrupt-spurious.c - testsuites/validation/tc-intr-clear.c - testsuites/validation/tc-intr-entry-install.c - testsuites/validation/tc-intr-entry-remove.c diff --git a/spec/build/testsuites/validation/validation-smp-only-0.yml b/spec/build/testsuites/validation/validation-smp-only-0.yml index fc4091b92e..7ed2f7c943 100644 --- a/spec/build/testsuites/validation/validation-smp-only-0.yml +++ b/spec/build/testsuites/validation/validation-smp-only-0.yml @@ -9,12 +9,10 @@ enabled-by: RTEMS_SMP features: c cprogram includes: [] ldflags: -- -Wl,--wrap=bsp_interrupt_handler_default - -Wl,--wrap=_Scheduler_EDF_SMP_Yield links: [] source: - testsuites/validation/tc-acfg-scheduler-edf-smp.c -- testsuites/validation/tc-bsp-interrupt-spurious.c - testsuites/validation/tc-intr-smp-only.c - testsuites/validation/tc-scheduler-smp-only.c - testsuites/validation/tc-sched-smp.c diff --git a/testsuites/validation/tc-bsp-interrupt-spurious.c b/testsuites/validation/tc-bsp-interrupt-spurious.c index de139337da..0cb14f8f1a 100644 --- a/testsuites/validation/tc-bsp-interrupt-spurious.c +++ b/testsuites/validation/tc-bsp-interrupt-spurious.c @@ -63,7 +63,7 @@ * @defgroup RTEMSTestCaseBspReqInterruptSpurious \ * spec:/bsp/req/interrupt-spurious * - * @ingroup RTEMSTestSuiteTestsuitesValidationSmpOnly0 + * @ingroup RTEMSTestSuiteTestsuitesValidationIntr * * @{ */ @@ -416,28 +416,24 @@ static void BspReqInterruptSpurious_Action( BspReqInterruptSpurious_Context *ctx ) { + rtems_status_code sc; + ctx->interrupt_occurred = false; ctx->entry_counter = 0; ctx->fatal_counter = 0; ctx->fatal_source = RTEMS_FATAL_SOURCE_LAST; ctx->fatal_code = UINT32_MAX; - if ( *ctx->first == NULL ) { - rtems_status_code sc; - - (void) rtems_interrupt_vector_enable( ctx->test_vector ); - - sc = rtems_interrupt_raise( ctx->test_vector ); - T_rsc_success( sc ); + (void) rtems_interrupt_vector_enable( ctx->test_vector ); - while ( !ctx->interrupt_occurred ) { - /* Wait */ - } + sc = rtems_interrupt_raise( ctx->test_vector ); + T_rsc_success( sc ); - Disable( ctx ); - } else { - bsp_interrupt_spurious( ctx->test_vector ); + while ( !ctx->interrupt_occurred ) { + /* Wait */ } + + Disable( ctx ); } static const BspReqInterruptSpurious_Entry -- cgit v1.2.3