summaryrefslogtreecommitdiffstats
path: root/testsuites/sptests/spintrcritical09
diff options
context:
space:
mode:
Diffstat (limited to 'testsuites/sptests/spintrcritical09')
-rw-r--r--testsuites/sptests/spintrcritical09/init.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/testsuites/sptests/spintrcritical09/init.c b/testsuites/sptests/spintrcritical09/init.c
index 90948eccc6..bc942d5f77 100644
--- a/testsuites/sptests/spintrcritical09/init.c
+++ b/testsuites/sptests/spintrcritical09/init.c
@@ -20,7 +20,7 @@
const char rtems_test_name[] = "SPINTRCRITICAL 9";
static rtems_id Semaphore;
-static bool case_hit;
+static bool case_hit = false;
static Thread_blocking_operation_States getState(void)
{
@@ -64,12 +64,20 @@ static rtems_timer_service_routine test_release_from_isr(
}
}
+static bool test_body( void *arg )
+{
+ (void) arg;
+
+ rtems_semaphore_obtain( Semaphore, RTEMS_DEFAULT_OPTIONS, 1 );
+
+ return case_hit;
+}
+
static rtems_task Init(
rtems_task_argument ignored
)
{
rtems_status_code sc;
- int resets;
TEST_BEGIN();
@@ -84,16 +92,7 @@ static rtems_task Init(
);
directive_failed( sc, "rtems_semaphore_create of SM1" );
- interrupt_critical_section_test_support_initialize( test_release_from_isr );
-
- case_hit = false;
-
- for (resets=0 ; resets< 2 ;) {
- if ( interrupt_critical_section_test_support_delay() )
- resets++;
-
- (void) rtems_semaphore_obtain( Semaphore, RTEMS_DEFAULT_OPTIONS, 1 );
- }
+ interrupt_critical_section_test( test_body, NULL, test_release_from_isr );
if ( case_hit ) {
puts( "Init - It appears the case has been hit" );
@@ -112,6 +111,7 @@ static rtems_task Init(
#define CONFIGURE_MAXIMUM_TASKS 1
#define CONFIGURE_MAXIMUM_TIMERS 1
#define CONFIGURE_MAXIMUM_SEMAPHORES 1
+#define CONFIGURE_MAXIMUM_USER_EXTENSIONS 1
#define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE