t1002: stop using sum(1)

sum(1) is a command for calculating checksums of the contents of files.
It was part of early editions of Unix ("Research Unix", 1972/1973, [1]).
cksum(1) appeared in 4.4BSD (1993) as a replacement [2], and became part
of POSIX.1-2008 [3].  OpenBSD 5.6 (2014) removed sum(1).

We only use sum(1) in t1002 to check for changes in three files.  On
MinGW we use md5sum(1) instead.  We could switch to the standard command
cksum(1) for all platforms; MinGW comes with GNU coreutils now, which
provides sum(1), cksum(1) and md5sum(1).  Use our standard method for
checking for file changes instead: test_cmp.

It's more convenient because it shows differences nicely, it's faster on
MinGW because we have a special implementation there based only on
shell-internal commands, it's simpler as it allows us to avoid stripping
out unnecessary entries from the checksum file using grep(1), and it's
more consistent with the rest of the test suite.

We already compare changed files with their expected new contents using
diff(1), so we don't need to check with "test_must_fail test_cmp" if
they differ from their original state.  A later patch could convert the
direct diff(1) calls to test_cmp as well.

With all sum(1) calls gone, remove the MinGW-specific implementation
from test-lib.sh as well.

[1] http://minnie.tuhs.org/cgi-bin/utree.pl?file=V3/man/man1/sum.1
[2] http://minnie.tuhs.org/cgi-bin/utree.pl?file=4.4BSD/usr/share/man/cat1/cksum.0
[3] http://pubs.opengroup.org/onlinepubs/9699919799/utilities/cksum.html

Signed-off-by: René Scharfe <l.s.r@web.de>
Reviewed-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
René Scharfe 2017-08-14 22:16:34 +02:00 committed by Junio C Hamano
parent 0bfff8146f
commit 70ec6bd63b
2 changed files with 35 additions and 35 deletions

View file

