From: Stefano Lattarini Date: Thu, 26 Apr 2012 08:52:48 +0000 (+0200) Subject: tests: fix a spurious failure due to truncated timestamps X-Git-Tag: v1.12.0b~52^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=v1.12-5-g63e07a9;p=thirdparty%2Fautomake.git tests: fix a spurious failure due to truncated timestamps Fixes automake bug#11346. * t/self-check-is_newest.tap: Apparently, on some systems (or file systems), "touch -r" can truncate timestamps :-( Work around that. Co-authored-by: Peter Breitenlohner Signed-off-by: Stefano Lattarini --- diff --git a/t/self-check-is_newest.tap b/t/self-check-is_newest.tap index 76b69acb4..842c411bb 100755 --- a/t/self-check-is_newest.tap +++ b/t/self-check-is_newest.tap @@ -24,6 +24,16 @@ plan_ 21 Y () { command_ok_ "is_newest $*" is_newest "$@"; } N () { command_ok_ "not is_newest $*" not is_newest "$@"; } +# A simple "touch -r" might not work, since on some file systems, and/or +# with some 'touch' versions, it might truncate the timestamp (or even +# rounded it upwards maybe). So the first (apparently redundant) 'touch' +# invocation below ensures that the timestamp gets "normalized" in a way +# that allows it to be correctly copied by the second 'touch' invocation. +copy_timestamp () +{ + touch -r "$1" "$1" && touch -r "$1" "$2" +} + : > a $sleep : > b @@ -38,7 +48,7 @@ Y c b Y c c Y c a b c -touch -r c d +copy_timestamp c d stat c d || : # For debugging. @@ -69,7 +79,7 @@ done Y x/foo x N x x/foo -touch -r x u +copy_timestamp x u Y x u Y u x