From: Paul Eggert Date: Sun, 12 Nov 2017 08:20:04 +0000 (-0800) Subject: tests: don’t be so strict about timestamps X-Git-Tag: v1.9~11 X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=b1d08ed0e26f0a8c81910c5950275d28ce06bd9c;p=debian%2Fgzip tests: don’t be so strict about timestamps * 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. --- 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