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

[PATCH v2 15/22] t5515: make test hash independent

From
brian m. carlson <sandals@crustytoothpaste.net>
Date
Jan 25, 2020, 23:00 UTC
Message-ID
<20200125230035.136348-16-sandals@crustytoothpaste.net>
In-Reply-To
<20200125230035.136348-1-sandals@crustytoothpaste.net>

This test contains a large number of data files, mostly using the same object ID values for refs. Instead of producing two separate sets of test files, keep the test files using SHA-1 and translate them on the fly by replacing the SHA-1 values with the values for the current hash algorithm in use.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
---
 t/t5515-fetch-merge-logic.sh | 51 +++++++++++++++++++++++++++++++++---
 1 file changed, 47 insertions(+), 4 deletions(-)
diff --git a/t/t5515-fetch-merge-logic.sh b/t/t5515-fetch-merge-logic.sh
index 961eb35c99..ed49df582d 100755
--- a/t/t5515-fetch-merge-logic.sh
+++ b/t/t5515-fetch-merge-logic.sh
@@ -12,11 +12,50 @@ GIT_TEST_PROTOCOL_VERSION=
 
 . ./test-lib.sh
 
+convert_expected () {
+	file="$1" &&
+	for i in one three_file master master2 one_tree three two two2 three2
+	do
+		sed -e "s/$(test_oid --hash=sha1 "$i")/$(test_oid "$i")/g" \
+			"$file" >"$file.tmp" &&
+		mv "$file.tmp" "$file"
+	done
+}
+
 test_expect_success setup '
 	GIT_AUTHOR_DATE="2006-06-26 00:00:00 +0000" &&
 	GIT_COMMITTER_DATE="2006-06-26 00:00:00 +0000" &&
 	export GIT_AUTHOR_DATE GIT_COMMITTER_DATE &&
 
+	test_oid_cache <<-EOF &&
+	one sha1:8e32a6d901327a23ef831511badce7bf3bf46689
+	one sha256:8739546433ab1ac72ee93088dce611210effee072b2b586ceac6dde43ebec9ce
+
+	three_file sha1:0e3b14047d3ee365f4f2a1b673db059c3972589c
+	three_file sha256:bc4447d50c07497a8bfe6eef817f2364ecca9d471452e43b52756cc1a908bd32
+
+	master sha1:6c9dec2b923228c9ff994c6cfe4ae16c12408dc5
+	master sha256:8521c3072461fcfe8f32d67f95cc6e6b832a2db2fa29769ffc788bce85ebcd75
+
+	one_tree sha1:22feea448b023a2d864ef94b013735af34d238ba
+	one_tree sha256:6e4743f4ef2356b881dda5e91f5c7cdffe870faf350bf7b312f80a20935f5d83
+
+	three sha1:c61a82b60967180544e3c19f819ddbd0c9f89899
+	three sha256:0cc6d1eda617ded715170786e31ba4e2d0185404ec5a3508dd0d73b324860c6a
+
+	two sha1:525b7fb068d59950d185a8779dc957c77eed73ba
+	two sha256:3b21de3440cd38c2a9e9b464adb923f7054949ed4c918e1a0ac4c95cd52774db
+
+	master2 sha1:754b754407bf032e9a2f9d5a9ad05ca79a6b228f
+	master2 sha256:6c7abaea8a6d8ef4d89877e68462758dc6774690fbbbb0e6d7dd57415c9abde0
+
+	two2 sha1:6134ee8f857693b96ff1cc98d3e2fd62b199e5a8
+	two2 sha256:87a2d3ee29c83a3dc7afd41c0606b11f67603120b910a7be7840accdc18344d4
+
+	three2 sha1:0567da4d5edd2ff4bb292a465ba9e64dcad9536b
+	three2 sha256:cceb3e8eca364fa9a0a39a1efbebecacc664af86cbbd8070571f5faeb5f0e8c3
+	EOF
+
 	echo >file original &&
 	git add file &&
 	git commit -a -m One &&
@@ -137,6 +176,10 @@ do
 	actual_r="$pfx-refs.$test"
 
 	test_expect_success "$cmd" '
+		cp "$expect_f" expect_f &&
+		convert_expected expect_f &&
+		cp "$expect_r" expect_r &&
+		convert_expected expect_r &&
 		{
 			echo "# $cmd"
 			set x $cmd; shift
@@ -152,18 +195,18 @@ do
 			cat .git/FETCH_HEAD
 		} >"$actual_f" &&
 		git show-ref >"$actual_r" &&
-		if test -f "$expect_f"
+		if test -f "expect_f"
 		then
