view src/testdir/test77a.in @ 25733:4b2616ffe32b v8.2.3402

patch 8.2.3402: invalid memory access when using :retab with large value Commit: https://github.com/vim/vim/commit/b7081e135a16091c93f6f5f7525a5c58fb7ca9f9 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Sep 4 18:47:28 2021 +0200 patch 8.2.3402: invalid memory access when using :retab with large value Problem: Invalid memory access when using :retab with large value. Solution: Check the number is positive.
author Bram Moolenaar <Bram@vim.org>
date Sat, 04 Sep 2021 19:00:03 +0200
parents e705ea6e855b
children
line wrap: on
line source

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.

VMS does not have CKSUM but has a built in CHECKSUM - it should be used
STARTTEST
:silent! while 0
:  e! test.ok
:  w! test.out
:  qa!
:silent! endwhile
:if !has("vms")
: 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 !@test77a.com Xtest.
:s/\s/ /g
:set fileformat&
:.w! test.out
:qa!
ENDTEST