view src/testdir/test78.in @ 10599:2748b23db6bb v8.0.0189

patch 8.0.0189: profile commands are not tested commit https://github.com/vim/vim/commit/296b1f28ca9cedeb55872f306808b2214b519ce7 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jan 15 15:22:33 2017 +0100 patch 8.0.0189: profile commands are not tested Problem: There are no tests for the :profile command. Solution: Add tests. (Dominique Pelle, closes https://github.com/vim/vim/issues/1383)
author Christian Brabandt <cb@256bit.org>
date Sun, 15 Jan 2017 15:30:04 +0100
parents 7fe2c092913e
children ae45d497868f
line wrap: on
line source

Inserts 10000 lines with text to fill the swap file with two levels of pointer
blocks.  Then recovers from the swap file and checks all text is restored.

We need about 10000 lines of 100 characters to get two levels of pointer
blocks.

STARTTEST
:so small.vim
:set nocp fileformat=unix undolevels=-1 viminfo+=nviminfo
:e! Xtest
ggdG
:let text = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789"
:let i = 1
:let linecount = 10000
:while i <= linecount | call append(i - 1, i . text) | let i += 1 | endwhile
:preserve
:" get the name of the swap file
:redir => swapname
:swapname
:redir END
:let swapname = substitute(swapname, '[[:blank:][:cntrl:]]*\(.\{-}\)[[:blank:][:cntrl:]]*$', '\1', '')
:" make a copy of the swap file in Xswap
:set bin
:exe 'sp ' . swapname
:w! Xswap
:echo swapname
:set nobin
:new
:only!
:bwipe! Xtest
:call rename('Xswap', swapname)
:recover Xtest
:call delete(swapname)
:new
:call append(0, 'recovery start')
:wincmd w
:let linedollar = line('$')
:if linedollar < linecount | exe 'wincmd w' | call append(line('$'), "expected " . linecount . " lines but found only " . linedollar) | exe 'wincmd w' | let linecount = linedollar | endif
:let i = 1
:while i <= linecount | if getline(i) != i . text | exe 'wincmd w' | call append(line('$'), i . ' differs') | exe 'wincmd w' | endif | let i += 1 | endwhile
:q!
:call append(line('$'), 'recovery end')
:w! test.out
:qa!
ENDTEST