Merged changes from 3.14 branch to revno 12630

This commit is contained in:
Andrew Johnson
2016-04-28 21:39:55 -05:00
4 changed files with 45 additions and 22 deletions

View File

@@ -19,7 +19,7 @@ extern "C" {
#ifdef isfinite
# undef finite
# define finite(x) isfinite(x)
# define finite(x) isfinite((double)(x))
#endif
epicsShareExtern float epicsNAN;

View File

@@ -98,6 +98,7 @@ TESTS += epicsTimeTest
TESTPROD_HOST += epicsTimeZoneTest
epicsTimeZoneTest_SRCS += epicsTimeZoneTest.c
rtemsTestHarness_SRCS += epicsTimeZoneTest.c
TESTS += epicsTimeZoneTest
TESTPROD_HOST += epicsThreadTest

View File

@@ -47,6 +47,9 @@ int epicsTimeTest(void);
int epicsTypesTest(void);
int epicsInlineTest(void);
int macDefExpandTest(void);
#ifdef __rtems__
int epicsTimeZoneTest(void);
#endif
int macLibTest(void);
int ringBytesTest(void);
int ringPointerTest(void);
@@ -97,6 +100,11 @@ void epicsRunLibComTests(void)
runTest(epicsTypesTest);
runTest(epicsInlineTest);
runTest(macDefExpandTest);
#ifdef __rtems__
runTest(epicsTimeZoneTest);
#endif
runTest(macLibTest);
runTest(ringBytesTest);
runTest(ringPointerTest);

View File

@@ -17,15 +17,9 @@
#endif
static
void setTZ(const char *base, const char *dst, int offset)
void setTZ(const char *tz)
{
char tz[20];
if(offset!=0 || dst)
sprintf(tz, "%s%d%s", base, offset/3600, dst);
else
sprintf(tz, "%s", base);
testDiag("TZ=\"%s\"", tz);
testDiag("TZ = \"%s\"", tz);
epicsEnvSet("TZ", tz);
tzset();
}
@@ -86,32 +80,52 @@ void test_gmtime(time_t T, int sec, int min, int hour,
MAIN(epicsTimeZoneTest)
{
testPlan(80);
testPlan(160);
/* 1445259616
* Mon Oct 19 09:00:16 2015 EDT
* Mon Oct 19 08:00:16 2015 CDT
* Mon Oct 19 03:00:16 2015 HST (no dst)
* Mon Oct 19 13:00:16 2015 UTC
*/
testDiag("POSIX 1445259616");
setTZ("EST", "EDT", 5*3600);
test_localtime(1445259616ul, 16, 0, 9, 19, 9, 2015, 1, 291, 1);
setTZ("CST", "CDT", 6*3600);
test_localtime(1445259616ul, 16, 0, 8, 19, 9, 2015, 1, 291, 1);
setTZ("UTC", NULL, 0);
setTZ("EST5EDT");
test_localtime(1445259616ul, 16, 0, 9, 19, 9, 2015, 1, 291, 1);
test_gmtime (1445259616ul, 16, 0, 13, 19, 9, 2015, 1, 291, 0);
setTZ("CST6CDT");
test_localtime(1445259616ul, 16, 0, 8, 19, 9, 2015, 1, 291, 1);
test_gmtime (1445259616ul, 16, 0, 13, 19, 9, 2015, 1, 291, 0);
#if defined(__rtems__)
setTZ("HST10HST10");
#else
setTZ("HST10");
#endif
test_localtime(1445259616ul, 16, 0, 3, 19, 9, 2015, 1, 291, 0);
test_gmtime (1445259616ul, 16, 0, 13, 19, 9, 2015, 1, 291, 0);
setTZ("UTC0");
test_localtime(1445259616ul, 16, 0, 13, 19, 9, 2015, 1, 291, 0);
test_gmtime(1445259616ul, 16, 0, 13, 19, 9, 2015, 1, 291, 0);
test_gmtime (1445259616ul, 16, 0, 13, 19, 9, 2015, 1, 291, 0);
/* 1421244931
* Wed Jan 14 09:15:31 2015 EST
* Wed Jan 14 08:15:31 2015 CST
* Wed Jan 14 04:15:31 2015 HST
* Wed Jan 14 14:15:31 2015 UTC
*/
testDiag("POSIX 1421244931");
setTZ("EST", "EDT", 5*3600);
test_localtime(1421244931ul, 31, 15, 9, 14, 0, 2015, 3, 13, 0);
setTZ("CST", "CDT", 6*3600);
test_localtime(1421244931ul, 31, 15, 8, 14, 0, 2015, 3, 13, 0);
setTZ("UTC", NULL, 0);
setTZ("EST5EDT");
test_localtime(1421244931ul, 31, 15, 9, 14, 0, 2015, 3, 13, 0);
test_gmtime (1421244931ul, 31, 15, 14, 14, 0, 2015, 3, 13, 0);
setTZ("CST6CDT");
test_localtime(1421244931ul, 31, 15, 8, 14, 0, 2015, 3, 13, 0);
test_gmtime (1421244931ul, 31, 15, 14, 14, 0, 2015, 3, 13, 0);
#if defined(__rtems__)
setTZ("HST10HST10");
#else
setTZ("HST10");
#endif
test_localtime(1421244931ul, 31, 15, 4, 14, 0, 2015, 3, 13, 0);
test_gmtime (1421244931ul, 31, 15, 14, 14, 0, 2015, 3, 13, 0);
setTZ("UTC0");
test_localtime(1421244931ul, 31, 15, 14, 14, 0, 2015, 3, 13, 0);
test_gmtime(1421244931ul, 31, 15, 14, 14, 0, 2015, 3, 13, 0);
test_gmtime (1421244931ul, 31, 15, 14, 14, 0, 2015, 3, 13, 0);
return testDone();
}