-			test_cmp "$expect_f" "$actual_f" &&
+			test_cmp "expect_f" "$actual_f" &&
 			rm -f "$actual_f"
 		else
 			# this is to help developing new tests.
 			cp "$actual_f" "$expect_f"
 			false
 		fi &&
-		if test -f "$expect_r"
+		if test -f "expect_r"
 		then
-			test_cmp "$expect_r" "$actual_r" &&
+			test_cmp "expect_r" "$actual_r" &&
 			rm -f "$actual_r"
 		else
 			# this is to help developing new tests.
Previous: brian m. carlsonNext: Junio C Hamano
Message 40 of 52 in “SHA-256 test fixes, part 8”
  1. 00/23 SHA-256 test fixes, part 8brian m. carlson, Jan 25, 2020
  2. 01/22 t/lib-pack: support SHA-256brian m. carlson, Jan 25, 2020
  3. 07/22 t3311: make test work with SHA-256brian m. carlson, Jan 25, 2020
  4. 03/22 t3305: annotate with SHA1 prerequisitebrian m. carlson, Jan 25, 2020
  5. Johannes SchindelinJan 26, 2020
  6. Johan HerlandJan 26, 2020
  7. Johannes SchindelinJan 26, 2020
  8. brian m. carlsonJan 26, 2020
  9. Johan HerlandJan 26, 2020
  10. Johannes SchindelinJan 27, 2020
  11. brian m. carlsonJan 26, 2020
  12. 08/22 t4013: make test hash independentbrian m. carlson, Jan 25, 2020
  13. Johannes SchindelinJan 26, 2020
  14. brian m. carlsonJan 26, 2020
  15. 04/22 t3308: make test work with SHA-256brian m. carlson, Jan 25, 2020
  16. 05/22 t3309: make test work with SHA-256brian m. carlson, Jan 25, 2020
  17. 09/22 t4060: make test work with SHA-256brian m. carlson, Jan 25, 2020
  18. 10/22 t4211: make test hash independentbrian m. carlson, Jan 25, 2020
  19. Johannes SchindelinJan 26, 2020
  20. 17/23 t5616: use correct filter syntaxbrian m. carlson, Jan 25, 2020
  21. Junio C HamanoJan 28, 2020
  22. brian m. carlsonJan 29, 2020
  23. 18/23 t5607: make hash size independentbrian m. carlson, Jan 25, 2020
  24. 14/22 t5321: make test hash independentbrian m. carlson, Jan 25, 2020
  25. 17/22 t5607: make hash size independentbrian m. carlson, Jan 25, 2020
  26. 19/22 t5703: switch tests to use test_oidbrian m. carlson, Jan 25, 2020
  27. 18/22 t5703: make test work with SHA-256brian m. carlson, Jan 25, 2020
  28. Junio C HamanoJan 28, 2020
  29. brian m. carlsonJan 29, 2020
  30. 21/23 t6000: abstract away SHA-1-specific constantsbrian m. carlson, Jan 25, 2020
  31. 21/22 t6006: make hash size independentbrian m. carlson, Jan 25, 2020
  32. 20/22 t6000: abstract away SHA-1-specific constantsbrian m. carlson, Jan 25, 2020
  33. 06/22 t3310: make test work with SHA-256brian m. carlson, Jan 25, 2020
  34. 22/23 t6006: make hash size independentbrian m. carlson, Jan 25, 2020
  35. 23/23 t6024: update for SHA-256brian m. carlson, Jan 25, 2020
  36. 02/22 t3206: make hash size independentbrian m. carlson, Jan 25, 2020
  37. 22/22 t6024: update for SHA-256brian m. carlson, Jan 25, 2020
  38. 20/23 t5703: switch tests to use test_oidbrian m. carlson, Jan 25, 2020
  39. 19/23 t5703: make test work with SHA-256brian m. carlson, Jan 25, 2020
  40. 15/22 t5515: make test hash independentbrian m. carlson, Jan 25, 2020
  41. Junio C HamanoJan 28, 2020
  42. brian m. carlsonJan 29, 2020
  43. 16/22 t5318: update for SHA-256brian m. carlson, Jan 25, 2020
  44. 13/22 t5313: make test hash independentbrian m. carlson, Jan 25, 2020
  45. Junio C HamanoJan 28, 2020
  46. 11/22 t5302: make hash size independentbrian m. carlson, Jan 25, 2020
  47. Johannes SchindelinJan 26, 2020
  48. brian m. carlsonJan 26, 2020
  49. 12/22 t5309: make test hash independentbrian m. carlson, Jan 25, 2020
  50. Johannes SchindelinJan 26, 2020
  51. brian m. carlsonJan 26, 2020
  52. Johannes SchindelinJan 26, 2020

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.