From f3016a90960ae671c28497746d132eace2b65ead Mon Sep 17 00:00:00 2001 From: Konrad Wojas Date: Sun, 29 Oct 2017 20:48:07 +0800 Subject: [PATCH] =?UTF-8?q?Darwin=20test=20fix:=20allow=201=CE=BCs=20times?= =?UTF-8?q?tamp=20difference?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On Darwin, allow a 1μs difference in restored timestamps, because macOS <10.13 cannot restore with nanosecond precision and the current version of Go (1.9.2) does not yet support the new syscall required for this. (#1087 #1389) --- cmd/restic/integration_helpers_test.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/cmd/restic/integration_helpers_test.go b/cmd/restic/integration_helpers_test.go index 5e2686d4b..cf6e6dfea 100644 --- a/cmd/restic/integration_helpers_test.go +++ b/cmd/restic/integration_helpers_test.go @@ -71,7 +71,17 @@ func sameModTime(fi1, fi2 os.FileInfo) bool { } } - return fi1.ModTime().Equal(fi2.ModTime()) + same := fi1.ModTime().Equal(fi2.ModTime()) + if !same && runtime.GOOS == "darwin" { + // Allow up to 1μs difference, because macOS <10.13 cannot restore + // with nanosecond precision and the current version of Go (1.9.2) + // does not yet support the new syscall. (#1087) + mt1 := fi1.ModTime() + mt2 := fi2.ModTime() + usecDiff := (mt1.Nanosecond()-mt2.Nanosecond())/1000 + (mt1.Second()-mt2.Second())*1000000 + same = usecDiff <= 1 && usecDiff >= -1 + } + return same } // directoriesEqualContents checks if both directories contain exactly the same