aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/testdir/load.vim
blob: 5697ee7304ca36066be3561205f6e5c18159082a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
" Also used by: test/functional/helpers.lua

function! s:load_factor() abort
  let timeout = 200
  let times = []

  for _ in range(5)
    let g:val = 0
    let start = reltime()
    call timer_start(timeout, {-> nvim_set_var('val', 1)})
    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 g:test_load_factor = s:load_factor()

function! LoadAdjust(num) abort
  return float2nr(ceil(a:num * g:test_load_factor))
endfunction