[PATCH] diff: consolidate test helper script pieces.

There were duplicate script pieces to help comparing diff
output, which this patch consolidates into the t/diff-lib.sh
library.

Signed-off-by: Junio C Hamano <junkio@cox.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Junio C Hamano 2005-05-31 14:47:25 -07:00 committed by Linus Torvalds
parent 1d9e6f92bc
commit edb0c72428
6 changed files with 43 additions and 83 deletions

35
t/diff-lib.sh Normal file
View File

@ -0,0 +1,35 @@
:
_x40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]'
_x40="$_x40$_x40$_x40$_x40$_x40$_x40$_x40$_x40"
sanitize_diff_raw='/^:/s/ '"$_x40"' '"$_x40"' \([A-Z]\)[0-9]* / X X \1# /'
compare_diff_raw () {
# When heuristics are improved, the score numbers would change.
# Ignore them while comparing.
# Also we do not check SHA1 hash generation in this test, which
# is a job for t0000-basic.sh
sed -e "$sanitize_diff_raw" <"$1" >.tmp-1
sed -e "$sanitize_diff_raw" <"$2" >.tmp-2
diff -u .tmp-1 .tmp-2 && rm -f .tmp-1 .tmp-2
}
sanitize_diff_raw_z='/^:/s/ '"$_x40"' '"$_x40"' \([A-Z]\)[0-9]*$/ X X \1#/'
compare_diff_raw_z () {
# When heuristics are improved, the score numbers would change.
# Ignore them while comparing.
# Also we do not check SHA1 hash generation in this test, which
# is a job for t0000-basic.sh
tr '\0' '\012' <"$1" | sed -e "$sanitize_diff_raw_z" >.tmp-1
tr '\0' '\012' <"$2" | sed -e "$sanitize_diff_raw_z" >.tmp-2
diff -u .tmp-1 .tmp-2 && rm -f .tmp-1 .tmp-2
}
compare_diff_patch () {
# When heuristics are improved, the score numbers would change.
# Ignore them while comparing.
sed -e '/^[dis]*imilarity index [0-9]*%$/d' <"$1" >.tmp-1
sed -e '/^[dis]*imilarity index [0-9]*%$/d' <"$2" >.tmp-2
diff -u .tmp-1 .tmp-2 && rm -f .tmp-1 .tmp-2
}

View File

@ -7,14 +7,7 @@ test_description='More rename detection
' '
. ./test-lib.sh . ./test-lib.sh
. ../diff-lib.sh ;# test-lib chdir's into trash
compare_diff_patch () {
# When heuristics are improved, the score numbers would change.
# Ignore them while comparing.
sed -e '/^similarity index [0-9]*%$/d' <"$1" >.tmp-1
sed -e '/^similarity index [0-9]*%$/d' <"$2" >.tmp-2
diff -u .tmp-1 .tmp-2 && rm -f .tmp-1 .tmp-2
}
test_expect_success \ test_expect_success \
'prepare reference tree' \ 'prepare reference tree' \

View File

@ -7,28 +7,7 @@ test_description='Same rename detection as t4003 but testing diff-raw.
' '
. ./test-lib.sh . ./test-lib.sh
. ../diff-lib.sh ;# test-lib chdir's into trash
_x40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]'
_x40="$_x40$_x40$_x40$_x40$_x40$_x40$_x40$_x40"
sanitize_diff_raw='s/ '"$_x40"' '"$_x40"' \([A-Z]\)[0-9]* / X X \1# /'
compare_diff_raw () {
# When heuristics are improved, the score numbers would change.
# Ignore them while comparing.
# Also we do not check SHA1 hash generation in this test, which
# is a job for t0000-basic.sh
sed -e "$sanitize_diff_raw" <"$1" >.tmp-1
sed -e "$sanitize_diff_raw" <"$2" >.tmp-2
diff -u .tmp-1 .tmp-2 && rm -f .tmp-1 .tmp-2
}
compare_diff_patch () {
# When heuristics are improved, the score numbers would change.
# Ignore them while comparing.
sed -e '/^similarity index [0-9]*%$/d' <"$1" >.tmp-1
sed -e '/^similarity index [0-9]*%$/d' <"$2" >.tmp-2
diff -u .tmp-1 .tmp-2 && rm -f .tmp-1 .tmp-2
}
test_expect_success \ test_expect_success \
'prepare reference tree' \ 'prepare reference tree' \

View File

