summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2016-08-08 14:48:42 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2016-08-08 14:48:42 -0700
commit17501ba1cd56d4774e59c797bc048ee813dee235 (patch)
treea6f437b4c80ed369230a831244d1caa9f908f4cf
parentMerge branch 'nd/log-decorate-color-head-arrow' (diff)
parentt7063: work around FreeBSD's lazy mtime update feature (diff)
downloadtgif-17501ba1cd56d4774e59c797bc048ee813dee235.tar.xz
Merge branch 'nd/fbsd-lazy-mtime'
FreeBSD can lie when asked mtime of a directory, which made the untracked cache code to fall back to a slow-path, which in turn caused tests in t7063 to fail because it wanted to verify the behaviour of the fast-path. * nd/fbsd-lazy-mtime: t7063: work around FreeBSD's lazy mtime update feature
-rwxr-xr-xt/t7063-status-untracked-cache.sh17
1 files changed, 16 insertions, 1 deletions
diff --git a/t/t7063-status-untracked-cache.sh b/t/t7063-status-untracked-cache.sh
index c23a21cb74..0667bd9dd3 100755
--- a/t/t7063-status-untracked-cache.sh
+++ b/t/t7063-status-untracked-cache.sh
@@ -4,6 +4,20 @@ test_description='test untracked cache'
. ./test-lib.sh
+# On some filesystems (e.g. FreeBSD's ext2 and ufs) directory mtime
+# is updated lazily after contents in the directory changes, which
+# forces the untracked cache code to take the slow path. A test
+# that wants to make sure that the fast path works correctly should
+# call this helper to make mtime of the containing directory in sync
+# with the reality before checking the fast path behaviour.
+#
+# See <20160803174522.5571-1-pclouds@gmail.com> if you want to know
+# more.
+
+sync_mtime () {
+ find . -type d -ls >/dev/null
+}
+
avoid_racy() {
sleep 1
}
@@ -416,7 +430,8 @@ test_expect_success 'create/modify files, some of which are gitignored' '
echo four >done/four && # four is gitignored at a higher level
echo five >done/five && # five is not gitignored
echo test >base && #we need to ensure that the root dir is touched
- rm base
+ rm base &&
+ sync_mtime
'
test_expect_success 'test sparse status with untracked cache' '