Re: [PATCH v4 00/28] Hash-independent tests
On Mon, May 21, 2018 at 09:17:39AM -0400, Ben Peart wrote: > Do you plan to update those tests that hard code the SHA of the index file > itself? For example, t1700-split-index.sh has hard coded values for the SHA > and currently only supports different hard coded values for V4 indexes vs > others. I have some additional test changes that use the SHA1 prerequisite, plus some that fix issues due to the use of a different hash algorithm or a longer hash algorithm. Ultimately, I plan to discard the SHA1 prerequisite and update those tests to use a translation table to look up the correct values depending on the hash algorithm in use. However, we haven't decided on the actual algorithm that NewHash will be yet, so I can't write those translation tables at this point. I plan to start a discussion about the choice of algorithm soon, since we'll soon need to make a decision in order to progress, but I need to do some research and testing in order to have sufficient facts to present to the list. -- brian m. carlson: Houston, Texas, US OpenPGP: https://keybase.io/bk2204 signature.asc Description: PGP signature
Re: [PATCH v4 00/28] Hash-independent tests
On 5/20/2018 10:01 PM, brian m. carlson wrote: This is part 2 in the series to make tests hash independent. Do you plan to update those tests that hard code the SHA of the index file itself? For example, t1700-split-index.sh has hard coded values for the SHA and currently only supports different hard coded values for V4 indexes vs others.
[PATCH v4 00/28] Hash-independent tests
This is part 2 in the series to make tests hash independent. This series introduces an SHA1 prerequisite which checks if the hash in use is SHA-1, and can be used to skip the test if it is not. Additionally, because NewHash will be 256-bit, I introduced aliases for the test constants $_x40 and $_z40 which will be less confusing when the hash isn't 40 hex characters long. I opted to leave the old names in place for the moment to prevent any potential conflicts with other series and will clean up any stragglers later. This version addresses the concerns raised about robustness in case git hash-object fails in an unexpected way. We now have better error handling for that case by performing git rev-parse and git hash-object in separate steps. Changes from v3: * Switch a use of egrep to grep. Changes from v2: * Split out git rev-parse --short and git hash-object into separate stages for better error handling. Changes from v1: * Amend commit message to indicate that we *will* be updating tests annotated with the SHA1 prerequisite to work with NewHash. * Rename FULL_HEX to OID_REGEX. * Regenerate patch for OID_REGEX. * Update variable name from "link_oid" to "slink_id" for consistency while still preserving alignment. * Restore blank line between tests. tbdiff output below. brian m. carlson (28): t/test-lib: add an SHA1 prerequisite t/test-lib: introduce ZERO_OID t: switch $_z40 to $ZERO_OID t/test-lib: introduce OID_REGEX t: switch $_x40 to $OID_REGEX t: annotate with SHA1 prerequisite t1007: annotate with SHA1 prerequisite t1512: skip test if not using SHA-1 t4044: skip test if not using SHA-1 t: skip pack tests if not using SHA-1 t2203: abstract away SHA-1-specific constants t3103: abstract away SHA-1-specific constants t3702: abstract away SHA-1-specific constants t3905: abstract away SHA-1-specific constants t4007: abstract away SHA-1-specific constants t4008: abstract away SHA-1-specific constants t4014: abstract away SHA-1-specific constants t4020: abstract away SHA-1-specific constants t4022: abstract away SHA-1-specific constants t4029: fix test indentation t4029: abstract away SHA-1-specific constants t4030: abstract away SHA-1-specific constants t/lib-diff-alternative: abstract away SHA-1-specific constants t4205: sort log output in a hash-independent way t4042: abstract away SHA-1-specific constants t4045: abstract away SHA-1-specific constants t4208: abstract away SHA-1-specific constants t5300: abstract away SHA-1-specific constants t/diff-lib.sh | 4 +- t/lib-diff-alternative.sh | 12 -- t/t-basic.sh| 24 ++-- t/t0090-cache-tree.sh | 2 +- t/t1000-read-tree-m-3way.sh | 2 +- t/t1001-read-tree-m-2way.sh | 2 +- t/t1002-read-tree-m-u-2way.sh | 2 +- t/t1006-cat-file.sh | 8 ++-- t/t1007-hash-object.sh | 16 t/t1012-read-tree-df.sh | 2 +- t/t1400-update-ref.sh | 2 +- t/t1407-worktree-ref-store.sh | 8 ++-- t/t1450-fsck.sh | 4 +- t/t1501-work-tree.sh| 6 +-- t/t1512-rev-parse-disambiguation.sh | 6 +++ t/t1601-index-bogus.sh | 2 +- t/t1700-split-index.sh | 2 +- t/t2011-checkout-invalid-head.sh| 2 +- t/t2025-worktree-add.sh | 8 ++-- t/t2027-worktree-list.sh| 2 +- t/t2107-update-index-basic.sh | 4 +- t/t2201-add-update-typechange.sh| 16 t/t2203-add-intent.sh | 14 +++ t/t3100-ls-tree-restrict.sh | 2 +- t/t3101-ls-tree-dirname.sh | 2 +- t/t3103-ls-tree-misc.sh | 3 +- t/t3200-branch.sh | 4 +- t/t3510-cherry-pick-sequence.sh | 8 ++-- t/t3702-add-edit.sh | 7 ++-- t/t3905-stash-include-untracked.sh | 11 -- t/t4002-diff-basic.sh | 2 +- t/t4006-diff-mode.sh| 2 +- t/t4007-rename-3.sh | 17 + t/t4008-diff-break-rewrite.sh | 59 - t/t4014-format-patch.sh | 13 --- t/t4020-diff-external.sh| 20 ++ t/t4022-diff-rewrite.sh | 6 ++- t/t4027-diff-submodule.sh | 6 +-- t/t4029-diff-trailing-space.sh | 40 ++- t/t4030-diff-textconv.sh| 5 ++- t/t4042-diff-textconv-caching.sh| 16 +--- t/t4044-diff-index-unique-abbrev.sh | 6 +++ t/t4045-diff-relative.sh| 6 ++- t/t4046-diff-unmerged.sh| 14 +++ t/t4054-diff-bogus-tree.sh | 12 +++--- t/t4058-diff-duplicates.sh | 12 +++--- t/t4150-am.sh | 4 +- t/t4200-rerere.sh | 2 +- t/t4201-shortlog.sh | 2 +- t/t4205-log-pretty-formats.sh | 8 ++-- t/t4208-log-magic-pathspec.sh | 3 +-