]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.1.1442: tests: Test_diff_fold_redraw() is insufficient v9.1.1442
authorGary Johnson <garyjohn@spocom.com>
Mon, 9 Jun 2025 18:19:35 +0000 (20:19 +0200)
committerChristian Brabandt <cb@256bit.org>
Mon, 9 Jun 2025 18:19:35 +0000 (20:19 +0200)
Problem:  tests: Test_diff_fold_redraw() is insufficient
          (after v9.1.1439, Christ van Willegen)
Solution: improve the test (Gary Johnson)

The original Test_diff_fold_redraw() function, added 2025-06-08 at patch
9.1.1439, had a bug and didn't do a very good job of testing the fold
behavior.  This new version is simpler and more thorough.

The bug was that it checked the fold state of one window twice instead
of checking both windows.

closes: #17492

Signed-off-by: Gary Johnson <garyjohn@spocom.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
src/testdir/test_diffmode.vim
src/version.c

index 5cd98717089e544e3dd04963f5a15703a8220d11..1ab194568b2ff4be75ea3e2850ebcc50cb581815 100644 (file)
@@ -52,32 +52,26 @@ endfunc
 
 " Test for diff folding redraw after last diff is resolved
 func Test_diff_fold_redraw()
-  " Set up two files with the minimal case
+  " Set up two files with a minimal case.
   call writefile(['Paragraph 1', '', 'Paragraph 2', '', 'Paragraph 3'], 'Xfile1')
   call writefile(['Paragraph 1', '', 'Paragraph 3'], 'Xfile2')
 
-  " Open in diff mode
-  exe 'edit Xfile1'
-  exe 'vert diffsplit Xfile2'
+  " Open in diff mode.
+  edit Xfile1
+  vert diffsplit Xfile2
 
-  " Ensure both windows are in diff mode and folds are enabled
-  set foldmethod=diff
-  set foldenable
-
-  " Go to the diff and apply dp to copy Paragraph 2 to Xfile2
-  normal! ]c
-  normal! dp
-
-  " Redraw and check folds
-  redraw!
-  let win1_fold = foldclosed(1)
-  let win2_fold = foldclosed(1)
+  " Go to the diff and apply :diffput to copy Paragraph 2 to Xfile2.
+  wincmd l
+  3
+  diffput
 
-  " Both windows should be fully folded (foldclosed returns 1 for top fold)
-  call assert_equal(1, win1_fold)
-  call assert_equal(1, win2_fold)
+  " Check that the folds in both windows are closed and extend from the first
+  " line of the buffer to the last line of the buffer.
+  call assert_equal(1, foldclosed(line("$")))
+  wincmd h
+  call assert_equal(1, foldclosed(line("$")))
 
-  " Clean up
+  " Clean up.
   bwipe!
   bwipe!
   call delete('Xfile1')
index 7964c14ad2643132b27a9a890395d0f1d7b99271..6e0081e9bb167bb055f09809689c7beef923877c 100644 (file)
@@ -709,6 +709,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1442,
 /**/
     1441,
 /**/