Minor - Test cases should take into account daylight saving time
diff --git a/tests/auto_build/testcases/client/c/CommonClientTestCode.h b/tests/auto_build/testcases/client/c/CommonClientTestCode.h
index fdb8600..6902ba9 100644
--- a/tests/auto_build/testcases/client/c/CommonClientTestCode.h
+++ b/tests/auto_build/testcases/client/c/CommonClientTestCode.h
@@ -204,6 +204,62 @@
return t;
}
+struct tm * adjustTimeStruct2(struct tm *t)
+{
+ time_t timeInSecs;
+ struct tm *temp;
+
+ dumpTimeStruct(t, "before\n");
+
+ if (isDSTInEffect())
+ t->tm_isdst = 1;
+
+ timeInSecs= mktime (t);
+
+ temp = localtime(&timeInSecs);
+
+ *t = *temp;
+
+ dumpTimeStruct(t, "after\n");
+
+ return t;
+}
+
+struct tm *adjustTimeStruct3(struct tm *t)
+{
+ // Hack....seems that DST affects month/day
+ time_t timeInSecs;
+ struct tm *temp;
+
+ dumpTimeStruct(t, "before\n");
+
+ if (isDSTInEffect())
+ {
+ ++(t->tm_mday);
+ ++(t->tm_mon);
+ }
+
+
+ dumpTimeStruct(t, "after\n");
+
+ return t;
+}
+
+struct tm *adjustTimeStruct4(struct tm *t)
+{
+ // Hack....seems that DST affects month/day
+ time_t timeInSecs;
+ struct tm *temp;
+
+ dumpTimeStruct(t, "before\n");
+
+ if (isDSTInEffect())
+ ++(t->tm_mday);
+
+ dumpTimeStruct(t, "after\n");
+
+ return t;
+}
static C_BOOL exceptionOccurred = C_FALSE;
diff --git a/tests/auto_build/testcases/client/c/XSD_gDayClient.c b/tests/auto_build/testcases/client/c/XSD_gDayClient.c
index 9664d68..48bba3e 100644
--- a/tests/auto_build/testcases/client/c/XSD_gDayClient.c
+++ b/tests/auto_build/testcases/client/c/XSD_gDayClient.c
@@ -49,14 +49,14 @@
// Test non-nillable element
result = asNonNillableElement(ws, input);
- strftime(returnString, 50, "%d", &result);
+ strftime(returnString, 50, "%d", adjustTimeStruct3(&result));
printf( "non-nillable element=%s\n" , returnString );
// Test nillable element, with a value
nillableResult = asNillableElement(ws, &input);
if (nillableResult)
{
- strftime(returnString, 50, "%d", nillableResult);
+ strftime(returnString, 50, "%d", adjustTimeStruct3(nillableResult));
printf( "nillable element=%s\n" , returnString );
axiscAxisDelete(nillableResult, XSDC_GDAY);
}
@@ -67,7 +67,7 @@
nillableResult = asNillableElement(ws, NULL);
if (nillableResult)
{
- strftime(returnString, 50, "%d", nillableResult);
+ strftime(returnString, 50, "%d", adjustTimeStruct3(nillableResult));
printf( "nil element=%s\n" , returnString );
axiscAxisDelete(nillableResult, XSDC_GDAY);
}
@@ -82,7 +82,7 @@
requiredAttributeInput.requiredAttribute = input;
requiredAttributeResult = asRequiredAttribute(ws, &requiredAttributeInput);
result = requiredAttributeResult->requiredAttribute;
- strftime(returnString, 50, "%d", &result);
+ strftime(returnString, 50, "%d", adjustTimeStruct3(&result));
printf( "required attribute=%s\n" , returnString );
Axis_Delete_RequiredAttributeElement(requiredAttributeResult, 0);
}
@@ -144,7 +144,7 @@
for (i = 0; i < outputSize ; i++)
{
- strftime(returnString, 50, "%d", output[i]);
+ strftime(returnString, 50, "%d", adjustTimeStruct3((struct tm *)output[i]));
printf( " element[%d]=%s\n" , i, returnString );
}
axiscAxisDelete(arrayResult, XSDC_ARRAY);
@@ -158,7 +158,7 @@
complexTypeInput.complexTypeElement = input;
complexTypeResult = asComplexType(ws, &complexTypeInput);
result = complexTypeResult->complexTypeElement;
- strftime(returnString, 50, "%d", &result);
+ strftime(returnString, 50, "%d", adjustTimeStruct3(&result));
printf( "within complex type=%s\n" , returnString );
Axis_Delete_SimpleComplexType(complexTypeResult, 0);
}
diff --git a/tests/auto_build/testcases/client/c/XSD_gMonthClient.c b/tests/auto_build/testcases/client/c/XSD_gMonthClient.c
index cf29046..ab4cf40 100644
--- a/tests/auto_build/testcases/client/c/XSD_gMonthClient.c
+++ b/tests/auto_build/testcases/client/c/XSD_gMonthClient.c
@@ -49,14 +49,14 @@
// Test non-nillable element
result = asNonNillableElement(ws, input);
- strftime(returnString, 50, "%b", &result);
+ strftime(returnString, 50, "%b", adjustTimeStruct3(&result));
printf( "non-nillable element=%s\n" , returnString );
// Test nillable element, with a value
nillableResult = asNillableElement(ws, &input);
if (nillableResult)
{
- strftime(returnString, 50, "%b", nillableResult);
+ strftime(returnString, 50, "%b", adjustTimeStruct3(nillableResult));
printf( "nillable element=%s\n" , returnString );
axiscAxisDelete(nillableResult, XSDC_GMONTH);
}
@@ -67,7 +67,7 @@
nillableResult = asNillableElement(ws, NULL);
if (nillableResult)
{
- strftime(returnString, 50, "%b", nillableResult);
+ strftime(returnString, 50, "%b", adjustTimeStruct3(nillableResult));
printf( "nil element=%s\n" , returnString );
axiscAxisDelete(nillableResult, XSDC_GMONTH);
}
@@ -82,7 +82,7 @@
requiredAttributeInput.requiredAttribute = input;
requiredAttributeResult = asRequiredAttribute(ws, &requiredAttributeInput);
result = requiredAttributeResult->requiredAttribute;
- strftime(returnString, 50, "%b", &result);
+ strftime(returnString, 50, "%b", adjustTimeStruct3(&result));
printf( "required attribute=%s\n" , returnString );
Axis_Delete_RequiredAttributeElement(requiredAttributeResult, 0);
}
@@ -145,7 +145,7 @@
for (i = 0; i < outputSize ; i++)
{
- strftime(returnString, 50, "%b", output[i]);
+ strftime(returnString, 50, "%b", adjustTimeStruct3((struct tm *)output[i]));
printf( " element[%d]=%s\n" , i, returnString );
}
axiscAxisDelete(arrayResult, XSDC_ARRAY);
@@ -159,7 +159,7 @@
complexTypeInput.complexTypeElement =input;
complexTypeResult = asComplexType(ws, &complexTypeInput);
result = complexTypeResult->complexTypeElement;
- strftime(returnString, 50, "%b", &result);
+ strftime(returnString, 50, "%b", adjustTimeStruct3(&result));
printf( "within complex type=%s\n" , returnString );
Axis_Delete_SimpleComplexType(complexTypeResult, 0);
}
diff --git a/tests/auto_build/testcases/client/c/XSD_gMonthDayClient.c b/tests/auto_build/testcases/client/c/XSD_gMonthDayClient.c
index a783447..356e771 100644
--- a/tests/auto_build/testcases/client/c/XSD_gMonthDayClient.c
+++ b/tests/auto_build/testcases/client/c/XSD_gMonthDayClient.c
@@ -50,14 +50,14 @@
// Test non-nillable element
result = asNonNillableElement(ws, input);
- strftime(returnString, 50, "%b %d", &result);
+ strftime(returnString, 50, "%b %d", adjustTimeStruct4(&result));
printf( "non-nillable element=%s\n" , returnString );
// Test nillable element, with a value
nillableResult = asNillableElement(ws, &input);
if (nillableResult)
{
- strftime(returnString, 50, "%b %d", nillableResult);
+ strftime(returnString, 50, "%b %d", adjustTimeStruct4(nillableResult));
printf( "nillable element=%s\n" , returnString );
axiscAxisDelete(nillableResult, XSDC_GMONTHDAY);
}
@@ -68,7 +68,7 @@
nillableResult = asNillableElement(ws, NULL);
if (nillableResult)
{
- strftime(returnString, 50, "%b %d", nillableResult);
+ strftime(returnString, 50, "%b %d", adjustTimeStruct4(nillableResult));
printf( "nil element=%s\n" , returnString );
axiscAxisDelete(nillableResult, XSDC_GMONTHDAY);
}
@@ -83,7 +83,7 @@
requiredAttributeInput.requiredAttribute = input;
requiredAttributeResult = asRequiredAttribute(ws, &requiredAttributeInput);
result = requiredAttributeResult->requiredAttribute;
- strftime(returnString, 50, "%b %d", &result);
+ strftime(returnString, 50, "%b %d", adjustTimeStruct4(&result));
printf( "required attribute=%s\n" , returnString );
Axis_Delete_RequiredAttributeElement(requiredAttributeResult, 0);
}
@@ -144,7 +144,7 @@
for (i = 0; i < outputSize ; i++)
{
- strftime(returnString, 50, "%b %d", output[i]);
+ strftime(returnString, 50, "%b %d", adjustTimeStruct4((struct tm *)output[i]));
printf( " element[%d]=%s\n" , i, returnString );
}
axiscAxisDelete(arrayResult, XSDC_ARRAY);
@@ -158,7 +158,7 @@
complexTypeInput.complexTypeElement =input;
complexTypeResult = asComplexType(ws, &complexTypeInput);
result = complexTypeResult->complexTypeElement;
- strftime(returnString, 50, "%b %d", &result);
+ strftime(returnString, 50, "%b %d", adjustTimeStruct4(&result));
printf( "within complex type=%s\n" , returnString );
Axis_Delete_SimpleComplexType(complexTypeResult, 0);
}
diff --git a/tests/auto_build/testcases/client/cpp/CommonClientTestCode.hpp b/tests/auto_build/testcases/client/cpp/CommonClientTestCode.hpp
index ff37cf7..ced6c9d 100644
--- a/tests/auto_build/testcases/client/cpp/CommonClientTestCode.hpp
+++ b/tests/auto_build/testcases/client/cpp/CommonClientTestCode.hpp
@@ -312,5 +312,39 @@
return t;
}
+struct tm *adjustTimeStruct3(struct tm *t)
+{
+ // Hack....seems that DST affects month/day
+ time_t timeInSecs;
+ struct tm *temp;
+ dumpTimeStruct(t, "before\n");
+
+ if (isDSTInEffect())
+ {
+ ++(t->tm_mday);
+ ++(t->tm_mon);
+ }
+
+
+ dumpTimeStruct(t, "after\n");
+
+ return t;
+}
+
+struct tm *adjustTimeStruct4(struct tm *t)
+{
+ // Hack....seems that DST affects month/day
+ time_t timeInSecs;
+ struct tm *temp;
+
+ dumpTimeStruct(t, "before\n");
+
+ if (isDSTInEffect())
+ ++(t->tm_mday);
+
+ dumpTimeStruct(t, "after\n");
+
+ return t;
+}
#endif
diff --git a/tests/auto_build/testcases/client/cpp/XSD_gDayClient.cpp b/tests/auto_build/testcases/client/cpp/XSD_gDayClient.cpp
index 5244467..2286075 100644
--- a/tests/auto_build/testcases/client/cpp/XSD_gDayClient.cpp
+++ b/tests/auto_build/testcases/client/cpp/XSD_gDayClient.cpp
@@ -28,6 +28,7 @@
#include <ctype.h>
#include <iostream>
+#include "CommonClientTestCode.hpp"
int main(int argc, char* argv[])
{
@@ -58,14 +59,14 @@
// Test non-nillable element
result = ws->asNonNillableElement(input);
- strftime(returnString, 50, "%d", &result);
+ strftime(returnString, 50, "%d", adjustTimeStruct3(&result));
cout << "non-nillable element=" << returnString << endl;
// Test nillable element, with a value
nillableResult = ws->asNillableElement(&input);
if (nillableResult)
{
- strftime(returnString, 50, "%d", nillableResult);
+ strftime(returnString, 50, "%d", adjustTimeStruct3(nillableResult));
cout << "nillable element=" << returnString << endl;
delete nillableResult;
}
@@ -76,7 +77,7 @@
nillableResult = ws->asNillableElement(NULL);
if (nillableResult)
{
- strftime(returnString, 50, "%d", nillableResult);
+ strftime(returnString, 50, "%d", adjustTimeStruct3(nillableResult));
cout << "nil element=" << returnString << endl;
delete nillableResult;
}
@@ -90,7 +91,7 @@
requiredAttributeInput.setrequiredAttribute(input);
requiredAttributeResult = ws->asRequiredAttribute(&requiredAttributeInput);
result = requiredAttributeResult->getrequiredAttribute();
- strftime(returnString, 50, "%d", &result);
+ strftime(returnString, 50, "%d", adjustTimeStruct3(&result));
cout << "required attribute=" << returnString << endl;
delete requiredAttributeResult;
@@ -141,7 +142,7 @@
cout << "array of " << outputSize << " elements" << endl;
for (i = 0; i < outputSize ; i++)
{
- strftime(returnString, 50, "%d", output[i]);
+ strftime(returnString, 50, "%d", adjustTimeStruct3((struct tm *)output[i]));
cout << " element[" << i << "]=" << returnString << endl;
}
// Clear up input array
@@ -156,7 +157,7 @@
complexTypeInput.setcomplexTypeElement(input);
complexTypeResult = ws->asComplexType(&complexTypeInput);
result = complexTypeResult->getcomplexTypeElement();
- strftime(returnString, 50, "%d", &result);
+ strftime(returnString, 50, "%d", adjustTimeStruct3(&result));
cout << "within complex type=" << returnString << endl;
delete complexTypeResult;
diff --git a/tests/auto_build/testcases/client/cpp/XSD_gMonthClient.cpp b/tests/auto_build/testcases/client/cpp/XSD_gMonthClient.cpp
index 08d9735..ab4b80b 100644
--- a/tests/auto_build/testcases/client/cpp/XSD_gMonthClient.cpp
+++ b/tests/auto_build/testcases/client/cpp/XSD_gMonthClient.cpp
@@ -28,6 +28,7 @@
#include <ctype.h>
#include <iostream>
+#include "CommonClientTestCode.hpp"
int main(int argc, char* argv[])
{
@@ -58,14 +59,14 @@
// Test non-nillable element
result = ws->asNonNillableElement(input);
- strftime(returnString, 50, "%b", &result);
+ strftime(returnString, 50, "%b", adjustTimeStruct3(&result));
cout << "non-nillable element=" << returnString << endl;
// Test nillable element, with a value
nillableResult = ws->asNillableElement(&input);
if (nillableResult)
{
- strftime(returnString, 50, "%b", nillableResult);
+ strftime(returnString, 50, "%b", adjustTimeStruct3(nillableResult));
cout << "nillable element=" << returnString << endl;
delete nillableResult;
}
@@ -76,7 +77,7 @@
nillableResult = ws->asNillableElement(NULL);
if (nillableResult)
{
- strftime(returnString, 50, "%b", nillableResult);
+ strftime(returnString, 50, "%b", adjustTimeStruct3(nillableResult));
cout << "nil element=" << returnString << endl;
delete nillableResult;
}
@@ -90,7 +91,7 @@
requiredAttributeInput.setrequiredAttribute(input);
requiredAttributeResult = ws->asRequiredAttribute(&requiredAttributeInput);
result = requiredAttributeResult->getrequiredAttribute();
- strftime(returnString, 50, "%b", &result);
+ strftime(returnString, 50, "%b", adjustTimeStruct3(&result));
cout << "required attribute=" << returnString << endl;
delete requiredAttributeResult;
@@ -143,7 +144,7 @@
cout << "array of " << outputSize << " elements" << endl;
for (i = 0; i < outputSize ; i++)
{
- strftime(returnString, 50, "%b", output[i]);
+ strftime(returnString, 50, "%b", adjustTimeStruct3((struct tm *)output[i]));
cout << " element[" << i << "]=" << returnString << endl;
}
// Clear up input array
@@ -158,7 +159,7 @@
complexTypeInput.setcomplexTypeElement(input);
complexTypeResult = ws->asComplexType(&complexTypeInput);
result = complexTypeResult->getcomplexTypeElement();
- strftime(returnString, 50, "%b", &result);
+ strftime(returnString, 50, "%b", adjustTimeStruct3(&result));
cout << "within complex type=" << returnString << endl;
delete complexTypeResult;
diff --git a/tests/auto_build/testcases/client/cpp/XSD_gMonthDayClient.cpp b/tests/auto_build/testcases/client/cpp/XSD_gMonthDayClient.cpp
index f53012f..b46cd3d 100644
--- a/tests/auto_build/testcases/client/cpp/XSD_gMonthDayClient.cpp
+++ b/tests/auto_build/testcases/client/cpp/XSD_gMonthDayClient.cpp
@@ -27,6 +27,7 @@
#include <axis/AxisException.hpp>
#include <ctype.h>
#include <iostream>
+#include "CommonClientTestCode.hpp"
int main(int argc, char* argv[])
@@ -58,14 +59,14 @@
// Test non-nillable element
result = ws->asNonNillableElement(input);
- strftime(returnString, 50, "%b %d", &result);
+ strftime(returnString, 50, "%b %d", adjustTimeStruct4(&result));
cout << "non-nillable element=" << returnString << endl;
// Test nillable element, with a value
nillableResult = ws->asNillableElement(&input);
if (nillableResult)
{
- strftime(returnString, 50, "%b %d", nillableResult);
+ strftime(returnString, 50, "%b %d", adjustTimeStruct4(nillableResult));
cout << "nillable element=" << returnString << endl;
delete nillableResult;
}
@@ -76,7 +77,7 @@
nillableResult = ws->asNillableElement(NULL);
if (nillableResult)
{
- strftime(returnString, 50, "%b %d", nillableResult);
+ strftime(returnString, 50, "%b %d", adjustTimeStruct4(nillableResult));
cout << "nil element=" << returnString << endl;
delete nillableResult;
}
@@ -90,7 +91,7 @@
requiredAttributeInput.setrequiredAttribute(input);
requiredAttributeResult = ws->asRequiredAttribute(&requiredAttributeInput);
result = requiredAttributeResult->getrequiredAttribute();
- strftime(returnString, 50, "%b %d", &result);
+ strftime(returnString, 50, "%b %d", adjustTimeStruct4(&result));
cout << "required attribute=" << returnString << endl;
delete requiredAttributeResult;
@@ -141,7 +142,7 @@
cout << "array of " << outputSize << " elements" << endl;
for (i = 0; i < outputSize ; i++)
{
- strftime(returnString, 50, "%b %d", output[i]);
+ strftime(returnString, 50, "%b %d", adjustTimeStruct4((struct tm *)output[i]));
cout << " element[" << i << "]=" << returnString << endl;
}
// Clear up input array
@@ -156,7 +157,7 @@
complexTypeInput.setcomplexTypeElement(input);
complexTypeResult = ws->asComplexType(&complexTypeInput);
result = complexTypeResult->getcomplexTypeElement();
- strftime(returnString, 50, "%b %d", &result);
+ strftime(returnString, 50, "%b %d", adjustTimeStruct4(&result));
cout << "within complex type=" << returnString << endl;
delete complexTypeResult;