@ -51,7 +51,9 @@ test_expect_success \
treeM=$(git write-tree) && treeM=$(git write-tree) &&
echo treeM $treeM && echo treeM $treeM &&
git ls-tree $treeM && git ls-tree $treeM &&
sum bozbar frotz nitfol >M.sum && cp bozbar bozbar.M &&
cp frotz frotz.M &&
cp nitfol nitfol.M &&
git diff-tree $treeH $treeM' git diff-tree $treeH $treeM'
test_expect_success \ test_expect_success \
@ -61,8 +63,9 @@ test_expect_success \
read_tree_u_must_succeed -m -u $treeH $treeM && read_tree_u_must_succeed -m -u $treeH $treeM &&
git ls-files --stage >1-3.out && git ls-files --stage >1-3.out &&
cmp M.out 1-3.out && cmp M.out 1-3.out &&
sum bozbar frotz nitfol >actual3.sum && test_cmp bozbar.M bozbar &&
cmp M.sum actual3.sum && test_cmp frotz.M frotz &&
test_cmp nitfol.M nitfol &&
check_cache_at bozbar clean && check_cache_at bozbar clean &&
check_cache_at frotz clean && check_cache_at frotz clean &&
check_cache_at nitfol clean' check_cache_at nitfol clean'
@ -79,8 +82,9 @@ test_expect_success \
test_might_fail git diff -U0 --no-index M.out 4.out >4diff.out && test_might_fail git diff -U0 --no-index M.out 4.out >4diff.out &&
compare_change 4diff.out expected && compare_change 4diff.out expected &&
check_cache_at yomin clean && check_cache_at yomin clean &&
sum bozbar frotz nitfol >actual4.sum && test_cmp bozbar.M bozbar &&
cmp M.sum actual4.sum && test_cmp frotz.M frotz &&
test_cmp nitfol.M nitfol &&
echo yomin >yomin1 && echo yomin >yomin1 &&
diff yomin yomin1 && diff yomin yomin1 &&
rm -f yomin1' rm -f yomin1'
@ -98,8 +102,9 @@ test_expect_success \
test_might_fail git diff -U0 --no-index M.out 5.out >5diff.out && test_might_fail git diff -U0 --no-index M.out 5.out >5diff.out &&
compare_change 5diff.out expected && compare_change 5diff.out expected &&
check_cache_at yomin dirty && check_cache_at yomin dirty &&
sum bozbar frotz nitfol >actual5.sum && test_cmp bozbar.M bozbar &&
cmp M.sum actual5.sum && test_cmp frotz.M frotz &&
test_cmp nitfol.M nitfol &&
: dirty index should have prevented -u from checking it out. && : dirty index should have prevented -u from checking it out. &&
echo yomin yomin >yomin1 && echo yomin yomin >yomin1 &&
diff yomin yomin1 && diff yomin yomin1 &&
@ -115,8 +120,9 @@ test_expect_success \
git ls-files --stage >6.out && git ls-files --stage >6.out &&
test_cmp M.out 6.out && test_cmp M.out 6.out &&
check_cache_at frotz clean && check_cache_at frotz clean &&
sum bozbar frotz nitfol >actual3.sum && test_cmp bozbar.M bozbar &&
cmp M.sum actual3.sum && test_cmp frotz.M frotz &&
test_cmp nitfol.M nitfol &&
echo frotz >frotz1 && echo frotz >frotz1 &&
diff frotz frotz1 && diff frotz frotz1 &&
rm -f frotz1' rm -f frotz1'
@ -132,8 +138,8 @@ test_expect_success \
git ls-files --stage >7.out && git ls-files --stage >7.out &&
test_cmp M.out 7.out && test_cmp M.out 7.out &&
check_cache_at frotz dirty && check_cache_at frotz dirty &&
sum bozbar frotz nitfol >actual7.sum && test_cmp bozbar.M bozbar &&
if cmp M.sum actual7.sum; then false; else :; fi && test_cmp nitfol.M nitfol &&
: dirty index should have prevented -u from checking it out. && : dirty index should have prevented -u from checking it out. &&
echo frotz frotz >frotz1 && echo frotz frotz >frotz1 &&
diff frotz frotz1 && diff frotz frotz1 &&
@ -165,8 +171,10 @@ test_expect_success \
read_tree_u_must_succeed -m -u $treeH $treeM && read_tree_u_must_succeed -m -u $treeH $treeM &&
git ls-files --stage >10.out && git ls-files --stage >10.out &&
cmp M.out 10.out && cmp M.out 10.out &&
sum bozbar frotz nitfol >actual10.sum && test_cmp bozbar.M bozbar &&
cmp M.sum actual10.sum' test_cmp frotz.M frotz &&
test_cmp nitfol.M nitfol
'
test_expect_success \ test_expect_success \
'11 - dirty path removed.' \ '11 - dirty path removed.' \
@ -209,11 +217,8 @@ test_expect_success \
git ls-files --stage >14.out && git ls-files --stage >14.out &&
test_must_fail git diff -U0 --no-index M.out 14.out >14diff.out && test_must_fail git diff -U0 --no-index M.out 14.out >14diff.out &&
compare_change 14diff.out expected && compare_change 14diff.out expected &&
sum bozbar frotz >actual14.sum && test_cmp bozbar.M bozbar &&
grep -v nitfol M.sum > expected14.sum && test_cmp frotz.M frotz &&
cmp expected14.sum actual14.sum &&
sum bozbar frotz nitfol >actual14a.sum &&
if cmp M.sum actual14a.sum; then false; else :; fi &&
check_cache_at nitfol clean && check_cache_at nitfol clean &&
echo nitfol nitfol >nitfol1 && echo nitfol nitfol >nitfol1 &&
diff nitfol nitfol1 && diff nitfol nitfol1 &&
@ -231,11 +236,8 @@ test_expect_success \
test_must_fail git diff -U0 --no-index M.out 15.out >15diff.out && test_must_fail git diff -U0 --no-index M.out 15.out >15diff.out &&
compare_change 15diff.out expected && compare_change 15diff.out expected &&
check_cache_at nitfol dirty && check_cache_at nitfol dirty &&
sum bozbar frotz >actual15.sum && test_cmp bozbar.M bozbar &&
grep -v nitfol M.sum > expected15.sum && test_cmp frotz.M frotz &&
cmp expected15.sum actual15.sum &&
sum bozbar frotz nitfol >actual15a.sum &&
if cmp M.sum actual15a.sum; then false; else :; fi &&
echo nitfol nitfol nitfol >nitfol1 && echo nitfol nitfol nitfol >nitfol1 &&
diff nitfol nitfol1 && diff nitfol nitfol1 &&
rm -f nitfol1' rm -f nitfol1'
@ -267,8 +269,10 @@ test_expect_success \
git ls-files --stage >18.out && git ls-files --stage >18.out &&
test_cmp M.out 18.out && test_cmp M.out 18.out &&
check_cache_at bozbar clean && check_cache_at bozbar clean &&
sum bozbar frotz nitfol >actual18.sum && test_cmp bozbar.M bozbar &&
cmp M.sum actual18.sum' test_cmp frotz.M frotz &&
test_cmp nitfol.M nitfol
'
test_expect_success \ test_expect_success \
'19 - local change already having a good result, further modified.' \ '19 - local change already having a good result, further modified.' \
@ -281,11 +285,8 @@ test_expect_success \
git ls-files --stage >19.out && git ls-files --stage >19.out &&
test_cmp M.out 19.out && test_cmp M.out 19.out &&
check_cache_at bozbar dirty && check_cache_at bozbar dirty &&
sum frotz nitfol >actual19.sum && test_cmp frotz.M frotz &&
grep -v bozbar M.sum > expected19.sum && test_cmp nitfol.M nitfol &&
cmp expected19.sum actual19.sum &&
sum bozbar frotz nitfol >actual19a.sum &&
if cmp M.sum actual19a.sum; then false; else :; fi &&
echo gnusto gnusto >bozbar1 && echo gnusto gnusto >bozbar1 &&
diff bozbar bozbar1 && diff bozbar bozbar1 &&
rm -f bozbar1' rm -f bozbar1'
@ -300,8 +301,10 @@ test_expect_success \
git ls-files --stage >20.out && git ls-files --stage >20.out &&
test_cmp M.out 20.out && test_cmp M.out 20.out &&
check_cache_at bozbar clean && check_cache_at bozbar clean &&
sum bozbar frotz nitfol >actual20.sum && test_cmp bozbar.M bozbar &&
cmp M.sum actual20.sum' test_cmp frotz.M frotz &&
test_cmp nitfol.M nitfol
'
test_expect_success \ test_expect_success \
'21 - no local change, dirty cache.' \ '21 - no local change, dirty cache.' \

View file

@ -975,9 +975,6 @@ case $(uname -s) in
find () { find () {
/usr/bin/find "$@" /usr/bin/find "$@"
} }
sum () {
md5sum "$@"
}
# git sees Windows-style pwd # git sees Windows-style pwd
pwd () { pwd () {
builtin pwd -W builtin pwd -W