diff options
Diffstat (limited to 'tests/misc')
-rwxr-xr-x | tests/misc/date.pl | 48 |
1 files changed, 18 insertions, 30 deletions
diff --git a/tests/misc/date.pl b/tests/misc/date.pl index 9f09c6924..2d1925496 100755 --- a/tests/misc/date.pl +++ b/tests/misc/date.pl @@ -42,20 +42,6 @@ my $dy = '1998-01-19'; # next month my $fmt = "'+%Y-%m-%d %T'"; -# Determine a number of seconds that will provoke an invalid -# time diagnostic from date. If possible, use a number that -# is less than 2^64, yet so large that it would cause the resulting -# tm_year value to be too large for a 32-bit int. But some systems -# (Solaris 8) have a buggy localtime that mistakenly accepts such -# invalid times and give garbage in tm_year. Other systems might -# have an int type that is wider than 32. So if this localtime -# call succeeds, use 2^64 as the number of seconds. -my $n_seconds = 72057594037927935; -my @d = localtime ($n_seconds); -my $year = $d[5]; -defined $year - and $n_seconds = '18446744073709551616'; - my @Tests = ( # test-name, [option, option, ...] {OUT=>"expected-output"} @@ -255,22 +241,24 @@ my @Tests = ['neg-secs', '-d @-22 +%05s', {OUT=>"-0022"}], ['neg-secs2', '-d @-22 +%_5s', {OUT=>" -22"}], - # Before today's fix, date would print uninitialized data - # to standard output for an out-of-range date: - # $ date -d @$(echo 2^56-1|bc) 2> /dev/null | od -a -N3 - # 0000000 p 4 6 - # 0000003 - ['uninit-64', "-d \@$n_seconds", - {OUT=>''}, - # Use ERR_SUBST to get around fact that the diagnostic - # you get on a system with 32-bit time_t is not the same as - # the one you get for a system where it's 64 bits wide: - # - date: time 72057594037927935 is out of range - # + date: invalid date '@72057594037927935' - {ERR_SUBST => 's/.*//'}, - {ERR => "\n"}, - {EXIT => 1}, - ], + # FIXME: Ensure date doesn't print uninitialized data + # for an out-of-range date. This test is currently + # disabled as various systems have different limits + # for localtime(), and we can't use perl for example + # to determine those limits as it doesn't always call + # down to the system localtime() as it has configure + # time checks and settings itself for these limits. + #['uninit-64', "-d \@72057594037927935", + # {OUT=>''}, + # # Use ERR_SUBST to get around fact that the diagnostic + # # you get on a system with 32-bit time_t is not the same as + # # the one you get for a system where it's 64 bits wide: + # # - date: time 72057594037927935 is out of range + # # + date: invalid date '@72057594037927935' + # {ERR_SUBST => 's/.*//'}, + # {ERR => "\n"}, + # {EXIT => 1}, + #], ['fill-1', '-d 1999-12-08 +%_3d', {OUT=>' 8'}], ['fill-2', '-d 1999-12-08 +%03d', {OUT=>'008'}], |