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

[PATCH v4 3/4] t7508: add tests capturing racy timestamp handling

From
Marc Strapetz via GitGitGadget <gitgitgadget@gmail.com>
Date
Jan 7, 2022, 11:17 UTC
Message-ID
<82d0b6ab8d2dc3198216aac9551927dfd6d91cc0.1641554252.git.gitgitgadget@gmail.com>
In-Reply-To
<pull.1105.v4.git.1641554252.gitgitgadget@gmail.com>
From: Marc Strapetz <marc.strapetz@syntevo.com>

"git status" fixes racy timestamps regardless of the worktree being dirty or not. The new test cases capture this behavior.

Signed-off-by: Marc Strapetz <marc.strapetz@syntevo.com>
---
 t/t7508-status.sh | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)
diff --git a/t/t7508-status.sh b/t/t7508-status.sh
index b9efd2613d0..2b7ef6c41a4 100755
--- a/t/t7508-status.sh
+++ b/t/t7508-status.sh
@@ -1654,4 +1654,26 @@ test_expect_success '--no-optional-locks prevents index update' '
 	! test_is_magic_mtime .git/index
 '
 
+test_expect_success 'racy timestamps will be fixed for clean worktree' '
+	echo content >racy-dirty &&
+	echo content >racy-racy &&
+	git add racy* &&
+	git commit -m "racy test files" &&
+	# let status rewrite the index, if necessary; after that we expect
+	# no more index writes unless caused by racy timestamps; note that
+	# timestamps may already be racy now (depending on previous tests)
+	git status &&
+	test_set_magic_mtime .git/index &&
+	git status &&
+	! test_is_magic_mtime .git/index
+'
+
+test_expect_success 'racy timestamps will be fixed for dirty worktree' '
+	echo content2 >racy-dirty &&
+	git status &&
+	test_set_magic_mtime .git/index &&
+	git status &&
+	! test_is_magic_mtime .git/index
+'
+
 test_done
-- 
gitgitgadget
Previous: Marc Strapetz via GitGitGadgetNext: Marc Strapetz via GitGitGadget
Message 19 of 20 in “update-index: refresh should rewrite index in case of racy timestamps”
  1. update-index: refresh should rewrite index in case of racy timestampsMarc Strapetz via GitGitGadget, Dec 22, 2021
  2. Junio C HamanoDec 22, 2021
  3. Marc StrapetzDec 23, 2021
  4. 0/2 update-index: refresh should rewrite index in case of racy timestampsMarc Strapetz via GitGitGadget, Jan 5, 2022
  5. 1/2 t7508: add tests capturing racy timestamp handlingMarc Strapetz via GitGitGadget, Jan 5, 2022
  6. Junio C HamanoJan 5, 2022
  7. Marc StrapetzJan 6, 2022
  8. 2/2 update-index: refresh should rewrite index in case of racy timestampsMarc Strapetz via GitGitGadget, Jan 5, 2022
  9. Junio C HamanoJan 5, 2022
  10. 0/4 update-index: refresh should rewrite index in case of racy timestampsMarc Strapetz via GitGitGadget, Jan 6, 2022
  11. 1/4 test-lib: introduce API for verifying file mtimeMarc Strapetz via GitGitGadget, Jan 6, 2022
  12. Junio C HamanoJan 6, 2022
  13. 2/4 t7508: fix bogus mtime verificationMarc Strapetz via GitGitGadget, Jan 6, 2022
  14. 3/4 t7508: add tests capturing racy timestamp handlingMarc Strapetz via GitGitGadget, Jan 6, 2022
  15. 4/4 update-index: refresh should rewrite index in case of racy timestampsMarc Strapetz via GitGitGadget, Jan 6, 2022
  16. 0/4 update-index: refresh should rewrite index in case of racy timestampsMarc Strapetz via GitGitGadget, Jan 7, 2022
  17. 1/4 test-lib: introduce API for verifying file mtimeMarc Strapetz via GitGitGadget, Jan 7, 2022
  18. 2/4 t7508: fix bogus mtime verificationMarc Strapetz via GitGitGadget, Jan 7, 2022
  19. 3/4 t7508: add tests capturing racy timestamp handlingMarc Strapetz via GitGitGadget, Jan 7, 2022
  20. 4/4 update-index: refresh should rewrite index in case of racy timestampsMarc Strapetz via GitGitGadget, Jan 7, 2022

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.