aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorGustaf Lindstedt <gustaflindstedt@gmail.com>2015-02-23 19:30:55 +0800
committerJustin M. Keyes <justinkz@gmail.com>2015-03-08 23:27:54 -0400
commit2d65ccf06cbd1b1a383bd01a24872224b6fd0e83 (patch)
tree5169c33eba168e5bb209c251d133c2029b00c014 /test
parent927ff6f32647592988b2eae6d99e7e49a89948f4 (diff)
downloadrneovim-2d65ccf06cbd1b1a383bd01a24872224b6fd0e83.tar.gz
rneovim-2d65ccf06cbd1b1a383bd01a24872224b6fd0e83.tar.bz2
rneovim-2d65ccf06cbd1b1a383bd01a24872224b6fd0e83.zip
test: migrate legacy test 77 #2046
Migrate legacy test 77 which tests mf_hash_grow() to lua/busted.
Diffstat (limited to 'test')
-rw-r--r--test/functional/legacy/077_mf_hash_grow_spec.lua45
1 files changed, 45 insertions, 0 deletions
diff --git a/test/functional/legacy/077_mf_hash_grow_spec.lua b/test/functional/legacy/077_mf_hash_grow_spec.lua
new file mode 100644
index 0000000000..01d916ef04
--- /dev/null
+++ b/test/functional/legacy/077_mf_hash_grow_spec.lua
@@ -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)