diff options
Diffstat (limited to 'third_party/git/t/t8014-blame-ignore-fuzzy.sh')
-rwxr-xr-x | third_party/git/t/t8014-blame-ignore-fuzzy.sh | 437 |
1 files changed, 0 insertions, 437 deletions
diff --git a/third_party/git/t/t8014-blame-ignore-fuzzy.sh b/third_party/git/t/t8014-blame-ignore-fuzzy.sh deleted file mode 100755 index e68e6115a66d..000000000000 --- a/third_party/git/t/t8014-blame-ignore-fuzzy.sh +++ /dev/null @@ -1,437 +0,0 @@ -#!/bin/sh - -test_description='git blame ignore fuzzy heuristic' -. ./test-lib.sh - -pick_author='s/^[0-9a-f^]* *(\([^ ]*\) .*/\1/' - -# Each test is composed of 4 variables: -# titleN - the test name -# aN - the initial content -# bN - the final content -# expectedN - the line numbers from aN that we expect git blame -# on bN to identify, or "Final" if bN itself should -# be identified as the origin of that line. - -# We start at test 2 because setup will show as test 1 -title2="Regression test for partially overlapping search ranges" -cat <<EOF >a2 -1 -2 -3 -abcdef -5 -6 -7 -ijkl -9 -10 -11 -pqrs -13 -14 -15 -wxyz -17 -18 -19 -EOF -cat <<EOF >b2 -abcde -ijk -pqr -wxy -EOF -cat <<EOF >expected2 -4 -8 -12 -16 -EOF - -title3="Combine 3 lines into 2" -cat <<EOF >a3 -if ((maxgrow==0) || - ( single_line_field && (field->dcols < maxgrow)) || - (!single_line_field && (field->drows < maxgrow))) -EOF -cat <<EOF >b3 -if ((maxgrow == 0) || (single_line_field && (field->dcols < maxgrow)) || - (!single_line_field && (field->drows < maxgrow))) { -EOF -cat <<EOF >expected3 -2 -3 -EOF - -title4="Add curly brackets" -cat <<EOF >a4 - if (rows) *rows = field->rows; - if (cols) *cols = field->cols; - if (frow) *frow = field->frow; - if (fcol) *fcol = field->fcol; -EOF -cat <<EOF >b4 - if (rows) { - *rows = field->rows; - } - if (cols) { - *cols = field->cols; - } - if (frow) { - *frow = field->frow; - } - if (fcol) { - *fcol = field->fcol; - } -EOF -cat <<EOF >expected4 -1 -1 -Final -2 -2 -Final -3 -3 -Final -4 -4 -Final -EOF - - -title5="Combine many lines and change case" -cat <<EOF >a5 -for(row=0,pBuffer=field->buf; - row<height; - row++,pBuffer+=width ) -{ - if ((len = (int)( After_End_Of_Data( pBuffer, width ) - pBuffer )) > 0) - { - wmove( win, row, 0 ); - waddnstr( win, pBuffer, len ); -EOF -cat <<EOF >b5 -for (Row = 0, PBuffer = field->buf; Row < Height; Row++, PBuffer += Width) { - if ((Len = (int)(afterEndOfData(PBuffer, Width) - PBuffer)) > 0) { - wmove(win, Row, 0); - waddnstr(win, PBuffer, Len); -EOF -cat <<EOF >expected5 -1 -5 -7 -8 -EOF - -title6="Rename and combine lines" -cat <<EOF >a6 -bool need_visual_update = ((form != (FORM *)0) && - (form->status & _POSTED) && - (form->current==field)); - -if (need_visual_update) - Synchronize_Buffer(form); - -if (single_line_field) -{ - growth = field->cols * amount; - if (field->maxgrow) - growth = Minimum(field->maxgrow - field->dcols,growth); - field->dcols += growth; - if (field->dcols == field->maxgrow) -EOF -cat <<EOF >b6 -bool NeedVisualUpdate = ((Form != (FORM *)0) && (Form->status & _POSTED) && - (Form->current == field)); - -if (NeedVisualUpdate) { - synchronizeBuffer(Form); -} - -if (SingleLineField) { - Growth = field->cols * amount; - if (field->maxgrow) { - Growth = Minimum(field->maxgrow - field->dcols, Growth); - } - field->dcols += Growth; - if (field->dcols == field->maxgrow) { -EOF -cat <<EOF >expected6 -1 -3 -4 -5 -6 -Final -7 -8 -10 -11 -12 -Final -13 -14 -EOF - -# Both lines match identically so position must be used to tie-break. -title7="Same line twice" -cat <<EOF >a7 -abc -abc -EOF -cat <<EOF >b7 -abcd -abcd -EOF -cat <<EOF >expected7 -1 -2 -EOF - -title8="Enforce line order" -cat <<EOF >a8 -abcdef -ghijkl -ab -EOF -cat <<EOF >b8 -ghijk -abcd -EOF -cat <<EOF >expected8 -2 -3 -EOF - -title9="Expand lines and rename variables" -cat <<EOF >a9 -int myFunction(int ArgumentOne, Thing *ArgTwo, Blah XuglyBug) { - Squiggle FabulousResult = squargle(ArgumentOne, *ArgTwo, - XuglyBug) + EwwwGlobalWithAReallyLongNameYepTooLong; - return FabulousResult * 42; -} -EOF -cat <<EOF >b9 -int myFunction(int argument_one, Thing *arg_asdfgh, - Blah xugly_bug) { - Squiggle fabulous_result = squargle(argument_one, - *arg_asdfgh, xugly_bug) - + g_ewww_global_with_a_really_long_name_yep_too_long; - return fabulous_result * 42; -} -EOF -cat <<EOF >expected9 -1 -1 -2 -3 -3 -4 -5 -EOF - -title10="Two close matches versus one less close match" -cat <<EOF >a10 -abcdef -abcdef -ghijkl -EOF -cat <<EOF >b10 -gh -abcdefx -EOF -cat <<EOF >expected10 -Final -2 -EOF - -# The first line of b matches best with the last line of a, but the overall -# match is better if we match it with the first line of a. -title11="Piggy in the middle" -cat <<EOF >a11 -abcdefg -ijklmn -abcdefgh -EOF -cat <<EOF >b11 -abcdefghx -ijklm -EOF -cat <<EOF >expected11 -1 -2 -EOF - -title12="No trailing newline" -printf "abc\ndef" >a12 -printf "abx\nstu" >b12 -cat <<EOF >expected12 -1 -Final -EOF - -title13="Reorder includes" -cat <<EOF >a13 -#include "c.h" -#include "b.h" -#include "a.h" -#include "e.h" -#include "d.h" -EOF -cat <<EOF >b13 -#include "a.h" -#include "b.h" -#include "c.h" -#include "d.h" -#include "e.h" -EOF -cat <<EOF >expected13 -3 -2 -1 -5 -4 -EOF - -last_test=13 - -test_expect_success setup ' - for i in $(test_seq 2 $last_test) - do - # Append each line in a separate commit to make it easy to - # check which original line the blame output relates to. - - line_count=0 && - while IFS= read line - do - line_count=$((line_count+1)) && - echo "$line" >>"$i" && - git add "$i" && - test_tick && - GIT_AUTHOR_NAME="$line_count" git commit -m "$line_count" - done <"a$i" - done && - - for i in $(test_seq 2 $last_test) - do - # Overwrite the files with the final content. - cp b$i $i && - git add $i - done && - test_tick && - - # Commit the final content all at once so it can all be - # referred to with the same commit ID. - GIT_AUTHOR_NAME=Final git commit -m Final && - - IGNOREME=$(git rev-parse HEAD) -' - -for i in $(test_seq 2 $last_test); do - eval title="\$title$i" - test_expect_success "$title" \ - "git blame -M9 --ignore-rev $IGNOREME $i >output && - sed -e \"$pick_author\" output >actual && - test_cmp expected$i actual" -done - -# This invoked a null pointer dereference when the chunk callback was called -# with a zero length parent chunk and there were no more suspects. -test_expect_success 'Diff chunks with no suspects' ' - test_write_lines xy1 A B C xy1 >file && - git add file && - test_tick && - GIT_AUTHOR_NAME=1 git commit -m 1 && - - test_write_lines xy2 A B xy2 C xy2 >file && - git add file && - test_tick && - GIT_AUTHOR_NAME=2 git commit -m 2 && - REV_2=$(git rev-parse HEAD) && - - test_write_lines xy3 A >file && - git add file && - test_tick && - GIT_AUTHOR_NAME=3 git commit -m 3 && - REV_3=$(git rev-parse HEAD) && - - test_write_lines 1 1 >expected && - - git blame --ignore-rev $REV_2 --ignore-rev $REV_3 file >output && - sed -e "$pick_author" output >actual && - - test_cmp expected actual - ' - -test_expect_success 'position matching' ' - test_write_lines abc def >file2 && - git add file2 && - test_tick && - GIT_AUTHOR_NAME=1 git commit -m 1 && - - test_write_lines abc def abc def >file2 && - git add file2 && - test_tick && - GIT_AUTHOR_NAME=2 git commit -m 2 && - - test_write_lines abcx defx abcx defx >file2 && - git add file2 && - test_tick && - GIT_AUTHOR_NAME=3 git commit -m 3 && - REV_3=$(git rev-parse HEAD) && - - test_write_lines abcy defy abcx defx >file2 && - git add file2 && - test_tick && - GIT_AUTHOR_NAME=4 git commit -m 4 && - REV_4=$(git rev-parse HEAD) && - - test_write_lines 1 1 2 2 >expected && - - git blame --ignore-rev $REV_3 --ignore-rev $REV_4 file2 >output && - sed -e "$pick_author" output >actual && - - test_cmp expected actual - ' - -# This fails if each blame entry is processed independently instead of -# processing each diff change in full. -test_expect_success 'preserve order' ' - test_write_lines bcde >file3 && - git add file3 && - test_tick && - GIT_AUTHOR_NAME=1 git commit -m 1 && - - test_write_lines bcde fghij >file3 && - git add file3 && - test_tick && - GIT_AUTHOR_NAME=2 git commit -m 2 && - - test_write_lines bcde fghij abcd >file3 && - git add file3 && - test_tick && - GIT_AUTHOR_NAME=3 git commit -m 3 && - - test_write_lines abcdx fghijx bcdex >file3 && - git add file3 && - test_tick && - GIT_AUTHOR_NAME=4 git commit -m 4 && - REV_4=$(git rev-parse HEAD) && - - test_write_lines abcdx fghijy bcdex >file3 && - git add file3 && - test_tick && - GIT_AUTHOR_NAME=5 git commit -m 5 && - REV_5=$(git rev-parse HEAD) && - - test_write_lines 1 2 3 >expected && - - git blame --ignore-rev $REV_4 --ignore-rev $REV_5 file3 >output && - sed -e "$pick_author" output >actual && - - test_cmp expected actual - ' - -test_done |