@ -7,20 +7,7 @@ test_description='Rename interaction with pathspec.
' '
. ./test-lib.sh . ./test-lib.sh
. ../diff-lib.sh ;# test-lib chdir's into trash
_x40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]'
_x40="$_x40$_x40$_x40$_x40$_x40$_x40$_x40$_x40"
sanitize_diff_raw='s/ '"$_x40"' '"$_x40"' \([A-Z]\)[0-9]* / X X \1# /'
compare_diff_raw () {
# When heuristics are improved, the score numbers would change.
# Ignore them while comparing.
# Also we do not check SHA1 hash generation in this test, which
# is a job for t0000-basic.sh
sed -e "$sanitize_diff_raw" <"$1" >.tmp-1
sed -e "$sanitize_diff_raw" <"$2" >.tmp-2
diff -u .tmp-1 .tmp-2 && rm -f .tmp-1 .tmp-2
}
test_expect_success \ test_expect_success \
'prepare reference tree' \ 'prepare reference tree' \

View File

@ -22,20 +22,7 @@ four changes in total.
Further, with -B and -M together, these should turn into two renames. Further, with -B and -M together, these should turn into two renames.
' '
. ./test-lib.sh . ./test-lib.sh
. ../diff-lib.sh ;# test-lib chdir's into trash
_x40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]'
_x40="$_x40$_x40$_x40$_x40$_x40$_x40$_x40$_x40"
sanitize_diff_raw='s/ '"$_x40"' '"$_x40"' \([CDNR]\)[0-9]* / X X \1# /'
compare_diff_raw () {
# When heuristics are improved, the score numbers would change.
# Ignore them while comparing.
# Also we do not check SHA1 hash generation in this test, which
# is a job for t0000-basic.sh
sed -e "$sanitize_diff_raw" <"$1" >.tmp-1
sed -e "$sanitize_diff_raw" <"$2" >.tmp-2
diff -u .tmp-1 .tmp-2 && rm -f .tmp-1 .tmp-2
}
test_expect_success \ test_expect_success \
setup \ setup \

View File

@ -7,28 +7,7 @@ test_description='Same rename detection as t4003 but testing diff-raw -z.
' '
. ./test-lib.sh . ./test-lib.sh
. ../diff-lib.sh ;# test-lib chdir's into trash
_x40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]'
_x40="$_x40$_x40$_x40$_x40$_x40$_x40$_x40$_x40"
sanitize_diff_raw='/^:/s/ '"$_x40"' '"$_x40"' \([A-Z]\)[0-9]*$/ X X \1#/'
compare_diff_raw () {
# When heuristics are improved, the score numbers would change.
# Ignore them while comparing.
# Also we do not check SHA1 hash generation in this test, which
# is a job for t0000-basic.sh
tr '\0' '\012' <"$1" | sed -e "$sanitize_diff_raw" >.tmp-1
tr '\0' '\012' <"$2" | sed -e "$sanitize_diff_raw" >.tmp-2
diff -u .tmp-1 .tmp-2 && rm -f .tmp-1 .tmp-2
}
compare_diff_patch () {
# When heuristics are improved, the score numbers would change.
# Ignore them while comparing.
sed -e '/^similarity index [0-9]*%$/d' <"$1" >.tmp-1
sed -e '/^similarity index [0-9]*%$/d' <"$2" >.tmp-2
diff -u .tmp-1 .tmp-2 && rm -f .tmp-1 .tmp-2
}
test_expect_success \ test_expect_success \
'prepare reference tree' \ 'prepare reference tree' \
@ -63,7 +42,7 @@ EOF
test_expect_success \ test_expect_success \
'validate output from rename/copy detection (#1)' \ 'validate output from rename/copy detection (#1)' \
'compare_diff_raw current expected' 'compare_diff_raw_z current expected'
# make sure diff-helper can grok it. # make sure diff-helper can grok it.
mv current diff-raw mv current diff-raw
@ -120,7 +99,7 @@ EOF
test_expect_success \ test_expect_success \
'validate output from rename/copy detection (#2)' \ 'validate output from rename/copy detection (#2)' \
'compare_diff_raw current expected' 'compare_diff_raw_z current expected'
# make sure diff-helper can grok it. # make sure diff-helper can grok it.
mv current diff-raw mv current diff-raw
@ -173,7 +152,7 @@ EOF
test_expect_success \ test_expect_success \
'validate output from rename/copy detection (#3)' \ 'validate output from rename/copy detection (#3)' \
'compare_diff_raw current expected' 'compare_diff_raw_z current expected'
# make sure diff-helper can grok it. # make sure diff-helper can grok it.
mv current diff-raw mv current diff-raw