From: Stefan Metzmacher Date: Sun, 15 Apr 2007 20:57:48 +0000 (+0000) Subject: r22224: merge from samba4: X-Git-Tag: samba-misc-tags/initial-v3-0-unstable~713 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=29cbd75f22bcbb10d049910c3a72d911094ccb05;p=thirdparty%2Fsamba.git r22224: merge from samba4: make comparing of struct tm more verbose and portable metze --- diff --git a/source/lib/replace/test/strptime.c b/source/lib/replace/test/strptime.c index 434b5d0933e..fade3ecc575 100644 --- a/source/lib/replace/test/strptime.c +++ b/source/lib/replace/test/strptime.c @@ -8,6 +8,10 @@ #define true 1 #define false 0 +#ifndef __STRING +#define __STRING(x) #x +#endif + /* make printf a no-op */ #define printf if(0) printf @@ -24,6 +28,9 @@ int libreplace_test_strptime(void) char *ret; struct tm t, t2; + memset(&t, 0, sizeof(t)); + memset(&t2, 0, sizeof(t2)); + printf("test: strptime\n"); ret = strptime(s, "%Y%m%d%H%M%S", &t); @@ -56,13 +63,26 @@ int libreplace_test_strptime(void) return false; } - if (memcmp(&t, &t2, sizeof(t)) == 0) { - printf("failure: strptime [\n" - "result differs if the format string has a 'Z' at the end\n" - "]\n"); - return false; +#define CMP_TM_ELEMENT(t1,t2,elem) \ + if (t1.elem != t2.elem) { \ + printf("failure: strptime [\n" \ + "result differs if the format string has a 'Z' at the end\n" \ + "element: %s %d != %d\n" \ + "]\n", \ + __STRING(elen), t1.elem, t2.elem); \ + return false; \ } + CMP_TM_ELEMENT(t,t2,tm_sec); + CMP_TM_ELEMENT(t,t2,tm_min); + CMP_TM_ELEMENT(t,t2,tm_hour); + CMP_TM_ELEMENT(t,t2,tm_mday); + CMP_TM_ELEMENT(t,t2,tm_mon); + CMP_TM_ELEMENT(t,t2,tm_year); + CMP_TM_ELEMENT(t,t2,tm_wday); + CMP_TM_ELEMENT(t,t2,tm_yday); + CMP_TM_ELEMENT(t,t2,tm_isdst); + if (t.tm_sec != 46) { printf("failure: strptime [\n" "tm_sec: expected: 46, got: %d\n"