aboutsummaryrefslogtreecommitdiff
path: root/test/unit/marktree_spec.lua
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2021-06-22 13:48:22 +0200
committerGitHub <noreply@github.com>2021-06-22 13:48:22 +0200
commitb601f2548c124e3a2b110abdfd62b80b12352e72 (patch)
treea549dd5d4b2100dd146a785fdc304f0b157d91a8 /test/unit/marktree_spec.lua
parent9a39a11807d1cf682365262b7cca485a8fb38945 (diff)
parent43479f0ad6343ee04e0dd2a0251000cae1948bfd (diff)
downloadrneovim-b601f2548c124e3a2b110abdfd62b80b12352e72.tar.gz
rneovim-b601f2548c124e3a2b110abdfd62b80b12352e72.tar.bz2
rneovim-b601f2548c124e3a2b110abdfd62b80b12352e72.zip
Merge pull request #14719 from snezhniylis/marktree_delete_node_iter_fix
Fix deletable nodes in MarkTree sometimes getting skipped
Diffstat (limited to 'test/unit/marktree_spec.lua')
-rw-r--r--test/unit/marktree_spec.lua15
1 files changed, 15 insertions, 0 deletions
diff --git a/test/unit/marktree_spec.lua b/test/unit/marktree_spec.lua
index 56acc0f93e..cd9c7bef13 100644
--- a/test/unit/marktree_spec.lua
+++ b/test/unit/marktree_spec.lua
@@ -186,5 +186,20 @@ describe('marktree', function()
lib.marktree_check(tree)
shadoworder(tree, shadow, iter2)
end
+
+ -- Check iterator validity for 2 specific edge cases:
+ -- https://github.com/neovim/neovim/pull/14719
+ lib.marktree_clear(tree)
+ for i = 1,20 do
+ lib.marktree_put(tree, i, i, false)
+ end
+
+ lib.marktree_itr_get(tree, 10, 10, iter)
+ lib.marktree_del_itr(tree, iter, false)
+ eq(11, iter[0].node.key[iter[0].i].pos.col)
+
+ lib.marktree_itr_get(tree, 11, 11, iter)
+ lib.marktree_del_itr(tree, iter, false)
+ eq(12, iter[0].node.key[iter[0].i].pos.col)
end)
end)