NTP timestamp test

This commit is contained in:
Jeff Hill
2002-09-11 20:48:24 +00:00
parent 4c04096ce9
commit 308055d41e

View File

@@ -10,6 +10,7 @@
#include <stdio.h>
#include <time.h>
#include <math.h>
#include <limits.h>
#include "epicsTime.h"
#include "epicsThread.h"
@@ -19,6 +20,11 @@ extern "C" {
int epicsTimeTest (void);
}
struct l_fp { /* NTP time stamp */
epicsUInt32 l_ui; /* sec past NTP epoch */
epicsUInt32 l_uf; /* fractional seconds */
};
epicsTime useSomeCPU;
void testStringConversion()
@@ -59,6 +65,17 @@ int epicsTimeTest (void)
gm_tm_nano_sec ansiDateGMT;
unsigned long nanoSec;
{
epicsTime tsi = epicsTime::getCurrent ();
l_fp ntp = tsi;
epicsTime tsf = ntp;
const double diff = fabs ( tsf - tsi );
// the difference in the precision of the two time formats
static const double precisionNTP = 1.0 / ( 1.0 + UINT_MAX );
static const double precisionEPICS = 1.0 / epicsTime::nSecPerSec;
assert ( diff <= precisionEPICS + precisionNTP );
}
printf ("epicsTime Test (%3d loops)\n========================\n\n", nTimes);
for (int iTimes=0; iTimes < nTimes; ++iTimes) {