aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/testdir/load.vim
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/testdir/load.vim')
-rw-r--r--src/nvim/testdir/load.vim30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/nvim/testdir/load.vim b/src/nvim/testdir/load.vim
new file mode 100644
index 0000000000..2e01338dd0
--- /dev/null
+++ b/src/nvim/testdir/load.vim
@@ -0,0 +1,30 @@
+function! s:load_factor() abort
+ let timeout = 200
+ let times = []
+
+ for _ in range(5)
+ let g:val = 0
+ call timer_start(timeout, {-> nvim_set_var('val', 1)})
+ let start = reltime()
+ while 1
+ sleep 10m
+ if g:val == 1
+ let g:waited_in_ms = float2nr(reltimefloat(reltime(start)) * 1000)
+ break
+ endif
+ endwhile
+ call insert(times, g:waited_in_ms, 0)
+ endfor
+
+ let longest = max(times)
+ let factor = (longest + 50.0) / timeout
+
+ return factor
+endfunction
+
+" Compute load factor only once.
+let s:load_factor = s:load_factor()
+
+function! LoadAdjust(num) abort
+ return float2nr(ceil(a:num * s:load_factor))
+endfunction