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

[PATCH v2 01/28] t/test-lib: add an SHA1 prerequisite

From
brian m. carlson <sandals@crustytoothpaste.net>
Date
May 13, 2018, 02:24 UTC
Message-ID
<20180513022438.60003-2-sandals@crustytoothpaste.net>
In-Reply-To
<20180513022438.60003-1-sandals@crustytoothpaste.net>

There are some basic tests in our codebase that test that we get fixed SHA-1 values. These are valuable because they make sure that our SHA-1 implementation is free of bugs, but obviously these tests will fail with a different hash.

There are also tests which intentionally produce objects that have collisions when truncated to a certain length to test our handling of these cases. These tests, too, will fail with a different hash.

Add an SHA1 prerequisite to annotate both of these types of tests and disable them when we're using a different hash. In the future, we will create versions of these tests which handle both SHA-1 and NewHash.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
---
 t/test-lib.sh | 7 +++++++
 1 file changed, 7 insertions(+)
diff --git a/t/test-lib.sh b/t/test-lib.sh
index ea2bbaaa7a..fce728d2ea 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -1212,3 +1212,10 @@ test_lazy_prereq TIME_T_IS_64BIT 'test-tool date time_t-is64bit'
 test_lazy_prereq CURL '
 	curl --version
 '
+
+# SHA1 is a test if the hash algorithm in use is SHA-1.  This is both for tests
+# which will not work with other hash algorithms and tests that work but don't
+# test anything meaningful (e.g. special values which cause short collisions).
+test_lazy_prereq SHA1 '
+	test $(git hash-object /dev/null) = e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
+'
Previous: brian m. carlsonNext: brian m. carlson
Message 2 of 31 in “Hash-independent tests (part 2)”
  1. 00/28 Hash-independent tests (part 2)brian m. carlson, May 13, 2018
  2. 01/28 t/test-lib: add an SHA1 prerequisitebrian m. carlson, May 13, 2018
  3. 02/28 t/test-lib: introduce ZERO_OIDbrian m. carlson, May 13, 2018
  4. 03/28 t: switch $_z40 to $ZERO_OIDbrian m. carlson, May 13, 2018
  5. 04/28 t/test-lib: introduce OID_REGEXbrian m. carlson, May 13, 2018
  6. 05/28 t: switch $_x40 to $OID_REGEXbrian m. carlson, May 13, 2018
  7. 06/28 t0000: annotate with SHA1 prerequisitebrian m. carlson, May 13, 2018
  8. 07/28 t1007: annotate with SHA1 prerequisitebrian m. carlson, May 13, 2018
  9. 09/28 t4044: skip test if not using SHA-1brian m. carlson, May 13, 2018
  10. 11/28 t2203: abstract away SHA-1-specific constantsbrian m. carlson, May 13, 2018
  11. 10/28 t: skip pack tests if not using SHA-1brian m. carlson, May 13, 2018
  12. 08/28 t1512: skip test if not using SHA-1brian m. carlson, May 13, 2018
  13. 12/28 t3103: abstract away SHA-1-specific constantsbrian m. carlson, May 13, 2018
  14. 15/28 t4007: abstract away SHA-1-specific constantsbrian m. carlson, May 13, 2018
  15. 17/28 t4014: abstract away SHA-1-specific constantsbrian m. carlson, May 13, 2018
  16. Johannes SixtMay 13, 2018
  17. brian m. carlsonMay 13, 2018
  18. 18/28 t4020: abstract away SHA-1-specific constantsbrian m. carlson, May 13, 2018
  19. 21/28 t4029: abstract away SHA-1-specific constantsbrian m. carlson, May 13, 2018
  20. 19/28 t4022: abstract away SHA-1-specific constantsbrian m. carlson, May 13, 2018
  21. 24/28 t4205: sort log output in a hash-independent waybrian m. carlson, May 13, 2018
  22. 26/28 t4045: abstract away SHA-1-specific constantsbrian m. carlson, May 13, 2018
  23. 25/28 t4042: abstract away SHA-1-specific constantsbrian m. carlson, May 13, 2018
  24. 28/28 t5300: abstract away SHA-1-specific constantsbrian m. carlson, May 13, 2018
  25. 27/28 t4208: abstract away SHA-1-specific constantsbrian m. carlson, May 13, 2018
  26. 20/28 t4029: fix test indentationbrian m. carlson, May 13, 2018
  27. 23/28 t/lib-diff-alternative: abstract away SHA-1-specific constantsbrian m. carlson, May 13, 2018
  28. 22/28 t4030: abstract away SHA-1-specific constantsbrian m. carlson, May 13, 2018
  29. 13/28 t3702: abstract away SHA-1-specific constantsbrian m. carlson, May 13, 2018
  30. 16/28 t4008: abstract away SHA-1-specific constantsbrian m. carlson, May 13, 2018
  31. 14/28 t3905: abstract away SHA-1-specific constantsbrian m. carlson, May 13, 2018

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.