Skip to content

Commit

Permalink
patch 8.2.2869: using unified diff is not tested
Browse files Browse the repository at this point in the history
Problem:    Using unified diff is not tested.
Solution:   Test all cases also with unified diff. (issue #8197)
  • Loading branch information
brammool committed May 18, 2021
1 parent cbe178e commit 485b627
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 3 deletions.
28 changes: 25 additions & 3 deletions src/testdir/test_diffmode.vim
Expand Up @@ -624,7 +624,7 @@ func Test_diffexpr()
CheckExecutable diff

func DiffExpr()
" Prepent some text to check diff type detection
" Prepend some text to check diff type detection
call writefile(['warning', ' message'], v:fname_out)
silent exe '!diff ' . v:fname_in . ' ' . v:fname_new . '>>' . v:fname_out
endfunc
Expand Down Expand Up @@ -789,9 +789,15 @@ func VerifyBoth(buf, dumpfile, extra)
for cmd in [":set diffopt=filler" . a:extra . "\<CR>:", ":set diffopt+=internal\<CR>:"]
call term_sendkeys(a:buf, cmd)
if VerifyScreenDump(a:buf, a:dumpfile, {}, cmd =~ 'internal' ? 'internal' : 'external')
break " don't let the next iteration overwrite the "failed" file.
" don't let the next iteration overwrite the "failed" file.
return
endif
endfor

" also test unified diff
call term_sendkeys(a:buf, ":call SetupUnified()\<CR>:")
call VerifyScreenDump(a:buf, a:dumpfile, {}, 'unified')
call term_sendkeys(a:buf, ":call StopUnified()\<CR>:")
endfunc

" Verify a screendump with the internal diff only.
Expand All @@ -807,13 +813,28 @@ func Test_diff_screen()
CheckScreendump
CheckFeature menu

let lines =<< trim END
func UnifiedDiffExpr()
" Prepend some text to check diff type detection
call writefile(['warning', ' message'], v:fname_out)
silent exe '!diff -u ' .. v:fname_in .. ' ' .. v:fname_new .. '>>' .. v:fname_out
endfunc
func SetupUnified()
set diffexpr=UnifiedDiffExpr()
endfunc
func StopUnified()
set diffexpr=
endfunc
END
call writefile(lines, 'XdiffSetup')

" clean up already existing swap files, just in case
call delete('.Xfile1.swp')
call delete('.Xfile2.swp')

" Test 1: Add a line in beginning of file 2
call WriteDiffFiles(0, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
let buf = RunVimInTerminal('-d Xfile1 Xfile2', {})
let buf = RunVimInTerminal('-d -S XdiffSetup Xfile1 Xfile2', {})
" Set autoread mode, so that Vim won't complain once we re-write the test
" files
call term_sendkeys(buf, ":set autoread\<CR>\<c-w>w:set autoread\<CR>\<c-w>w")
Expand Down Expand Up @@ -933,6 +954,7 @@ func Test_diff_screen()
call StopVimInTerminal(buf)
call delete('Xfile1')
call delete('Xfile2')
call delete('XdiffSetup')
endfunc

func Test_diff_with_cursorline()
Expand Down
2 changes: 2 additions & 0 deletions src/version.c
Expand Up @@ -750,6 +750,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
2869,
/**/
2868,
/**/
Expand Down

0 comments on commit 485b627

Please sign in to comment.