summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2021-05-18 19:19:03 +0200
committerBram Moolenaar <Bram@vim.org>2021-05-18 19:19:03 +0200
commit485b62710004431a16feb4eb861365d082304a08 (patch)
tree16cf5ca03ba7957b4ba1bfad01621dfe3ce19590
parentcbe178e3dc4ad45d9b2ed5e713e7c4cc88bf8b8b (diff)
downloadvim-git-485b62710004431a16feb4eb861365d082304a08.tar.gz
patch 8.2.2869: using unified diff is not testedv8.2.2869
Problem: Using unified diff is not tested. Solution: Test all cases also with unified diff. (issue #8197)
-rw-r--r--src/testdir/test_diffmode.vim28
-rw-r--r--src/version.c2
2 files changed, 27 insertions, 3 deletions
diff --git a/src/testdir/test_diffmode.vim b/src/testdir/test_diffmode.vim
index d09d74149..4696456a2 100644
--- a/src/testdir/test_diffmode.vim
+++ b/src/testdir/test_diffmode.vim
@@ -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
@@ -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.
@@ -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")
@@ -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()
diff --git a/src/version.c b/src/version.c
index 48f755408..0b17d91af 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2869,
+/**/
2868,
/**/
2867,