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;