diff src/testdir/test_blob.vim @ 25495:7144d2ffc86b v8.2.3284

patch 8.2.3284: no error for insert() or remove() changing a locked blob Commit: https://github.com/vim/vim/commit/80d7395dcfe96158428da6bb3d28a6eee1244e28 Author: Sean Dewar <seandewar@users.noreply.github.com> Date: Wed Aug 4 19:25:54 2021 +0200 patch 8.2.3284: no error for insert() or remove() changing a locked blob Problem: No error for insert() or remove() changing a locked blob. Solution: Check a blob is not locked before changing it. (Sean Dewar, closes #8696)
author Bram Moolenaar <Bram@vim.org>
date Wed, 04 Aug 2021 19:30:04 +0200
parents e8e2c4d33b9b
children 8d55e978f95b
line wrap: on
line diff
--- a/src/testdir/test_blob.vim
+++ b/src/testdir/test_blob.vim
@@ -428,6 +428,23 @@ func Test_blob_func_remove()
       call remove(test_null_blob(), 1, 2)
   END
   call CheckLegacyAndVim9Failure(lines, 'E979:')
+
+  let lines =<< trim END
+      let b = 0zDEADBEEF
+      lockvar b
+      call remove(b, 0)
+      unlockvar b
+  END
+  call CheckScriptFailure(lines, 'E741:')
+
+  " can only check at script level, not in a :def function
+  let lines =<< trim END
+      vim9script
+      var b = 0zDEADBEEF
+      lockvar b
+      remove(b, 0)
+  END
+  call CheckScriptFailure(lines, 'E741:')
 endfunc
 
 func Test_blob_read_write()
@@ -543,6 +560,22 @@ func Test_blob_insert()
       insert(test_null_blob(), 0x33)
   END
   call CheckDefExecAndScriptFailure(lines, 'E1131:')
+
+  let lines =<< trim END
+      let b = 0zDEADBEEF
+      lockvar b
+      call insert(b, 3)
+      unlockvar b
+  END
+  call CheckScriptFailure(lines, 'E741:')
+
+  let lines =<< trim END
+      vim9script
+      var b = 0zDEADBEEF
+      lockvar b
+      insert(b, 3)
+  END
+  call CheckScriptFailure(lines, 'E741:')
 endfunc
 
 func Test_blob_reverse()