diff options
author | Pádraig Brady <P@draigBrady.com> | 2016-01-15 15:56:30 +0000 |
---|---|---|
committer | Pádraig Brady <P@draigBrady.com> | 2016-01-15 16:00:27 +0000 |
commit | 3aa84d02ddd22dc9430275f544cb435d64c5e385 (patch) | |
tree | ff586de931482126f1464be80f0a809eab137c09 /tests | |
parent | 7648870f391f7565b8a9b0c98d10ff9a0f32ecb7 (diff) | |
download | coreutils-3aa84d02ddd22dc9430275f544cb435d64c5e385.tar.xz |
tests: remove a non portable localtime test
* tests/misc/date.pl: This test was dependent on perl
unconditionally calling the system localtime() as date(1) does.
However perl has its own configure checks in place to avoid buggy
localtime implementations. Therefore comment out this test
as a FIXME for now. This test was seen to fail on FreeBSD 10
where localtime() returns nonsense values instead of failing
for arguments >= 2^56.
Diffstat (limited to 'tests')
-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'}], |