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

[PATCH v5 13/39] t7102: abstract away SHA-1-specific constants

From
brian m. carlson <sandals@crustytoothpaste.net>
Date
Jul 28, 2020, 23:34 UTC
Message-ID
<20200728233446.3066485-14-sandals@crustytoothpaste.net>
In-Reply-To
<20200728233446.3066485-1-sandals@crustytoothpaste.net>

Adjust the test so that it computes variables for object IDs instead of using hard-coded hashes.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
---
 t/t7102-reset.sh | 93 +++++++++++++++++++++++++++---------------------
 1 file changed, 53 insertions(+), 40 deletions(-)
diff --git a/t/t7102-reset.sh b/t/t7102-reset.sh
index 97be0d968d..22161b3b2d 100755
--- a/t/t7102-reset.sh
+++ b/t/t7102-reset.sh
@@ -37,17 +37,23 @@ test_expect_success 'creating initial files and commits' '
 
 	echo "2nd line 1st file" >>first &&
 	git commit -a -m "modify 1st file" &&
+	head5p2=$(git rev-parse --verify HEAD) &&
+	head5p2f=$(git rev-parse --short HEAD:first) &&
 
 	git rm first &&
 	git mv second secondfile &&
 	git commit -a -m "remove 1st and rename 2nd" &&
+	head5p1=$(git rev-parse --verify HEAD) &&
+	head5p1s=$(git rev-parse --short HEAD:secondfile) &&
 
 	echo "1st line 2nd file" >secondfile &&
 	echo "2nd line 2nd file" >>secondfile &&
 	# "git commit -m" would break MinGW, as Windows refuse to pass
 	# $test_encoding encoded parameter to git.
 	commit_msg $test_encoding | git -c "i18n.commitEncoding=$test_encoding" commit -a -F - &&
-	head5=$(git rev-parse --verify HEAD)
+	head5=$(git rev-parse --verify HEAD) &&
+	head5s=$(git rev-parse --short HEAD:secondfile) &&
+	head5sl=$(git rev-parse HEAD:secondfile)
 '
 # git log --pretty=oneline # to see those SHA1 involved
 
@@ -94,7 +100,7 @@ test_expect_success 'giving a non existing revision should fail' '
 
 test_expect_success 'reset --soft with unmerged index should fail' '
 	touch .git/MERGE_HEAD &&
-	echo "100644 44c5b5884550c17758737edcced463447b91d42b 1	un" |
+	echo "100644 $head5sl 1	un" |
 		git update-index --index-info &&
 	test_must_fail git reset --soft HEAD &&
 	rm .git/MERGE_HEAD &&
@@ -192,7 +198,7 @@ test_expect_success \
 >.diff_expect
 cat >.cached_expect <<EOF
 diff --git a/secondfile b/secondfile
-index 1bbba79..44c5b58 100644
+index $head5p1s..$head5s 100644
 --- a/secondfile
 +++ b/secondfile
 @@ -1 +1,2 @@
@@ -207,7 +213,7 @@ secondfile:
 EOF
 test_expect_success '--soft reset only should show changes in diff --cached' '
 	git reset --soft HEAD^ &&
-	check_changes d1a4bc3abce4829628ae2dcb0d60ef3d1a78b1c4 &&
+	check_changes $head5p1 &&
 	test "$(git rev-parse ORIG_HEAD)" = \
 			$head5
 '
@@ -242,7 +248,7 @@ EOF
 test_expect_success \
 	'--hard reset should change the files and undo commits permanently' '
 	git reset --hard HEAD~2 &&
-	check_changes ddaefe00f1da16864591c61fdc7adb5d7cd6b74e &&
+	check_changes $head5p2 &&
 	test "$(git rev-parse ORIG_HEAD)" = \
 			$head4
 '
@@ -251,7 +257,7 @@ test_expect_success \
 cat >.cached_expect <<EOF
 diff --git a/first b/first
 deleted file mode 100644
