test: migrate legacy test 77 #2046

Migrate legacy test 77 which tests mf_hash_grow() to lua/busted.
This commit is contained in:
Gustaf Lindstedt 2015-02-23 19:30:55 +08:00 committed by Justin M. Keyes
parent 927ff6f326
commit 2d65ccf06c
3 changed files with 45 additions and 31 deletions

View File

@ -1,30 +0,0 @@
Inserts 2 million lines with consecutive integers starting from 1
(essentially, the output of GNU's seq 1 2000000), writes them to Xtest
and writes its cksum to test.out.
We need 2 million lines to trigger a call to mf_hash_grow(). If it would mess
up the lines the checksum would differ.
cksum is part of POSIX and so should be available on most Unixes.
If it isn't available then the test will be skipped.
STARTTEST
:so small.vim
:if !executable("cksum")
: e! test.ok
: w! test.out
: qa!
:endif
:set fileformat=unix undolevels=-1
ggdG
:let i = 1
:while i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhile
ggdd
:w! Xtest
:r !cksum Xtest
:s/\s/ /g
:set fileformat&
:.w! test.out
:qa!
ENDTEST

View File

@ -1 +0,0 @@
3678979763 14888896 Xtest

View File

@ -0,0 +1,45 @@
-- Inserts 2 million lines with consecutive integers starting from 1
-- (essentially, the output of GNU's seq 1 2000000), writes them to Xtest
-- and calculates its cksum.
-- We need 2 million lines to trigger a call to mf_hash_grow(). If it would mess
-- up the lines the checksum would differ.
-- cksum is part of POSIX and so should be available on most Unixes.
-- If it isn't available then the test will be skipped.
local helpers = require('test.functional.helpers')
local feed, insert, source = helpers.feed, helpers.insert, helpers.source
local clear, execute, expect = helpers.clear, helpers.execute, helpers.expect
describe('mf_hash_grow()', function()
setup(clear)
-- Check to see if cksum exists, otherwise skip the test
if os.execute('which cksum 2>&1 > /dev/null') ~= 0 then
pending("was not tested because cksum was not found")
else
it('is working', function()
execute('set fileformat=unix undolevels=-1')
-- Fill the buffer with numbers 1 - 2000000
execute('let i = 1')
execute('while i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhile')
-- Delete empty first line, save to Xtest, and clear buffer
feed('ggdd<cr>')
execute('w! Xtest')
feed('ggdG<cr>')
-- Calculate the cksum of Xtest and delete first line
execute('r !cksum Xtest')
feed('ggdd<cr>')
-- Assert correct output of cksum.
expect([[
3678979763 14888896 Xtest]])
end)
end
teardown(function()
os.remove('Xtest')
end)
end)