git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] t7063: work around FreeBSD's lazy mtime update feature

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 2, 2016, 17:17 UTC
Message-ID
<xmqqfuqnf5uj.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<20160802153715.GA25286@duynguyen>
Duy Nguyen <pclouds@gmail.com> writes:
> OK how about this squashed in? The name was taken from fbsd definition
> IN_LAZYMOD.

I am sorry that I didn't spot this possiblity earlier, but do we need anything conditional? Either FREEBSD or LAZYMOD prerequisite tells very little what the "Work around lazy mtime update" is and where it triggers (I think the conclusion of your investigation was that the timestamp on the containing directory, but that is ONLY recorded in the log message, i.e. readers need to run 'git blame' to find out).

It might be a better approach to have a helper function with descriptive name and comment early in t7063, e.g.

	# On some filesystems (e.g. FreeBSD's ext2 and ufs) this
        # and that happens when we do blah, which forces the
        # untracked cache code to take the slow path.  A test
        # that wants to make sure the fast path works correctly
        # should call this helper to make mtime of the containing
        # directory in sync with the reality after doing blah and
        # before checking the fast path behaviour
	test_sync_directory_mtime () {
		ls -ld . >/dev/null
        }
and then call it at strategic places without any prerequisite.

The helper may turn out to be useful outside the context of 7063 later, at which time we can move it to test-lib-functions, but that is a separate step.

> Off topic. Since I found this macro defined twice, in ext2 and ufs,
> but not in zfs (found its source!), I assume zfs does not have this
> particular feature (but I didn't test it). Untracked cache may be more
> effecient there.
Show 31 quoted lines
> -- 8< --
> diff --git a/t/t7063-status-untracked-cache.sh b/t/t7063-status-untracked-cache.sh
> index 08fc586..8bb048a 100755
> --- a/t/t7063-status-untracked-cache.sh
> +++ b/t/t7063-status-untracked-cache.sh
> @@ -419,7 +419,7 @@ test_expect_success 'create/modify files, some of which are gitignored' '
>  	rm base
>  '
>  
> -test_expect_success FREEBSD 'Work around lazy mtime update' '
> +test_expect_success LAZYMOD 'Work around lazy mtime update' '
>  	ls -ld . >/dev/null
>  '
>  
> diff --git a/t/test-lib.sh b/t/test-lib.sh
> index 3c730a2..1fc5266 100644
> --- a/t/test-lib.sh
> +++ b/t/test-lib.sh
> @@ -962,7 +962,7 @@ case $(uname -s) in
>  	test_set_prereq GREP_STRIPS_CR
>  	;;
>  *FreeBSD*)
> -	test_set_prereq FREEBSD
> +	test_set_prereq LAZYMOD
>  	test_set_prereq POSIXPERM
>  	test_set_prereq BSLASHPSPEC
>  	test_set_prereq EXECKEEPSPID
> -- 8< --
>
> --
> Duy
Previous: Duy NguyenNext: Nguyễn Thái Ngọc Duy
Message 17 of 24 in “t7063 failure on FreeBSD 10.3 i386/amd64”
  1. Eric WongJul 18, 2016
  2. Eric WongJul 18, 2016
  3. Duy NguyenJul 19, 2016
  4. Eric WongJul 20, 2016
  5. Duy NguyenJul 20, 2016
  6. Duy NguyenJul 27, 2016
  7. Duy NguyenJul 30, 2016
  8. Duy NguyenJul 30, 2016
  9. t7063: work around FreeBSD's lazy mtime update featureNguyễn Thái Ngọc Duy, Jul 30, 2016
  10. Eric WongJul 31, 2016
  11. Eric WongJul 31, 2016
  12. Duy NguyenJul 31, 2016
  13. Torstem BögershausenAug 1, 2016
  14. Duy NguyenAug 1, 2016
  15. Junio C HamanoAug 1, 2016
  16. Duy NguyenAug 2, 2016
  17. Junio C HamanoAug 2, 2016
  18. t7063: work around FreeBSD's lazy mtime update featureNguyễn Thái Ngọc Duy, Aug 3, 2016
  19. Junio C HamanoAug 3, 2016
  20. Duy NguyenAug 3, 2016
  21. t7063: work around FreeBSD's lazy mtime update featureNguyễn Thái Ngọc Duy, Aug 3, 2016
  22. Junio C HamanoAug 3, 2016
  23. Junio C HamanoAug 3, 2016
  24. Duy NguyenAug 4, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.