diff options
-rw-r--r-- | src/nvim/testdir/test77.in | 30 | ||||
-rw-r--r-- | src/nvim/testdir/test77.ok | 1 | ||||
-rw-r--r-- | test/functional/legacy/077_mf_hash_grow_spec.lua | 45 |
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) |