6ab75ac839
Call diff_free() on the "pruning" member of "struct rev_info". Doing
so makes several tests pass under SANITIZE=leak.
This was also the last missing piece that allows us to remove the
UNLEAK() in "cmd_diff" and "cmd_diff_index", which allows us to use
those commands as a canary for general leaks in the revisions API. See
[1] for further rationale, and 886e1084d7
(builtin/: add UNLEAKs,
2017-10-01) for the commit that added the UNLEAK() there.
1. https://lore.kernel.org/git/220218.861r00ib86.gmgdl@evledraar.gmail.com/
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
59 lines
992 B
Bash
Executable File
59 lines
992 B
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Copyright (c) 2010 Bo Yang
|
|
#
|
|
|
|
test_description='Test --follow should always find copies hard in git log.
|
|
|
|
'
|
|
|
|
TEST_PASSES_SANITIZE_LEAK=true
|
|
. ./test-lib.sh
|
|
. "$TEST_DIRECTORY"/lib-diff.sh
|
|
|
|
echo >path0 'Line 1
|
|
Line 2
|
|
Line 3
|
|
'
|
|
|
|
test_expect_success \
|
|
'add a file path0 and commit.' \
|
|
'git add path0 &&
|
|
git commit -m "Add path0"'
|
|
|
|
echo >path0 'New line 1
|
|
New line 2
|
|
New line 3
|
|
'
|
|
test_expect_success \
|
|
'Change path0.' \
|
|
'git add path0 &&
|
|
git commit -m "Change path0"'
|
|
|
|
cat <path0 >path1
|
|
test_expect_success \
|
|
'copy path0 to path1.' \
|
|
'git add path1 &&
|
|
git commit -m "Copy path1 from path0"'
|
|
|
|
test_expect_success \
|
|
'find the copy path0 -> path1 harder' \
|
|
'git log --follow --name-status --pretty="format:%s" path1 > current'
|
|
|
|
cat >expected <<\EOF
|
|
Copy path1 from path0
|
|
C100 path0 path1
|
|
|
|
Change path0
|
|
M path0
|
|
|
|
Add path0
|
|
A path0
|
|
EOF
|
|
|
|
test_expect_success \
|
|
'validate the output.' \
|
|
'compare_diff_patch current expected'
|
|
|
|
test_done
|