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

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

From
brian m. carlson <sandals@crustytoothpaste.net>
Date
May 6, 2018, 23:17 UTC
Message-ID
<20180506231752.975110-2-sandals@crustytoothpaste.net>
In-Reply-To
<20180506231752.975110-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 can 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: Martin Ågren
Message 2 of 46 in “Hash-independent tests (part 2)”
  1. 00/28 Hash-independent tests (part 2)brian m. carlson, May 6, 2018
  2. 01/28 t/test-lib: add an SHA1 prerequisitebrian m. carlson, May 6, 2018
  3. Martin ÅgrenMay 7, 2018
  4. brian m. carlsonMay 7, 2018
  5. Martin ÅgrenMay 8, 2018
  6. brian m. carlsonMay 8, 2018
  7. 02/28 t/test-lib: introduce ZERO_OIDbrian m. carlson, May 6, 2018
  8. 03/28 t: switch $_z40 to $ZERO_OIDbrian m. carlson, May 6, 2018
  9. 04/28 t/test-lib: introduce FULL_HEXbrian m. carlson, May 6, 2018
  10. Eric SunshineMay 6, 2018
  11. brian m. carlsonMay 7, 2018
  12. 05/28 t: switch $_x40 to $FULL_HEXbrian m. carlson, May 6, 2018
  13. 06/28 t0000: annotate with SHA1 prerequisitebrian m. carlson, May 6, 2018
  14. Martin ÅgrenMay 7, 2018
  15. brian m. carlsonMay 7, 2018
  16. Martin ÅgrenMay 8, 2018
  17. brian m. carlsonMay 9, 2018
  18. 07/28 t1007: annotate with SHA1 prerequisitebrian m. carlson, May 6, 2018
  19. 09/28 t4044: skip test if not using SHA-1brian m. carlson, May 6, 2018
  20. 10/28 t: skip pack tests if not using SHA-1brian m. carlson, May 6, 2018
  21. Martin ÅgrenMay 7, 2018
  22. 12/28 t3103: abstract away SHA-1-specific constantsbrian m. carlson, May 6, 2018
  23. 11/28 t2203: abstract away SHA-1-specific constantsbrian m. carlson, May 6, 2018
  24. 14/28 t3905: abstract away SHA-1-specific constantsbrian m. carlson, May 6, 2018
  25. Eric SunshineMay 7, 2018
  26. brian m. carlsonMay 7, 2018
  27. 16/28 t4008: abstract away SHA-1-specific constantsbrian m. carlson, May 6, 2018
  28. Eric SunshineMay 7, 2018
  29. brian m. carlsonMay 7, 2018
  30. 17/28 t4014: abstract away SHA-1-specific constantsbrian m. carlson, May 6, 2018
  31. 20/28 t4029: fix test indentationbrian m. carlson, May 6, 2018
  32. 21/28 t4029: abstract away SHA-1-specific constantsbrian m. carlson, May 6, 2018
  33. 22/28 t4030: abstract away SHA-1-specific constantsbrian m. carlson, May 6, 2018
  34. 24/28 t4205: sort log output in a hash-independent waybrian m. carlson, May 6, 2018
  35. 25/28 t4042: abstract away SHA-1-specific constantsbrian m. carlson, May 6, 2018
  36. 23/28 t/lib-diff-alternative: abstract away SHA-1-specific constantsbrian m. carlson, May 6, 2018
  37. 27/28 t4208: abstract away SHA-1-specific constantsbrian m. carlson, May 6, 2018
  38. 28/28 t5300: abstract away SHA-1-specific constantsbrian m. carlson, May 6, 2018
  39. 26/28 t4045: abstract away SHA-1-specific constantsbrian m. carlson, May 6, 2018
  40. 18/28 t4020: abstract away SHA-1-specific constantsbrian m. carlson, May 6, 2018
  41. 19/28 t4022: abstract away SHA-1-specific constantsbrian m. carlson, May 6, 2018
  42. 08/28 t1512: skip test if not using SHA-1brian m. carlson, May 6, 2018
  43. 15/28 t4007: abstract away SHA-1-specific constantsbrian m. carlson, May 6, 2018
  44. 13/28 t3702: abstract away SHA-1-specific constantsbrian m. carlson, May 6, 2018
  45. Eric SunshineMay 7, 2018
  46. brian m. carlsonMay 7, 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.