From: Jim Meyering Date: Sat, 13 Aug 2005 14:07:18 +0000 (+0000) Subject: With todays additions, the generated shell script, X-Git-Tag: CPPI-1_12~171 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=bb05ee39b8fd4c859a89b519a9f58e14486d21bf;p=thirdparty%2Fcoreutils.git With todays additions, the generated shell script, tests/date/date-tests had becoming far too large (over 350KB), so use the superior-but-perl-requiring framework instead. * tests/date/Test.pm: Move new tests from here... * tests/misc/date: ...to this new file. --- diff --git a/tests/date/Test.pm b/tests/date/Test.pm index 989bd27ee4..b01d6e41bd 100644 --- a/tests/date/Test.pm +++ b/tests/date/Test.pm @@ -158,25 +158,9 @@ sub test_vector "--iso=ns -d'1970-01-01 00:00:00.1234567 UTC +961062237.987654321 sec'", {}, '2000-06-15T09:43:58,111111021+0000', 0], - ['empty-fmt', '+', {}, '', 0], - - # Since coreutils/lib/getdate.y revision 1.96 (post-coreutils-5.3.0), - # a command like the following would mistakenly exit nonzero with an - # `invalid date ...' diagnostic, but only when run in a time zone for - # which that 24-hour range spans a daylight savings time transition. - # Unfortunately (for ease of testing), if you set TZ at all, this - # failure is not triggered, hence the cross-dst env setting below. - ['cross-dst', "--date '2005-03-27 +1 day' +%Y", {}, '2005', 0], - - # FIXME: add a lot more... + # FIXME: add new date-related tests in ../misc/date. ); - # Repeat the cross-dst test, using Jan 1, 2005 and every interval from 1..364. - foreach my $i (1..364) - { - push @tvec, ["cross-dst$i", "-d '2005-01-01 +$i day' +%Y", {}, '2005', 0]; - } - my @tv; my $t; foreach $t (@tvec) @@ -201,7 +185,6 @@ sub test_vector $Test::env{'rfc822-1'} = ['LC_ALL=de_DE TZ=UTC0']; $Test::env{'relative-2'} = ['TZ=UTC+1']; - $Test::env{'cross-dst'} = ['no_TZ=1']; return @tv; } diff --git a/tests/misc/date b/tests/misc/date new file mode 100755 index 0000000000..767c902f42 --- /dev/null +++ b/tests/misc/date @@ -0,0 +1,66 @@ +#!/bin/sh + +: ${PERL=perl} +: ${srcdir=.} + +$PERL -e 1 > /dev/null 2>&1 || { + echo 1>&2 "$0: configure didn't find a usable version of Perl," \ + "so can't run this test" + exit 77 +} + +exec $PERL -w -I$srcdir/.. -MCoreutils -- - <<\EOF +require 5.003; +use strict; + +(my $ME = $0) =~ s|.*/||; + +# Turn off localisation of executable's ouput. +@ENV{qw(LANGUAGE LANG LC_ALL)} = ('C') x 3; + +# Export TZ=UTC0 so that zone-dependent strings match. +$ENV{TZ} = 'UTC0'; + +my @Tests = + ( + # Since coreutils/lib/getdate.y revision 1.96 (post-coreutils-5.3.0), + # a command like the following would mistakenly exit nonzero with an + # `invalid date ...' diagnostic, but when run in a time zone for + # which daylight savings time is in effect for the starting date. + # Unfortunately (for ease of testing), if you set TZ at all, this + # failure is not triggered, hence the removal of TZ from the environment. + ['cross-dst', "-d'2005-03-27 +1 day'", '+%Y', {OUT=>'2005'}, + {PRE => sub {delete $ENV{TZ}}}, + ], + + ['empty-fmt', '+', {OUT=>''}], + ); + +# Repeat the cross-dst test, using Jan 1, 2005 and every interval from 1..364. +foreach my $i (1..364) + { + push @Tests, ["cross-dst$i", + "-d'2005-01-01 +$i day'", '+%Y', {OUT=>'2005'}, + {PRE => sub {delete $ENV{TZ}}}, + ]; + } + +# Append "\n" to each OUT=> RHS. +foreach my $t (@Tests) + { + foreach my $e (@$t) + { + !ref $e || ref $e ne 'HASH' + and next; + defined $e->{OUT} + and $e->{OUT} .= "\n"; + } + } + +my $save_temps = $ENV{DEBUG}; +my $verbose = $ENV{VERBOSE}; + +my $prog = 'date'; +my $fail = run_tests ($ME, $prog, \@Tests, $save_temps, $verbose); +exit $fail; +EOF