diff options
author | Stefan Metzmacher <metze@samba.org> | 2007-04-15 20:57:48 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:19:21 -0500 |
commit | 29cbd75f22bcbb10d049910c3a72d911094ccb05 (patch) | |
tree | a152fef2dcf2dc50964a435e2c6811dad5db9477 /source/lib | |
parent | 057c1c04d09b48c713ebc0b334cabcefc02561e9 (diff) | |
download | samba-29cbd75f22bcbb10d049910c3a72d911094ccb05.tar.gz samba-29cbd75f22bcbb10d049910c3a72d911094ccb05.tar.xz samba-29cbd75f22bcbb10d049910c3a72d911094ccb05.zip |
r22224: merge from samba4:
make comparing of struct tm more verbose and portable
metze
Diffstat (limited to 'source/lib')
-rw-r--r-- | source/lib/replace/test/strptime.c | 30 |
1 files changed, 25 insertions, 5 deletions
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" |