changeset 10984:c0d5e8ab1452 v8.0.0381

patch 8.0.0381: diff mode is not sufficiently tested commit https://github.com/vim/vim/commit/aeb661e1f4a491286ef7af8c3105aff1f3b16f1c Author: Bram Moolenaar <Bram@vim.org> Date: Sun Feb 26 19:59:59 2017 +0100 patch 8.0.0381: diff mode is not sufficiently tested Problem: Diff mode is not sufficiently tested. Solution: Add more diff mode tests. (Dominique Pelle, closes https://github.com/vim/vim/issues/1515)
author Christian Brabandt <cb@256bit.org>
date Sun, 26 Feb 2017 20:15:04 +0100
parents 40f5c653f7df
children 09f7827e6d80
files src/testdir/test_diffmode.vim src/version.c
diffstat 2 files changed, 77 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/testdir/test_diffmode.vim
+++ b/src/testdir/test_diffmode.vim
@@ -272,3 +272,78 @@ func Test_setting_cursor()
   call delete('Xtest1')
   call delete('Xtest2')
 endfunc
+
+func Test_diff_move_to()
+  new
+  call setline(1, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
+  diffthis
+  vnew
+  call setline(1, [1, '2x', 3, 4, 4, 5, '6x', 7, '8x', 9, '10x'])
+  diffthis
+  norm ]c
+  call assert_equal(2, line('.'))
+  norm 3]c
+  call assert_equal(9, line('.'))
+  norm 10]c
+  call assert_equal(11, line('.'))
+  norm [c
+  call assert_equal(9, line('.'))
+  norm 2[c
+  call assert_equal(5, line('.'))
+  norm 10[c
+  call assert_equal(2, line('.'))
+  %bwipe!
+endfunc
+
+func Test_diffpatch()
+  " The patch program on MS-Windows may fail or hang.
+  if !executable('patch') || !has('unix')
+    return
+  endif
+  new
+  insert
+***************
+*** 1,3 ****
+  1
+! 2
+  3
+--- 1,4 ----
+  1
+! 2x
+  3
++ 4
+.
+  saveas Xpatch
+  bwipe!
+  new
+  call assert_fails('diffpatch Xpatch', 'E816:')
+  call setline(1, ['1', '2', '3'])
+  diffpatch Xpatch
+  call assert_equal(['1', '2x', '3', '4'], getline(1, '$'))
+  call delete('Xpatch')
+  bwipe!
+endfunc
+
+func Test_diff_too_many_buffers()
+  for i in range(1, 8)
+    exe "new Xtest" . i
+    diffthis
+  endfor
+  new Xtest9
+  call assert_fails('diffthis', 'E96:')
+  %bwipe!
+endfunc
+
+func Test_diff_nomodifiable()
+  new
+  call setline(1, [1, 2, 3, 4])
+  setl nomodifiable
+  diffthis
+  vnew
+  call setline(1, ['1x', 2, 3, 3, 4])
+  diffthis
+  call assert_fails('norm dp', 'E793:')
+  setl nomodifiable
+  call assert_fails('norm do', 'E21:')
+  %bwipe!
+endfunc
--- a/src/version.c
+++ b/src/version.c
@@ -765,6 +765,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    381,
+/**/
     380,
 /**/
     379,