On Tue, Apr 01, 2014 at 12:07:22PM -0700, Junio C Hamano wrote: > Jeff King <peff@xxxxxxxx> writes: > > > On Fri, Mar 28, 2014 at 12:30:02PM -0700, Junio C Hamano wrote: > > > >> Let's just deal with a simple known cases (like FreeBSD) in the real > >> code that everybody exercises at runtime, and have the new test only > >> check we do not segfault on a value we used to segfault upon seeing. > > > > OK. Here it is, with the other option as an "alt" patch for reference. > > > > [1/2]: date: recognize bogus FreeBSD gmtime output > > [2/2]: t4212: loosen far-in-future test for AIX > > [2alt/2]: work around unreliable gmtime errors on AIX > > > > -Peff > > Thanks. 2alt does not look too bad, but on the other hand, we are > replacing a value that can produce the right result on correctly > implemented gmtime with a completely bogus value only because we > know there exists one broken implementation---which does not sound a > very good trade-off, given that we would get a result that does not > correspond to the input anyway with or without the change on the > broken implementation. One other option is to push _all_ callers through a git_gmtime() wrapper, and then use Makefile knobs to turn on specific quirks, like: struct tm *git_gmtime_r(const time_t *timep, struct tm *result) { #ifdef GMTIME_OVERFLOWS_32BIT if (*timep > 999999999999999) return NULL; #endif ret = gmtime_r(timep, result); #ifdef GMTIME_ERROR_BLANK if (ret && !ret->tm_mday) return NULL; #endif return ret; } and then each platform can turn the knobs as appropriate. -Peff -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html