diff options
Diffstat (limited to 'testsuites/sptests/spintrcritical09/init.c')
-rw-r--r-- | testsuites/sptests/spintrcritical09/init.c | 24 |
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 |