t3701: don't hard code sha1 hash values
Use a filter when comparing diffs to fix the value of non-zero hashes in diff index lines so we're not hard coding sha1 hash values in the expected output. This makes it easier to change the expected output if a test is edited as we don't need to worry about the exact hash value and means the tests will work when the hash algorithm is transitioned away from sha1. Thanks-to: Junio C Hamano <gitster@pobox.com> Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
11489a6539
commit
902f414a72
@ -10,6 +10,19 @@ then
|
||||
test_done
|
||||
fi
|
||||
|
||||
diff_cmp () {
|
||||
for x
|
||||
do
|
||||
sed -e '/^index/s/[0-9a-f]*[1-9a-f][0-9a-f]*\.\./1234567../' \
|
||||
-e '/^index/s/\.\.[0-9a-f]*[1-9a-f][0-9a-f]*/..9abcdef/' \
|
||||
-e '/^index/s/ 00*\.\./ 0000000../' \
|
||||
-e '/^index/s/\.\.00*$/..0000000/' \
|
||||
-e '/^index/s/\.\.00* /..0000000 /' \
|
||||
"$x" >"$x.filtered"
|
||||
done
|
||||
test_cmp "$1.filtered" "$2.filtered"
|
||||
}
|
||||
|
||||
test_expect_success 'setup (initial)' '
|
||||
echo content >file &&
|
||||
git add file &&
|
||||
@ -35,7 +48,7 @@ test_expect_success 'setup expected' '
|
||||
test_expect_success 'diff works (initial)' '
|
||||
(echo d; echo 1) | git add -i >output &&
|
||||
sed -ne "/new file/,/content/p" <output >diff &&
|
||||
test_cmp expected diff
|
||||
diff_cmp expected diff
|
||||
'
|
||||
test_expect_success 'revert works (initial)' '
|
||||
git add file &&
|
||||
@ -72,7 +85,7 @@ test_expect_success 'setup expected' '
|
||||
test_expect_success 'diff works (commit)' '
|
||||
(echo d; echo 1) | git add -i >output &&
|
||||
sed -ne "/^index/,/content/p" <output >diff &&
|
||||
test_cmp expected diff
|
||||
diff_cmp expected diff
|
||||
'
|
||||
test_expect_success 'revert works (commit)' '
|
||||
git add file &&
|
||||
@ -91,7 +104,7 @@ test_expect_success 'dummy edit works' '
|
||||
test_set_editor : &&
|
||||
(echo e; echo a) | git add -p &&
|
||||
git diff > diff &&
|
||||
test_cmp expected diff
|
||||
diff_cmp expected diff
|
||||
'
|
||||
|
||||
test_expect_success 'setup patch' '
|
||||
@ -159,7 +172,7 @@ test_expect_success 'setup expected' '
|
||||
test_expect_success 'real edit works' '
|
||||
(echo e; echo n; echo d) | git add -p &&
|
||||
git diff >output &&
|
||||
test_cmp expected output
|
||||
diff_cmp expected output
|
||||
'
|
||||
|
||||
test_expect_success 'skip files similarly as commit -a' '
|
||||
@ -171,7 +184,7 @@ test_expect_success 'skip files similarly as commit -a' '
|
||||
git reset &&
|
||||
git commit -am commit &&
|
||||
git diff >expected &&
|
||||
test_cmp expected output &&
|
||||
diff_cmp expected output &&
|
||||
git reset --hard HEAD^
|
||||
'
|
||||
rm -f .gitignore
|
||||
@ -248,7 +261,7 @@ test_expect_success 'add first line works' '
|
||||
git apply patch &&
|
||||
(echo s; echo y; echo y) | git add -p file &&
|
||||
git diff --cached > diff &&
|
||||
test_cmp expected diff
|
||||
diff_cmp expected diff
|
||||
'
|
||||
|
||||
test_expect_success 'setup expected' '
|
||||
@ -271,7 +284,7 @@ test_expect_success 'deleting a non-empty file' '
|
||||
rm non-empty &&
|
||||
echo y | git add -p non-empty &&
|
||||
git diff --cached >diff &&
|
||||
test_cmp expected diff
|
||||
diff_cmp expected diff
|
||||
'
|
||||
|
||||
test_expect_success 'setup expected' '
|
||||
@ -290,7 +303,7 @@ test_expect_success 'deleting an empty file' '
|
||||
rm empty &&
|
||||
echo y | git add -p empty &&
|
||||
git diff --cached >diff &&
|
||||
test_cmp expected diff
|
||||
diff_cmp expected diff
|
||||
'
|
||||
|
||||
test_expect_success 'split hunk setup' '
|
||||
@ -355,7 +368,7 @@ test_expect_success 'patch mode ignores unmerged entries' '
|
||||
+changed
|
||||
EOF
|
||||
git diff --cached >diff &&
|
||||
test_cmp expected diff
|
||||
diff_cmp expected diff
|
||||
'
|
||||
|
||||
test_expect_success TTY 'diffs can be colorized' '
|
||||
@ -384,7 +397,7 @@ test_expect_success 'patch-mode via -i prompts for files' '
|
||||
|
||||
echo test >expect &&
|
||||
git diff --cached --name-only >actual &&
|
||||
test_cmp expect actual
|
||||
diff_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success 'add -p handles globs' '
|
||||
|
Loading…
Reference in New Issue
Block a user