changeset 24669:d7644bffe128 v8.2.2873

patch 8.2.2873: not enough tests for writing buffers Commit: https://github.com/vim/vim/commit/46aa6f93acb5d932d2893606d980a6b4b8a9594c Author: Yegappan Lakshmanan <yegappan@yahoo.com> Date: Wed May 19 17:15:04 2021 +0200 patch 8.2.2873: not enough tests for writing buffers Problem: Not enough tests for writing buffers. Solution: Add a few more tests. (Yegappan Lakshmanan, closes https://github.com/vim/vim/issues/8229)
author Bram Moolenaar <Bram@vim.org>
date Wed, 19 May 2021 17:30:03 +0200
parents 6f26d4555812
children 8591bb08c6bb
files src/testdir/test_buffer.vim src/testdir/test_cmdline.vim src/testdir/test_functions.vim src/testdir/test_writefile.vim src/version.c
diffstat 5 files changed, 72 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/testdir/test_buffer.vim
+++ b/src/testdir/test_buffer.vim
@@ -381,4 +381,24 @@ func Test_balt()
   call assert_equal('OtherBuffer', bufname())
 endfunc
 
+" Test for the 'maxmem' and 'maxmemtot' options
+func Test_buffer_maxmem()
+  " use 1KB per buffer and 2KB for all the buffers
+  set maxmem=1 maxmemtot=2
+  new
+  let v:errmsg = ''
+  " try opening some files
+  edit test_arglist.vim
+  call assert_equal('test_arglist.vim', bufname())
+  edit test_eval_stuff.vim
+  call assert_equal('test_eval_stuff.vim', bufname())
+  b test_arglist.vim
+  call assert_equal('test_arglist.vim', bufname())
+  b test_eval_stuff.vim
+  call assert_equal('test_eval_stuff.vim', bufname())
+  close
+  call assert_equal('', v:errmsg)
+  set maxmem& maxmemtot&
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab
--- a/src/testdir/test_cmdline.vim
+++ b/src/testdir/test_cmdline.vim
@@ -1309,13 +1309,22 @@ func Test_cmdlineclear_tabenter()
   call delete('XtestCmdlineClearTabenter')
 endfunc
 
-" Test for failure in expanding special keywords in cmdline
+" Test for expanding special keywords in cmdline
 func Test_cmdline_expand_special()
   %bwipe!
   call assert_fails('e #', 'E499:')
   call assert_fails('e <afile>', 'E495:')
   call assert_fails('e <abuf>', 'E496:')
   call assert_fails('e <amatch>', 'E497:')
+
+  call writefile([], 'Xfile.cpp')
+  call writefile([], 'Xfile.java')
+  new Xfile.cpp
+  call feedkeys(":e %:r\<C-A>\<C-B>\"\<CR>", 'xt')
+  call assert_equal('"e Xfile.cpp Xfile.java', @:)
+  close
+  call delete('Xfile.cpp')
+  call delete('Xfile.java')
 endfunc
 
 func Test_cmdwin_jump_to_win()
@@ -1823,5 +1832,24 @@ func Test_cmd_map_cmdlineChanged()
   augroup END
 endfunc
 
+" Test for the 'suffixes' option
+func Test_suffixes_opt()
+  call writefile([], 'Xfile')
+  call writefile([], 'Xfile.c')
+  call writefile([], 'Xfile.o')
+  set suffixes=
+  call feedkeys(":e Xfi*\<C-A>\<C-B>\"\<CR>", 'xt')
+  call assert_equal('"e Xfile Xfile.c Xfile.o', @:)
+  set suffixes=.c
+  call feedkeys(":e Xfi*\<C-A>\<C-B>\"\<CR>", 'xt')
+  call assert_equal('"e Xfile Xfile.o Xfile.c', @:)
+  set suffixes=,,
+  call feedkeys(":e Xfi*\<C-A>\<C-B>\"\<CR>", 'xt')
+  call assert_equal('"e Xfile.c Xfile.o Xfile', @:)
+  set suffixes&
+  call delete('Xfile')
+  call delete('Xfile.c')
+  call delete('Xfile.o')
+endfunc
 
 " vim: shiftwidth=2 sts=2 expandtab
--- a/src/testdir/test_functions.vim
+++ b/src/testdir/test_functions.vim
@@ -2630,6 +2630,7 @@ endfunc
 func Test_glob()
   call assert_equal('', glob(test_null_string()))
   call assert_equal('', globpath(test_null_string(), test_null_string()))
+  call assert_fails("let x = globpath(&rtp, 'syntax/c.vim', [])", 'E745:')
 
   call writefile([], 'Xglob1')
   call writefile([], 'XGLOB2')
--- a/src/testdir/test_writefile.vim
+++ b/src/testdir/test_writefile.vim
@@ -471,7 +471,7 @@ func Test_write_readonly_dir()
   " Root can do it too.
   CheckNotRoot
 
-  call mkdir('Xdir')
+  call mkdir('Xdir/')
   call writefile(['one'], 'Xdir/Xfile1')
   call setfperm('Xdir', 'r-xr--r--')
   " try to create a new file in the directory
@@ -754,7 +754,7 @@ func Test_read_write_bin()
   call assert_equal(0z6E6F656F6C0A, readfile('XNoEolSetEol', 'B'))
 
   call delete('XNoEolSetEol')
-  set ff&
+  set ff& fixeol&
   bwipe! XNoEolSetEol
 endfunc
 
@@ -897,4 +897,22 @@ func Test_write_backup_symlink()
   call delete('Xfile.bak')
 endfunc
 
+" Test for ':write ++bin' and ':write ++nobin'
+func Test_write_binary_file()
+  " create a file without an eol/eof character
+  call writefile(0z616161, 'Xfile1', 'b')
+  new Xfile1
+  write ++bin Xfile2
+  write ++nobin Xfile3
+  call assert_equal(0z616161, readblob('Xfile2'))
+  if has('win32')
+    call assert_equal(0z6161610D.0A, readblob('Xfile3'))
+  else
+    call assert_equal(0z6161610A, readblob('Xfile3'))
+  endif
+  call delete('Xfile1')
+  call delete('Xfile2')
+  call delete('Xfile3')
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab
--- 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 */
 /**/
+    2873,
+/**/
     2872,
 /**/
     2871,