From 9594cdbd4ea3f73419d65c6f0ffb0e00235cbb65 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Thu, 30 May 1996 20:49:16 +0000 Subject: added code to test clock and time related functionality. --- c/src/tests/psxtests/psx01/init.c | 79 +++++++++++++++++++++++++++++-------- c/src/tests/psxtests/psx01/system.h | 1 + 2 files changed, 63 insertions(+), 17 deletions(-) (limited to 'c') diff --git a/c/src/tests/psxtests/psx01/init.c b/c/src/tests/psxtests/psx01/init.c index 7f24bf6319..19e1f28e2b 100644 --- a/c/src/tests/psxtests/psx01/init.c +++ b/c/src/tests/psxtests/psx01/init.c @@ -1,16 +1,4 @@ -/* Init - * - * This routine is the initialization task for this test program. - * It is a user initialization task and has the responsibility for creating - * and starting the tasks that make up the test. If the time of day - * clock is required for the test, it should also be set to a known - * value by this function. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * +/* * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. * On-Line Applications Research Corporation (OAR). * All rights assigned to U.S. Government, 1994. @@ -25,24 +13,81 @@ #define CONFIGURE_INIT #include "system.h" +#define TM_SUNDAY 0 +#define TM_MONDAY 1 +#define TM_TUESDAY 2 +#define TM_WEDNESDAY 3 +#define TM_THURSDAY 4 +#define TM_FRIDAY 5 +#define TM_SATURDAY 6 + +#define TM_JANUARY 0 +#define TM_FEBRUARY 1 +#define TM_MARCH 2 +#define TM_APRIL 3 +#define TM_MAY 4 +#define TM_JUNE 5 +#define TM_JULY 6 +#define TM_AUGUST 7 +#define TM_SEPTEMBER 8 +#define TM_OCTOBER 10 +#define TM_NOVEMBER 12 +#define TM_DECEMBER 12 + + +#define build_time( TM, WEEKDAY, MON, DAY, YR, HR, MIN, SEC ) \ + { (TM)->tm_year = YR; \ + (TM)->tm_mon = MON; \ + (TM)->tm_mday = DAY; \ + (TM)->tm_wday = WEEKDAY; \ + (TM)->tm_hour = HR; \ + (TM)->tm_min = MIN; \ + (TM)->tm_sec = SEC; } + void *POSIX_Init( void *argument ) { - int status; - pthread_t thread_id; + int status; + pthread_t thread_id; + time_t seconds; + struct tm tm; + struct timespec tv; puts( "\n\n*** POSIX TEST 1 ***" ); /* set the time of day */ - /* create the three tasks */ + build_time( &tm, TM_FRIDAY, TM_MAY, 24, 96, 11, 5, 0 ); - /* exit */ + tv.tv_sec = mktime( &tm ); + assert( tv.tv_sec != -1 ); + + tv.tv_nsec = 0; + + status = clock_settime( CLOCK_REALTIME, &tv ); + assert( !status ); + + printf( asctime( &tm ) ); + printf( ctime( &tv.tv_sec ) ); + + sleep( 3 ); + + status = clock_gettime( CLOCK_REALTIME, &tv ); + assert( !status ); + + printf( ctime( &tv.tv_sec ) ); + + seconds = time( NULL ); + printf( ctime( &seconds ) ); + + /* create a thread */ status = pthread_create( &thread_id, NULL, Task_1_through_3, NULL ); assert( !status ); + /* exit this thread */ + pthread_exit( NULL ); /* just to satisfy compilers which think we did not return anything */ diff --git a/c/src/tests/psxtests/psx01/system.h b/c/src/tests/psxtests/psx01/system.h index 1c28c02d8a..409bff4450 100644 --- a/c/src/tests/psxtests/psx01/system.h +++ b/c/src/tests/psxtests/psx01/system.h @@ -20,6 +20,7 @@ #include #include #include +#include void *POSIX_Init( void *argument -- cgit v1.2.3