summaryrefslogtreecommitdiffstats
path: root/c/src
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1996-05-30 20:49:16 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1996-05-30 20:49:16 +0000
commit9594cdbd4ea3f73419d65c6f0ffb0e00235cbb65 (patch)
tree33d0be534101100d100d842e5faf43e04ab9bc80 /c/src
parentAdded nanoseconds constant (diff)
downloadrtems-9594cdbd4ea3f73419d65c6f0ffb0e00235cbb65.tar.bz2
added code to test clock and time related functionality.
Diffstat (limited to 'c/src')
-rw-r--r--c/src/tests/psxtests/psx01/init.c79
-rw-r--r--c/src/tests/psxtests/psx01/system.h1
2 files changed, 63 insertions, 17 deletions
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 <pthread.h>
#include <assert.h>
#include <stdio.h>
+#include <unistd.h>
void *POSIX_Init(
void *argument