diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-11-23 13:38:25 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-11-23 13:44:22 +0100 |
commit | 73f9c2c27ba6a22f8bc3ccef9298c951c3728741 (patch) | |
tree | 369ff538f7cbe2a4ae4bba3a6e2e3d52723102f6 /testsuites | |
parent | score: Uncomment unused internal error codes (diff) | |
download | rtems-73f9c2c27ba6a22f8bc3ccef9298c951c3728741.tar.bz2 |
smptests/smpfatal03: Use timer to provoke error
Avoid use of internal _Thread_Dispatch_disable() function.
Update #2825.
Diffstat (limited to 'testsuites')
-rw-r--r-- | testsuites/smptests/smpfatal03/init.c | 52 |
1 files changed, 21 insertions, 31 deletions
diff --git a/testsuites/smptests/smpfatal03/init.c b/testsuites/smptests/smpfatal03/init.c index 0eb15aae81..9f7c6824ed 100644 --- a/testsuites/smptests/smpfatal03/init.c +++ b/testsuites/smptests/smpfatal03/init.c @@ -21,27 +21,21 @@ const char rtems_test_name[] = "SMPFATAL 3"; -static void task(rtems_task_argument arg) +static void bad( rtems_id timer_id, void *arg ) { - rtems_status_code sc; rtems_id *sem_id; - sem_id = (rtems_id *) arg; - - sc = rtems_semaphore_obtain(*sem_id, RTEMS_WAIT, RTEMS_NO_TIMEOUT); - rtems_test_assert(sc == RTEMS_SUCCESSFUL); + sem_id = arg; - sc = rtems_task_wake_after(RTEMS_YIELD_PROCESSOR); - rtems_test_assert(sc == RTEMS_SUCCESSFUL); - - rtems_test_assert(0); + rtems_semaphore_obtain( *sem_id, RTEMS_WAIT, RTEMS_NO_TIMEOUT ); + rtems_test_assert( 0 ); } -static void Init(rtems_task_argument arg) +static void Init( rtems_task_argument arg ) { rtems_status_code sc; - rtems_id task_id; - rtems_id sem_id; + rtems_id timer_id; + rtems_id sem_id; TEST_BEGIN(); @@ -53,27 +47,22 @@ static void Init(rtems_task_argument arg) 1, &sem_id ); - rtems_test_assert(sc == RTEMS_SUCCESSFUL); + rtems_test_assert( sc == RTEMS_SUCCESSFUL ); - sc = rtems_task_create( - rtems_build_name('T', 'A', 'S', 'K'), - 1, - RTEMS_MINIMUM_STACK_SIZE, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &task_id + sc = rtems_timer_create( + rtems_build_name( 'E', 'V', 'I', 'L' ), + &timer_id ); - rtems_test_assert(sc == RTEMS_SUCCESSFUL); + rtems_test_assert( sc == RTEMS_SUCCESSFUL ); - sc = rtems_task_start(task_id, task, (rtems_task_argument) &sem_id); - rtems_test_assert(sc == RTEMS_SUCCESSFUL); + sc = rtems_semaphore_obtain( sem_id, RTEMS_WAIT, RTEMS_NO_TIMEOUT ); + rtems_test_assert( sc == RTEMS_SUCCESSFUL ); - sc = rtems_task_wake_after(RTEMS_YIELD_PROCESSOR); - rtems_test_assert(sc == RTEMS_SUCCESSFUL); + sc = rtems_timer_fire_after( timer_id, 1, bad, &sem_id ); + rtems_test_assert( sc == RTEMS_SUCCESSFUL ); - _Thread_Dispatch_disable(); - rtems_semaphore_obtain(sem_id, RTEMS_WAIT, RTEMS_NO_TIMEOUT); - rtems_test_assert(0); + rtems_task_wake_after( 2 ); + rtems_test_assert( 0 ); } static void fatal_extension( @@ -91,14 +80,15 @@ static void fatal_extension( } } -#define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER +#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER #define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER #define CONFIGURE_INITIAL_EXTENSIONS \ { .fatal = fatal_extension }, \ RTEMS_TEST_INITIAL_EXTENSION -#define CONFIGURE_MAXIMUM_TASKS 2 +#define CONFIGURE_MAXIMUM_TASKS 1 +#define CONFIGURE_MAXIMUM_TIMERS 1 #define CONFIGURE_MAXIMUM_MRSP_SEMAPHORES 1 #define CONFIGURE_RTEMS_INIT_TASKS_TABLE |