-index 8206c22..0000000
+index $head5p2f..0000000
 --- a/first
 +++ /dev/null
 @@ -1,2 +0,0 @@
@@ -259,14 +265,14 @@ index 8206c22..0000000
 -2nd line 1st file
 diff --git a/second b/second
 deleted file mode 100644
-index 1bbba79..0000000
+index $head5p1s..0000000
 --- a/second
 +++ /dev/null
 @@ -1 +0,0 @@
 -2nd file
 diff --git a/secondfile b/secondfile
 new file mode 100644
-index 0000000..44c5b58
+index 0000000..$head5s
 --- /dev/null
 +++ b/secondfile
 @@ -0,0 +1,2 @@
@@ -286,13 +292,13 @@ test_expect_success \
 	echo "1st line 2nd file" >secondfile &&
 	echo "2nd line 2nd file" >>secondfile &&
 	git add secondfile &&
-	check_changes ddaefe00f1da16864591c61fdc7adb5d7cd6b74e
+	check_changes $head5p2
 '
 
 cat >.diff_expect <<EOF
 diff --git a/first b/first
 deleted file mode 100644
-index 8206c22..0000000
+index $head5p2f..0000000
 --- a/first
 +++ /dev/null
 @@ -1,2 +0,0 @@
@@ -300,7 +306,7 @@ index 8206c22..0000000
 -2nd line 1st file
 diff --git a/second b/second
 deleted file mode 100644
-index 1bbba79..0000000
+index $head5p1s..0000000
 --- a/second
 +++ /dev/null
 @@ -1 +0,0 @@
@@ -314,9 +320,8 @@ secondfile:
 EOF
 test_expect_success '--mixed reset to HEAD should unadd the files' '
 	git reset &&
-	check_changes ddaefe00f1da16864591c61fdc7adb5d7cd6b74e &&
-	test "$(git rev-parse ORIG_HEAD)" = \
-			ddaefe00f1da16864591c61fdc7adb5d7cd6b74e
+	check_changes $head5p2 &&
+	test "$(git rev-parse ORIG_HEAD)" = $head5p2
 '
 
 >.diff_expect
@@ -328,7 +333,7 @@ secondfile:
 EOF
 test_expect_success 'redoing the last two commits should succeed' '
 	git add secondfile &&
-	git reset --hard ddaefe00f1da16864591c61fdc7adb5d7cd6b74e &&
+	git reset --hard $head5p2 &&
 
 	git rm first &&
 	git mv second secondfile &&
@@ -389,47 +394,55 @@ test_expect_success \
 	check_changes $head5
 '
 
-cat > expect << EOF
-diff --git a/file1 b/file1
-index d00491f..7ed6ff8 100644
---- a/file1
-+++ b/file1
-@@ -1 +1 @@
--1
-+5
-diff --git a/file2 b/file2
-deleted file mode 100644
-index 0cfbf08..0000000
---- a/file2
-+++ /dev/null
-@@ -1 +0,0 @@
--2
-EOF
-cat > cached_expect << EOF
-diff --git a/file4 b/file4
-new file mode 100644
-index 0000000..b8626c4
---- /dev/null
-+++ b/file4
-@@ -0,0 +1 @@
-+4
-EOF
 test_expect_success 'test --mixed <paths>' '
 	echo 1 > file1 &&
 	echo 2 > file2 &&
 	git add file1 file2 &&
 	test_tick &&
 	git commit -m files &&
+	before1=$(git rev-parse --short HEAD:file1) &&
+	before2=$(git rev-parse --short HEAD:file2) &&
 	git rm file2 &&
 	echo 3 > file3 &&
 	echo 4 > file4 &&
 	echo 5 > file1 &&
+	after1=$(git rev-parse --short $(git hash-object file1)) &&
+	after4=$(git rev-parse --short $(git hash-object file4)) &&
 	git add file1 file3 file4 &&
 	git reset HEAD -- file1 file2 file3 &&
 	test_must_fail git diff --quiet &&
 	git diff > output &&
