From b1d08ed0e26f0a8c81910c5950275d28ce06bd9c Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sun, 12 Nov 2017 00:20:04 -0800 Subject: [PATCH] =?UTF-8?q?tests:=20don=E2=80=99t=20be=20so=20strict=20abo?= =?UTF-8?q?ut=20timestamps?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * tests/timestamp: We’ve had many false alarms about timestamps that are not gzip problems, but instead are problems with ‘touch’. Attempt to work around them by not trusting ‘touch’ so much. Problems and parts of solutions proposed by Bruno Haible. --- tests/timestamp | 49 ++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 38 insertions(+), 11 deletions(-) diff --git a/tests/timestamp b/tests/timestamp index 6e4e1fc..8ef6901 100755 --- a/tests/timestamp +++ b/tests/timestamp @@ -21,31 +21,58 @@ TZ=UTC0 export TZ +oldIFS=$IFS # On platforms supporting timestamps outside gzip's range, # test that gzip warns when converting them to gzip format. -for time in 190101010000 196912312359.59 197001010000 210602070628.16; do +for time_date in \ + '190101010000~Jan 1 1901' \ + '196912312359.59~Dec 31 1969' \ + '197001010000~Jan 1 1970' \ + '210602070628.16~Feb 7 2106' +do + IFS='~' + set $time_date + time=$1 + date=$2 + IFS=$oldIFS if touch -t $time in; then - returns_ 2 gzip in || fail=1 + ls_l=$(ls -l in) + case $ls_l in + *"$date"*) returns_ 2 gzip in || fail=1;; + esac fi rm -f in.gz in done # Test that timestamps in range for gzip do not generate warnings. -for time in 197001010000.01 203801190314.07 203801190314.08 210602070628.15; do +for time_date in \ + '197001010000.01~Jan 1 1970' \ + '203801190314.07~Jan 19 2038' \ + '203801190314.08~Jan 19 2038' \ + '210602070628.15~Feb 7 2106' +do + IFS='~' + set $time_date + time=$1 + date=$2 + IFS=$oldIFS if touch -t $time in; then - gzip in || fail=1 + ls_l=$(ls -l in) + case $ls_l in + *"$date"*) gzip in || fail=1;; + esac fi rm -f in.gz in done -# On platforms that fail to support timestamps within gzip's range, -# test that gzip warns when converting them from gzip format. -touch -t 210602070628.15 in || { - printf '\037\213\10\0\377\377\377\377\0\377\3\0\0\0\0\0\0\0\0\0' >y2106.gz || - framework_failure_ - returns_ 2 gzip -Nlv y2106.gz || + framework_failure_ +gzip -Nlv k || fail=1 -- 2.7.4