summaryrefslogtreecommitdiffstats
path: root/testsuites/psxtests/psxtime
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2007-12-13 14:46:37 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2007-12-13 14:46:37 +0000
commita023333d10e769614941c95ac6671c6c2c855fb4 (patch)
tree9a449c2c934297ea388c0883749e65d0c68fcb1e /testsuites/psxtests/psxtime
parent2007-12-13 Joel Sherrill <joel.sherrill@OARcorp.com> (diff)
downloadrtems-a023333d10e769614941c95ac6671c6c2c855fb4.tar.bz2
2007-12-13 Joel Sherrill <joel.sherrill@OARcorp.com>
* psxtime/test.c: Add tests for adjtime().
Diffstat (limited to 'testsuites/psxtests/psxtime')
-rw-r--r--testsuites/psxtests/psxtime/test.c60
1 files changed, 60 insertions, 0 deletions
diff --git a/testsuites/psxtests/psxtime/test.c b/testsuites/psxtests/psxtime/test.c
index 6fa484cd58..629a102fc3 100644
--- a/testsuites/psxtests/psxtime/test.c
+++ b/testsuites/psxtests/psxtime/test.c
@@ -86,6 +86,60 @@ void check_a_tod(
} while( i < 6 );
}
+void test_adjtime()
+{
+ int sc;
+ rtems_status_code status;
+ struct timeval delta;
+ struct timeval olddelta;
+ rtems_time_of_day *the_tod;
+
+ the_tod = &Dates[0];
+
+ print_time( "rtems_clock_set ", the_tod, "\n" );
+ status = rtems_clock_set( the_tod );
+ assert( !status );
+
+ delta.tv_sec = 0;
+ delta.tv_usec = 0;
+ olddelta.tv_sec = 0;
+ olddelta.tv_usec = 0;
+
+ puts( "adjtime - NULL delta - EINVAL" );
+ sc = adjtime( NULL, &olddelta );
+ assert( sc == -1 );
+ assert( errno == EINVAL );
+
+ puts( "adjtime - delta out of range - EINVAL" );
+ delta.tv_usec = 1000000000; /* 100 seconds worth */
+ sc = adjtime( &delta, &olddelta );
+ assert( sc == -1 );
+ assert( errno == EINVAL );
+
+ puts( "adjtime - delta too small - do nothing" );
+ delta.tv_sec = 0;
+ delta.tv_usec = 1;
+ sc = adjtime( &delta, &olddelta );
+ assert( sc == 0 );
+
+ puts( "adjtime - delta too small - do nothing, olddelta=NULL" );
+ sc = adjtime( &delta, NULL );
+ assert( sc == 0 );
+
+ puts( "adjtime - delta of one second forward" );
+ delta.tv_sec = 1;
+ delta.tv_usec = 0;
+ sc = adjtime( &delta, &olddelta );
+ assert( sc == 0 );
+
+ puts( "adjtime - delta of almost two seconds forward" );
+ delta.tv_sec = 1;
+ delta.tv_usec = 1000000 - 1;
+ sc = adjtime( &delta, &olddelta );
+ assert( sc == 0 );
+
+}
+
/*
* main entry point to the test
*/
@@ -103,6 +157,12 @@ int main(
puts( "\n\n*** POSIX TIME OF DAY TEST ***" );
+ test_adjtime();
+
+ /*
+ * Now test a number of dates
+ */
+
i = 0;
while ( i < NUMBER_OF_DATES ) {
check_a_tod( &Dates[i] );