[rtems-central commit] spec: Properly teardown test cases

Sebastian Huber sebh at rtems.org
Wed Nov 9 16:00:27 UTC 2022


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

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Wed Nov  9 17:12:11 2022 +0100

spec: Properly teardown test cases

---

 spec/rtems/intr/req/entry-install.yml   | 19 ++++++++++++++++++-
 spec/rtems/intr/req/entry-remove.yml    | 19 ++++++++++++++++++-
 spec/rtems/intr/req/handler-iterate.yml | 27 ++++++++++++++++++++++++++-
 3 files changed, 62 insertions(+), 3 deletions(-)

diff --git a/spec/rtems/intr/req/entry-install.yml b/spec/rtems/intr/req/entry-install.yml
index 155eda7c..81d6fc2f 100644
--- a/spec/rtems/intr/req/entry-install.yml
+++ b/spec/rtems/intr/req/entry-install.yml
@@ -424,6 +424,12 @@ test-context:
   description: null
   member: |
     rtems_vector_number test_vector
+- brief: |
+    If this member is true, then the testable interrupt vector was enabled at
+    the test case begin.
+  description: null
+  member: |
+    bool test_vector_was_enabled
 - brief: |
     This member provides the attributes of the testable interrupt vector.
   description: null
@@ -540,6 +546,11 @@ test-setup:
 
     ctx->initialized_during_setup = bsp_interrupt_is_initialized();
     ctx->test_vector = GetTestableInterruptVector( &required );
+    ctx->test_vector_was_enabled = false;
+    (void) rtems_interrupt_vector_is_enabled(
+      ctx->test_vector,
+      &ctx->test_vector_was_enabled
+    );
     sc = rtems_interrupt_get_attributes( ctx->test_vector, &ctx->attributes );
     T_rsc_success( sc );
   description: null
@@ -744,7 +755,13 @@ test-support: |
     ctx->visited_entries = visited_entries + 1;
   }
 test-target: testsuites/validation/tc-intr-entry-install.c
-test-teardown: null
+test-teardown:
+  brief: null
+  code: |
+    if ( ctx->test_vector_was_enabled ) {
+      (void) rtems_interrupt_vector_enable( ctx->test_vector );
+    }
+  description: null
 text: ${.:text-template}
 transition-map:
 - enabled-by: true
diff --git a/spec/rtems/intr/req/entry-remove.yml b/spec/rtems/intr/req/entry-remove.yml
index a6db9280..ed4f7970 100644
--- a/spec/rtems/intr/req/entry-remove.yml
+++ b/spec/rtems/intr/req/entry-remove.yml
@@ -470,6 +470,12 @@ test-context:
   description: null
   member: |
     rtems_vector_number test_vector
+- brief: |
+    If this member is true, then the testable interrupt vector was enabled at
+    the test case begin.
+  description: null
+  member: |
+    bool test_vector_was_enabled
 - brief: |
     This member provides the attributes of the testable interrupt vector.
   description: null
@@ -546,6 +552,11 @@ test-setup:
 
     ctx->initialized_during_setup = bsp_interrupt_is_initialized();
     ctx->test_vector = GetTestableInterruptVector( NULL );
+    ctx->test_vector_was_enabled = false;
+    (void) rtems_interrupt_vector_is_enabled(
+      ctx->test_vector,
+      &ctx->test_vector_was_enabled
+    );
     sc = rtems_interrupt_get_attributes( ctx->test_vector, &ctx->attributes );
     T_rsc_success( sc );
   description: null
@@ -725,7 +736,13 @@ test-support: |
     ctx->visited_entries = visited_entries + 1;
   }
 test-target: testsuites/validation/tc-intr-entry-remove.c
-test-teardown: null
+test-teardown:
+  brief: null
+  code: |
+    if ( ctx->test_vector_was_enabled ) {
+      (void) rtems_interrupt_vector_enable( ctx->test_vector );
+    }
+  description: null
 text: ${.:text-template}
 transition-map:
 - enabled-by: true
diff --git a/spec/rtems/intr/req/handler-iterate.yml b/spec/rtems/intr/req/handler-iterate.yml
index d10a3c24..7d26a546 100644
--- a/spec/rtems/intr/req/handler-iterate.yml
+++ b/spec/rtems/intr/req/handler-iterate.yml
@@ -148,6 +148,12 @@ test-context:
   description: null
   member: |
     rtems_vector_number test_vector
+- brief: |
+    If this member is true, then the testable interrupt vector was enabled at
+    the test case begin.
+  description: null
+  member: |
+    bool test_vector_was_enabled
 - brief: |
     If this member is true, then the service shall be initialized.
   description: null
@@ -203,6 +209,11 @@ test-setup:
 
     ctx->initialized_during_setup = bsp_interrupt_is_initialized();
     ctx->test_vector = GetTestableInterruptVector( NULL );
+    ctx->test_vector_was_enabled = false;
+    (void) rtems_interrupt_vector_is_enabled(
+      ctx->test_vector,
+      &ctx->test_vector_was_enabled
+    );
     rtems_interrupt_entry_initialize(
       &ctx->entry,
       EntryRoutine,
@@ -282,7 +293,21 @@ test-support: |
     );
   }
 test-target: testsuites/validation/tc-intr-handler-iterate.c
-test-teardown: null
+test-teardown:
+  brief: null
+  code: |
+    rtems_status_code sc;
+
+    sc = rtems_interrupt_entry_remove(
+      ctx->test_vector,
+      &ctx->entry
+    );
+    T_rsc_success( sc );
+
+    if ( ctx->test_vector_was_enabled ) {
+      (void) rtems_interrupt_vector_enable( ctx->test_vector );
+    }
+  description: null
 text: ${.:text-template}
 transition-map:
 - enabled-by: true



More information about the vc mailing list