#include #include #include #include "epicsTime.h" #include "epicsThread.h" #include "errlog.h" extern "C" { int epicsTimeTest (void); } epicsTime useSomeCPU; void testStringConversion() { char buf[64]; epicsTime uninit; const char * pFormat = "%a %b %d %Y %H:%M:%S.%f"; uninit.strftime ( buf, sizeof ( buf ), pFormat ); printf ("Uninitialized using \"%s\" %s\n", pFormat, buf ); epicsTime current = epicsTime::getCurrent(); pFormat = "%a %b %d %Y %H:%M:%S.%f"; current.strftime ( buf, sizeof ( buf ), pFormat ); printf ("using \"%s\" %s\n", pFormat, buf ); pFormat = "%a %b %d %Y %H:%M:%S.%4f"; current.strftime ( buf, sizeof ( buf ), pFormat ); printf ("using \"%s\" %s\n", pFormat, buf ); pFormat = "%a %b %d %Y %H:%M:%S.%05f"; current.strftime ( buf, sizeof ( buf ), pFormat ); printf ("using \"%s\" %s\n", pFormat, buf ); } int epicsTimeTest (void) { unsigned i, errors, sum_errors=0, sum_errloops=0; const epicsTime begin = epicsTime::getCurrent(); const unsigned wasteTime = 100000u; const int nTimes = 100; epicsTimeStamp stamp; struct timespec ts; struct tm tmAnsi; tm_nano_sec ansiDate; unsigned long nanoSec; printf ("epicsTime Test (%3d loops)\n========================\n\n", nTimes); for (int iTimes=0; iTimes < nTimes; ++iTimes) { for (i=0; i=end)) { printf ("#%3d: Failed copy>=end by %12.9f\n", iTimes, (end-copy)); errors += 1; } if (!(end>begin)) { printf ("#%3d: Failed end>begin by %12.9f\n", iTimes, (begin-end)); errors += 1; } if (!(end>=begin)) { printf ("#%3d: Failed end>=begin by %12.9f\n", iTimes, (begin-end)); errors += 1; } if (!(begin