+
+	cat > expect <<-EOF &&
+	diff --git a/file1 b/file1
+	index $before1..$after1 100644
+	--- a/file1
+	+++ b/file1
+	@@ -1 +1 @@
+	-1
+	+5
+	diff --git a/file2 b/file2
+	deleted file mode 100644
+	index $before2..0000000
+	--- a/file2
+	+++ /dev/null
+	@@ -1 +0,0 @@
+	-2
+	EOF
+
 	test_cmp expect output &&
 	git diff --cached > output &&
+
+	cat > cached_expect <<-EOF &&
+	diff --git a/file4 b/file4
+	new file mode 100644
+	index 0000000..$after4
+	--- /dev/null
+	+++ b/file4
+	@@ -0,0 +1 @@
+	+4
+	EOF
+
 	test_cmp cached_expect output
 '
 
Previous: brian m. carlsonNext: brian m. carlson
Message 9 of 116 in “SHA-256, part 3/3”
  1. 00/39 SHA-256, part 3/3brian m. carlson, Jul 28, 2020
  2. 02/39 t1001: use $ZERO_OIDbrian m. carlson, Jul 28, 2020
  3. 03/39 t3305: make hash agnosticbrian m. carlson, Jul 28, 2020
  4. 04/39 t3404: prepare 'short SHA-1 collision' tests for SHA-256brian m. carlson, Jul 28, 2020
  5. 06/39 t6101: make hash size independentbrian m. carlson, Jul 28, 2020
  6. 10/39 t7003: compute appropriate length constantbrian m. carlson, Jul 28, 2020
  7. 12/39 t7201: abstract away SHA-1-specific constantsbrian m. carlson, Jul 28, 2020
  8. 15/39 t7405: make hash size independentbrian m. carlson, Jul 28, 2020
  9. 13/39 t7102: abstract away SHA-1-specific constantsbrian m. carlson, Jul 28, 2020
  10. 20/39 t8011: make hash size independentbrian m. carlson, Jul 28, 2020
  11. 17/39 t7508: use $ZERO_OID instead of hard-coded constantbrian m. carlson, Jul 28, 2020
  12. 27/39 t5308: make test work with SHA-256brian m. carlson, Jul 28, 2020
  13. 26/39 t9700: make hash size independentbrian m. carlson, Jul 28, 2020
  14. 24/39 t9350: make hash size independentbrian m. carlson, Jul 28, 2020
  15. 22/39 t9300: use $ZERO_OID instead of hard-coded object IDbrian m. carlson, Jul 28, 2020
  16. 32/39 setup: add support for reading extensions.objectformatbrian m. carlson, Jul 28, 2020
  17. 35/39 t: allow testing different hash algorithms via environmentbrian m. carlson, Jul 28, 2020
  18. 38/39 docs: add documentation for extensions.objectFormatbrian m. carlson, Jul 28, 2020
  19. 36/39 t: make SHA1 prerequisite depend on default hashbrian m. carlson, Jul 28, 2020
  20. Eric SunshineJul 29, 2020
  21. 31/39 bundle: add new version for use with SHA-256brian m. carlson, Jul 28, 2020
  22. Eric SunshineJul 29, 2020
  23. brian m. carlsonJul 29, 2020
  24. 39/39 t: remove test_oid_init in testsbrian m. carlson, Jul 28, 2020
  25. 34/39 t: add test_oid option to select hash algorithmbrian m. carlson, Jul 28, 2020
  26. 37/39 ci: run tests with SHA-256brian m. carlson, Jul 28, 2020
  27. 25/39 t9500: ensure that algorithm info is preserved in configbrian m. carlson, Jul 28, 2020
  28. 01/39 t: make test-bloom initialize repositorybrian m. carlson, Jul 28, 2020
  29. 05/39 t6100: make hash size independentbrian m. carlson, Jul 28, 2020
  30. 14/39 t7400: make hash size independentbrian m. carlson, Jul 28, 2020
  31. 11/39 t7063: make hash size independentbrian m. carlson, Jul 28, 2020
  32. 09/39 t6501: avoid hard-coded objectsbrian m. carlson, Jul 28, 2020
  33. 07/39 t6301: make hash size independentbrian m. carlson, Jul 28, 2020
  34. 29/39 http-fetch: set up git directory before parsing pack hashesbrian m. carlson, Jul 28, 2020
  35. Eric SunshineJul 29, 2020
  36. 21/39 t9300: abstract away SHA-1-specific constantsbrian m. carlson, Jul 28, 2020
  37. 30/39 builtin/verify-pack: implement an --object-format optionbrian m. carlson, Jul 28, 2020
  38. 33/39 Enable SHA-256 support by defaultbrian m. carlson, Jul 28, 2020
  39. Eric SunshineJul 29, 2020
  40. 28/39 t0410: mark test with SHA1 prerequisitebrian m. carlson, Jul 28, 2020
  41. 08/39 t6500: specify test values for SHA-256brian m. carlson, Jul 28, 2020
  42. 18/39 t8002: make hash size independentbrian m. carlson, Jul 28, 2020
  43. Eric SunshineJul 29, 2020
  44. brian m. carlsonJul 29, 2020
  45. 19/39 t8003: make hash size independentbrian m. carlson, Jul 28, 2020
  46. 23/39 t9301: make hash size independentbrian m. carlson, Jul 28, 2020
  47. 16/39 t7506: avoid checking for SHA-1-specific constantsbrian m. carlson, Jul 28, 2020
  48. 00/39 SHA-256, part 3/3brian m. carlson, Jul 29, 2020
  49. 01/39 t: make test-bloom initialize repositorybrian m. carlson, Jul 29, 2020
  50. 04/39 t3404: prepare 'short SHA-1 collision' tests for SHA-256brian m. carlson, Jul 29, 2020
  51. 07/39 t6301: make hash size independentbrian m. carlson, Jul 29, 2020
  52. 09/39 t6501: avoid hard-coded objectsbrian m. carlson, Jul 29, 2020
  53. 11/39 t7063: make hash size independentbrian m. carlson, Jul 29, 2020
  54. 13/39 t7102: abstract away SHA-1-specific constantsbrian m. carlson, Jul 29, 2020
  55. 16/39 t7506: avoid checking for SHA-1-specific constantsbrian m. carlson, Jul 29, 2020
  56. 17/39 t7508: use $ZERO_OID instead of hard-coded constantbrian m. carlson, Jul 29, 2020
  57. 19/39 t8003: make hash size independentbrian m. carlson, Jul 29, 2020
  58. 22/39 t9300: use $ZERO_OID instead of hard-coded object IDbrian m. carlson, Jul 29, 2020
  59. 25/39 t9500: ensure that algorithm info is preserved in configbrian m. carlson, Jul 29, 2020
  60. 27/39 t5308: make test work with SHA-256brian m. carlson, Jul 29, 2020
  61. 26/39 t9700: make hash size independentbrian m. carlson, Jul 29, 2020
  62. 31/39 bundle: add new version for use with SHA-256brian m. carlson, Jul 29, 2020
  63. 38/39 docs: add documentation for extensions.objectFormatbrian m. carlson, Jul 29, 2020
  64. 33/39 repository: enable SHA-256 support by defaultbrian m. carlson, Jul 29, 2020
  65. 37/39 ci: run tests with SHA-256brian m. carlson, Jul 29, 2020
  66. 30/39 builtin/verify-pack: implement an --object-format optionbrian m. carlson, Jul 29, 2020
  67. 35/39 t: allow testing different hash algorithms via environmentbrian m. carlson, Jul 29, 2020
  68. 32/39 setup: add support for reading extensions.objectformatbrian m. carlson, Jul 29, 2020
  69. 39/39 t: remove test_oid_init in testsbrian m. carlson, Jul 29, 2020
  70. 03/39 t3305: make hash agnosticbrian m. carlson, Jul 29, 2020
  71. 05/39 t6100: make hash size independentbrian m. carlson, Jul 29, 2020
  72. 08/39 t6500: specify test values for SHA-256brian m. carlson, Jul 29, 2020
  73. 12/39 t7201: abstract away SHA-1-specific constantsbrian m. carlson, Jul 29, 2020
  74. 06/39 t6101: make hash size independentbrian m. carlson, Jul 29, 2020
  75. 18/39 t8002: make hash size independentbrian m. carlson, Jul 29, 2020
  76. 10/39 t7003: compute appropriate length constantbrian m. carlson, Jul 29, 2020
  77. 14/39 t7400: make hash size independentbrian m. carlson, Jul 29, 2020
  78. 15/39 t7405: make hash size independentbrian m. carlson, Jul 29, 2020
  79. 02/39 t1001: use $ZERO_OIDbrian m. carlson, Jul 29, 2020
  80. 36/39 t: make SHA1 prerequisite depend on default hashbrian m. carlson, Jul 29, 2020
  81. 28/39 t0410: mark test with SHA1 prerequisitebrian m. carlson, Jul 29, 2020
  82. 21/39 t9300: abstract away SHA-1-specific constantsbrian m. carlson, Jul 29, 2020
  83. 24/39 t9350: make hash size independentbrian m. carlson, Jul 29, 2020
  84. 23/39 t9301: make hash size independentbrian m. carlson, Jul 29, 2020
  85. 20/39 t8011: make hash size independentbrian m. carlson, Jul 29, 2020
  86. 29/39 http-fetch: set up git directory before parsing pack hashesbrian m. carlson, Jul 29, 2020
  87. 34/39 t: add test_oid option to select hash algorithmbrian m. carlson, Jul 29, 2020
  88. Eric SunshineJul 30, 2020
  89. Junio C HamanoJul 30, 2020
  90. Ævar Arnfjörð BjarmasonMar 10, 2021
  91. Elijah NewrenMar 10, 2021
  92. Jeff KingMar 10, 2021
  93. 0/3 sha256 fixes for filter-branchJeff King, Mar 10, 2021
  94. 3/3 filter-branch: drop $_x40 globJeff King, Mar 10, 2021
  95. Junio C HamanoMar 10, 2021
  96. 1/4 git-bisect: remove unused SHA-1 $x40 shell variableÆvar Arnfjörð Bjarmason, Mar 11, 2021
  97. 0/4 bisect + tests: remove old $_x05, $_x35 and $_x40 variablesÆvar Arnfjörð Bjarmason, Mar 11, 2021
  98. 4/4 tests: get rid of $_x05 from the test suiteÆvar Arnfjörð Bjarmason, Mar 11, 2021
  99. Junio C HamanoMar 11, 2021
  100. Ævar Arnfjörð BjarmasonMar 11, 2021
  101. Junio C HamanoMar 11, 2021
  102. 3/4 shortlog tests: rewrite to get rid of --abbrev=35 hardcodingÆvar Arnfjörð Bjarmason, Mar 11, 2021
  103. Junio C HamanoMar 11, 2021
  104. Jeff KingMar 11, 2021
  105. 2/4 test-lib: remove unused $_x40 and $_z40 variablesÆvar Arnfjörð Bjarmason, Mar 11, 2021
  106. Junio C HamanoMar 11, 2021
  107. 1/3 t7003: test ref rewriting explicitlyJeff King, Mar 10, 2021
  108. Ævar Arnfjörð BjarmasonMar 11, 2021
  109. brian m. carlsonMar 11, 2021
  110. Jeff KingMar 11, 2021
  111. brian m. carlsonMar 11, 2021
  112. 2/3 filter-branch: drop multiple-ancestor warningJeff King, Mar 10, 2021
  113. Junio C HamanoMar 10, 2021
  114. Elijah NewrenMar 10, 2021
  115. Junio C HamanoMar 10, 2021
  116. brian m. carlsonMar 10, 2021

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.