>From b3baa4f5f2312617c6f115b271efc48f84d908db Mon Sep 17 00:00:00 2001 Message-Id: From: Stefano Lattarini Date: Thu, 26 Apr 2012 10:52:48 +0200 Subject: [PATCH] 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 Copyright-paperwork-exempt: yes Signed-off-by: Stefano Lattarini --- t/self-check-is_newest.tap | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/t/self-check-is_newest.tap b/t/self-check-is_newest.tap index 76b69ac..842c411 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 -- 1.7.9.5