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

[PATCH v2 2/6] t4200: make "rerere gc" test more robust

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 22, 2017, 21:46 UTC
Message-ID
<20170822214652.31626-3-gitster@pobox.com>
In-Reply-To
<20170822214652.31626-1-gitster@pobox.com>

The test blindly trusted that there may be _some_ entries left in the rerere database, and used them by updating their timestamps to see if the gc threshold variables are honoured correctly. This won't work if there is no entries in the database when the test begins.

Instead, clear the rerere database, and populate it with a few known entries (which are bogus, but for the purpose of testing "garbage collection", it does not matter---we want to make sure we collect old cruft, even if the files are corrupt rerere database entries), and use them for the expiry test.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 t/t4200-rerere.sh | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)
diff --git a/t/t4200-rerere.sh b/t/t4200-rerere.sh
index 8f5f268baf..1e23031cdb 100755
--- a/t/t4200-rerere.sh
+++ b/t/t4200-rerere.sh
@@ -420,19 +420,28 @@ count_pre_post () {
 }
 
 test_expect_success 'rerere gc' '
-	find .git/rr-cache -type f >original &&
-	xargs test-chmtime -172800 <original &&
+	rm -fr .git/rr-cache &&
+	rr=.git/rr-cache/$_z40 &&
+	mkdir -p "$rr" &&
+	>"$rr/preimage" &&
+	>"$rr/postimage" &&
+
+	two_days_ago=$((-2*86400)) &&
+	test-chmtime =$two_days_ago "$rr/preimage" &&
+	test-chmtime =$two_days_ago "$rr/postimage" &&
+
+	find .git/rr-cache -type f | sort >original &&
 
 	git -c gc.rerereresolved=5 -c gc.rerereunresolved=5 rerere gc &&
-	find .git/rr-cache -type f >actual &&
+	find .git/rr-cache -type f | sort >actual &&
 	test_cmp original actual &&
 
 	git -c gc.rerereresolved=5 -c gc.rerereunresolved=0 rerere gc &&
-	find .git/rr-cache -type f >actual &&
+	find .git/rr-cache -type f | sort >actual &&
 	test_cmp original actual &&
 
 	git -c gc.rerereresolved=0 -c gc.rerereunresolved=0 rerere gc &&
-	find .git/rr-cache -type f >actual &&
+	find .git/rr-cache -type f | sort >actual &&
 	>expect &&
 	test_cmp expect actual
 '
-- 
2.14.1-427-g5711bb0564
Previous: Junio C HamanoNext: Junio C Hamano
Message 13 of 16 in “fatal: bad numeric config value '60 days' for 'gc.rerereresolved': invalid unit”
  1. Uwe HausbrandJul 21, 2017
  2. Martin ÅgrenJul 21, 2017
  3. Junio C HamanoJul 21, 2017
  4. Uwe HausbrandJul 21, 2017
  5. 0/2 accept non-integer for "this many days" expiry specificationJunio C Hamano, Aug 19, 2017
  6. 2/2 rerere: allow approxidate in gc.rerereResolved/gc.rerereUnresolvedJunio C Hamano, Aug 19, 2017
  7. Ramsay JonesAug 20, 2017
  8. Junio C HamanoAug 21, 2017
  9. 1/2 rerere: represent time duration in timestamp_t internallyJunio C Hamano, Aug 19, 2017
  10. 0/6 accept non-integer for "this many days" expiry specificationJunio C Hamano, Aug 22, 2017
  11. 1/6 t4200: give us a clean slate after "rerere gc" testsJunio C Hamano, Aug 22, 2017
  12. 3/6 t4200: gather "rerere gc" togetherJunio C Hamano, Aug 22, 2017
  13. 2/6 t4200: make "rerere gc" test more robustJunio C Hamano, Aug 22, 2017
  14. 4/6 t4200: parameterize "rerere gc" custom expiry testJunio C Hamano, Aug 22, 2017
  15. 5/6 rerere: represent time duration in timestamp_t internallyJunio C Hamano, Aug 22, 2017
  16. 6/6 rerere: allow approxidate in gc.rerereResolved/gc.rerereUnresolvedJunio C Hamano, Aug 22, 2017

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.