diff options
Diffstat (limited to 'testsuites/sptests/sp52/init.c')
-rw-r--r-- | testsuites/sptests/sp52/init.c | 140 |
1 files changed, 1 insertions, 139 deletions
diff --git a/testsuites/sptests/sp52/init.c b/testsuites/sptests/sp52/init.c index 801a0b8754..6cf79eb97f 100644 --- a/testsuites/sptests/sp52/init.c +++ b/testsuites/sptests/sp52/init.c @@ -1,139 +1 @@ -/* - * Based upon test code posted on the RTEMS User's Mailing List - * by Sergio Faustino <sergio.faustino@edisoft.pt>: - * - * http://www.rtems.org/pipermail/rtems-users/2009-June/005540.html - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rtems.org/license/LICENSE. - */ - -#if defined(USE_TIMER_SERVER) - #define TEST_NUMBER "53" - #define TSR_MODE "Server" - #define FIRE_WHEN rtems_timer_server_fire_when - #define FIRE_WHEN_STRING "rtems_timer_server_fire_when" -#else - #define TEST_NUMBER "52" - #define TSR_MODE "Interrupt" - #define FIRE_WHEN rtems_timer_fire_when - #define FIRE_WHEN_STRING "rtems_timer_fire_when" -#endif - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include <tmacros.h> -#include <string.h> - -const char rtems_test_name[] = "SP " TEST_NUMBER; - -#define INITIAL_YEAR 2009 - -static bool _timer_passage; - -static rtems_time_of_day time_to_fire; - -/*timer Routine*/ -static rtems_timer_service_routine TIMER_service_routine( - rtems_id ignored_id, - void *user_data -) -{ - rtems_status_code status; - rtems_time_of_day now; - - _timer_passage = true; - - memset( &now, 0, sizeof( now ) ); - - status = rtems_clock_get_tod( &now ); - rtems_test_assert( status == RTEMS_SUCCESSFUL ); - rtems_test_assert( memcmp( &now, &time_to_fire, sizeof( now ) ) == 0 ); -} - -static rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_id timer_id; - rtems_name timer_name; - - rtems_time_of_day global_time; - - TEST_BEGIN(); - - /* build timer name*/ - timer_name = rtems_build_name('T', 'M', '1', ' '); - - /* create Timer */ - status = rtems_timer_create(timer_name, &timer_id); - directive_failed( status, "rtems_timer_create" ); - - #if defined(USE_TIMER_SERVER) - /* initiate timer server */ - status = rtems_timer_initiate_server( - RTEMS_MINIMUM_PRIORITY, - RTEMS_MINIMUM_STACK_SIZE, - RTEMS_DEFAULT_ATTRIBUTES - ); - directive_failed( status, "rtems_timer_initiate_server" ); - #endif - - /* Set system clock */ - build_time(&global_time, 6, 8, INITIAL_YEAR, 16, 5, 13, 0); - status = rtems_clock_set(&global_time); - directive_failed( status, "rtems_clock_set" ); - - /* Set Timer to Fire */ - /* build fire times */ - time_to_fire = global_time; - - /* only diferent second */ - time_to_fire.year = INITIAL_YEAR + 5; - - status = FIRE_WHEN( - timer_id, - &time_to_fire, - TIMER_service_routine, - (void*) NULL - ); - directive_failed( status, FIRE_WHEN_STRING ); - - /* Set system clock FORWARD */ - global_time.year = time_to_fire.year; - status = rtems_clock_set(&global_time); - - if (!_timer_passage) { - puts( TSR_MODE " Timer FAILED to fire after setting time forward"); - rtems_test_exit(0); - } - - puts( TSR_MODE " Timer fired after setting time forward -- OK"); - - TEST_END(); - rtems_test_exit(0); -} - -/* configuration stuff */ - -#define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER -#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER - -#define CONFIGURE_MICROSECONDS_PER_TICK 50000 - -#define CONFIGURE_MAXIMUM_TASKS 2 -#define CONFIGURE_MAXIMUM_TIMERS 1 - -#define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION - -#define CONFIGURE_RTEMS_INIT_TASKS_TABLE - -#define CONFIGURE_INIT_TASK_PRIORITY (RTEMS_MINIMUM_PRIORITY + 1) -#define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES - -#define CONFIGURE_INIT -#include <rtems/confdefs.h> +#include "sp52impl.h" |