aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/testdir/test77.in30
-rw-r--r--src/nvim/testdir/test77.ok1
-rw-r--r--test/functional/legacy/077_mf_hash_grow_spec.lua45
3 files changed, 45 insertions, 31 deletions
diff --git a/src/nvim/testdir/test77.in b/src/nvim/testdir/test77.in
deleted file mode 100644
index 0dbc4fcbaf..0000000000
--- a/src/nvim/testdir/test77.in
+++ /dev/null
@@ -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
-
diff --git a/src/nvim/testdir/test77.ok b/src/nvim/testdir/test77.ok
deleted file mode 100644
index 11f148c73f..0000000000
--- a/src/nvim/testdir/test77.ok
+++ /dev/null
@@ -1 +0,0 @@
-3678979763 14888896 Xtest
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)