15b808da74
Follow-up the change in459b8d22e5
(tests: do not borrow from COPYING and README from the real source, 2015-02-15) by not shipping a full copy of older versions of the top-level "COPYING" and "README" files. The tests that use them just need the small blurb at the top of "COPYING" as test data, or mock data that's dissimilar. Let's provide that with a "COPYING_test_data" function instead. We're not replacing this with some other generic test data (e.g. "lorum ipsum") because these tests require test file header to be the old "COPYING" file. See e.g. "t4003-diff-rename-1.sh" which changes the file, and then does full "test_cmp" comparisons on the resulting "git diff" output. This change only changes tests that used the "lib-diff.sh" library, but splits up what they need into a new "lib-diff-data.sh". A subsequent commit will change related tests that were missed in459b8d22e5
. For the test in "t4008-diff-break-rewrite.sh" the "README" file can go away in favor of echoing the line "some dissimilar content" to a file in the one test that needed it. The point of that test is to start with files "A" and "B", and then have A be more similar to the state of "B" than to its old version (by copying over the content from the "COPYING" file). Just comparing the pre-image of "some dissimilar content" and later a munged version of the "COPYING" output serves that purpose. While we're at it get rid of a stray "echo $tree" debugging line added in15d061b435
([PATCH] Fix the way diffcore-rename records unremoved source., 2005-05-27), and stop calling "hash-object" to get the hash of an object we've just added to the index. We can instead extract that information from the index itself with "rev-parse". Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
99 lines
2.6 KiB
Bash
Executable File
99 lines
2.6 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Copyright (c) 2005 Junio C Hamano
|
|
#
|
|
|
|
test_description='Same rename detection as t4003 but testing diff-raw -z.
|
|
|
|
'
|
|
. ./test-lib.sh
|
|
. "$TEST_DIRECTORY"/lib-diff.sh ;# test-lib chdir's into trash
|
|
|
|
test_expect_success \
|
|
'prepare reference tree' \
|
|
'COPYING_test_data >COPYING &&
|
|
echo frotz >rezrov &&
|
|
git update-index --add COPYING rezrov &&
|
|
orig=$(git hash-object COPYING) &&
|
|
tree=$(git write-tree) &&
|
|
echo $tree'
|
|
|
|
test_expect_success \
|
|
'prepare work tree' \
|
|
'sed -e 's/HOWEVER/However/' <COPYING >COPYING.1 &&
|
|
sed -e 's/GPL/G.P.L/g' <COPYING >COPYING.2 &&
|
|
rm -f COPYING &&
|
|
c1=$(git hash-object COPYING.1) &&
|
|
c2=$(git hash-object COPYING.2) &&
|
|
git update-index --add --remove COPYING COPYING.?'
|
|
|
|
# tree has COPYING and rezrov. work tree has COPYING.1 and COPYING.2,
|
|
# both are slightly edited, and unchanged rezrov. We say COPYING.1
|
|
# and COPYING.2 are based on COPYING, and do not say anything about
|
|
# rezrov.
|
|
|
|
git diff-index -z -C $tree >current
|
|
|
|
cat >expected <<EOF
|
|
:100644 100644 $orig $c1 C1234
|
|
COPYING
|
|
COPYING.1
|
|
:100644 100644 $orig $c2 R1234
|
|
COPYING
|
|
COPYING.2
|
|
EOF
|
|
|
|
test_expect_success \
|
|
'validate output from rename/copy detection (#1)' \
|
|
'compare_diff_raw_z current expected'
|
|
|
|
################################################################
|
|
|
|
test_expect_success \
|
|
'prepare work tree again' \
|
|
'mv COPYING.2 COPYING &&
|
|
git update-index --add --remove COPYING COPYING.1 COPYING.2'
|
|
|
|
# tree has COPYING and rezrov. work tree has COPYING and COPYING.1,
|
|
# both are slightly edited, and unchanged rezrov. We say COPYING.1
|
|
# is based on COPYING and COPYING is still there, and do not say anything
|
|
# about rezrov.
|
|
|
|
git diff-index -z -C $tree >current
|
|
cat >expected <<EOF
|
|
:100644 100644 $orig $c2 M
|
|
COPYING
|
|
:100644 100644 $orig $c1 C1234
|
|
COPYING
|
|
COPYING.1
|
|
EOF
|
|
|
|
test_expect_success \
|
|
'validate output from rename/copy detection (#2)' \
|
|
'compare_diff_raw_z current expected'
|
|
|
|
################################################################
|
|
|
|
# tree has COPYING and rezrov. work tree has the same COPYING and
|
|
# copy-edited COPYING.1, and unchanged rezrov. We should not say
|
|
# anything about rezrov or COPYING, since the revised again diff-raw
|
|
# nows how to say Copy.
|
|
|
|
test_expect_success \
|
|
'prepare work tree once again' \
|
|
'COPYING_test_data >COPYING &&
|
|
git update-index --add --remove COPYING COPYING.1'
|
|
|
|
git diff-index -z -C --find-copies-harder $tree >current
|
|
cat >expected <<EOF
|
|
:100644 100644 $orig $c1 C1234
|
|
COPYING
|
|
COPYING.1
|
|
EOF
|
|
|
|
test_expect_success \
|
|
'validate output from rename/copy detection (#3)' \
|
|
'compare_diff_raw_z current expected'
|
|
|
|
test_done
|