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 | 0ca5717a9a90ced983a60d1e7b27882fbbaf388b (patch) | |
tree | ca9a9955b3f2d2c74ab0ca80b91782a029757b36 | |
parent | 2f1aafa2a7e36298cc1e0e593b30fac1ab278596 (diff) | |
download | samba-0ca5717a9a90ced983a60d1e7b27882fbbaf388b.tar.gz samba-0ca5717a9a90ced983a60d1e7b27882fbbaf388b.tar.bz2 samba-0ca5717a9a90ced983a60d1e7b27882fbbaf388b.zip |
r22224: merge from samba4:
make comparing of struct tm more verbose and portable
metze
(This used to be commit 29cbd75f22bcbb10d049910c3a72d911094ccb05)
-rw-r--r-- | source3/lib/replace/test/strptime.c | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/source3/lib/replace/test/strptime.c b/source3/lib/replace/test/strptime.c index 434b5d0933..fade3ecc57 100644 --- a/source3/lib/replace/test/strptime.c +++ b/source3/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" |