Mercurial > hg > octave-kai > gnulib-hg
changeset 16219:37f2db4c9412
test-posixtm: don't assume signed integer wraparound
* tests/test-posixtm.c (main): Don't assume wraparound semantics
after signed integer overflow. Inspired by (though it may not
fix) Bruno Haible's bug report in
<http://lists.gnu.org/archive/html/bug-gnulib/2012-01/msg00066.html>.
author | Paul Eggert <eggert@cs.ucla.edu> |
---|---|
date | Wed, 04 Jan 2012 16:04:38 -0800 |
parents | 80c03bb8a948 |
children | 8fe91c84e635 |
files | ChangeLog tests/test-posixtm.c |
diffstat | 2 files changed, 11 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2012-01-04 Paul Eggert <eggert@cs.ucla.edu> + test-posixtm: don't assume signed integer wraparound + * tests/test-posixtm.c (main): Don't assume wraparound semantics + after signed integer overflow. Inspired by (though it may not + fix) Bruno Haible's bug report in + <http://lists.gnu.org/archive/html/bug-gnulib/2012-01/msg00066.html>. + Spell out "Windows 9x" and "Windows XP". * lib/poll.c, lib/select.c: In comments, replace "Win9x" with "Windows 9x" and "WinXP" with "Windows XP".
--- a/tests/test-posixtm.c +++ b/tests/test-posixtm.c @@ -118,7 +118,7 @@ for (i = 0; T[i].in; i++) { time_t t_out; - time_t t_exp = T[i].t_expected; + time_t t_exp; bool ok; /* Some tests assume that time_t is signed. @@ -130,13 +130,16 @@ continue; } - if (T[i].valid && t_exp != T[i].t_expected) + if (! (TYPE_MINIMUM (time_t) <= T[i].t_expected + && T[i].t_expected <= TYPE_MAXIMUM (time_t))) { printf ("skipping %s: result is out of range of your time_t\n", T[i].in); continue; } + t_exp = T[i].t_expected; + /* If an input string does not specify the year number, determine the expected output by calling posixtime with an otherwise equivalent string that starts with the current year. */