patch 9.0.0013: reproducing memory access errors can be difficult
Problem: Reproducing memory access errors can be difficult.
Solution: When testing, copy each line to allocated memory, so that valgrind
can detect accessing memory before and/or after it. Fix uncovered
problems.
diff --git a/src/testdir/runtest.vim b/src/testdir/runtest.vim
index c7d5704..ce60c72 100644
--- a/src/testdir/runtest.vim
+++ b/src/testdir/runtest.vim
@@ -154,6 +154,10 @@
" Prepare for calling test_garbagecollect_now().
let v:testing = 1
+" By default, copy each buffer line into allocated memory, so that valgrind can
+" detect accessing memory before and after it.
+call test_override('alloc_lines', 1)
+
" Support function: get the alloc ID by name.
function GetAllocId(name)
exe 'split ' . s:srcdir . '/alloc.h'
@@ -182,7 +186,7 @@
" mode message.
set noshowmode
- " Clear any overrides.
+ " Clear any overrides, except "alloc_lines".
call test_override('ALL', 0)
" Some tests wipe out buffers. To be consistent, always wipe out all