diff options
author | Daniel Steinberg <dstein64@users.noreply.github.com> | 2021-06-30 21:24:50 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-30 21:24:50 -0400 |
commit | 8bd699008445d690f8dca87e69a2e73f5f172784 (patch) | |
tree | e7331bae45b6434a9282b20c3f169d6bc323d045 /test/functional/legacy/memory_usage_spec.lua | |
parent | d83bc835b6fad17c666807ecf63e68350416c269 (diff) | |
download | rneovim-8bd699008445d690f8dca87e69a2e73f5f172784.tar.gz rneovim-8bd699008445d690f8dca87e69a2e73f5f172784.tar.bz2 rneovim-8bd699008445d690f8dca87e69a2e73f5f172784.zip |
vim-patch:8.2.1905: the wininfo list may contain stale entries (#14884)
Problem: The wininfo list may contain stale entries.
Solution: When closing a window remove any other entry where the window
pointer is NULL.
https://github.com/vim/vim/commit/4882d983397057ea91c584c5a54aaccf15016d18
Diffstat (limited to 'test/functional/legacy/memory_usage_spec.lua')
-rw-r--r-- | test/functional/legacy/memory_usage_spec.lua | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/test/functional/legacy/memory_usage_spec.lua b/test/functional/legacy/memory_usage_spec.lua index 97ac96804e..0f2d77093a 100644 --- a/test/functional/legacy/memory_usage_spec.lua +++ b/test/functional/legacy/memory_usage_spec.lua @@ -166,4 +166,36 @@ describe('memory usage', function() check_result({before=before, after=after, last=last}, pcall(ok, last.last < upper)) end) + + it('releases memory when closing windows when folds exist', function() + local pid = eval('getpid()') + source([[ + new + " Insert lines + call nvim_buf_set_lines(0, 0, 0, v:false, repeat([''], 999)) + " Create folds + normal! gg + for _ in range(500) + normal! zfjj + endfor + ]]) + poke_eventloop() + local before = monitor_memory_usage(pid) + source([[ + " Split and close window multiple times + for _ in range(1000) + split + close + endfor + ]]) + poke_eventloop() + local after = monitor_memory_usage(pid) + source('bwipe!') + poke_eventloop() + -- Allow for an increase of 5% in memory usage, which accommodates minor fluctuation, + -- but is small enough that if memory were not released (prior to PR #14884), the test + -- would fail. + local upper = before.last * 1.05 + check_result({before=before, after=after}, pcall(ok, after.last <= upper)) + end) end) |