patch 7.4.1073
Problem: Alloc_id depends on numbers, may use the same one twice. It's not
clear from the number what it's for.
Solution: Use an enum. Add a function to lookup the enum value from the
name.
diff --git a/src/testdir/runtest.vim b/src/testdir/runtest.vim
index 734039a..72b21d5 100644
--- a/src/testdir/runtest.vim
+++ b/src/testdir/runtest.vim
@@ -43,6 +43,22 @@
" Output all messages in English.
lang mess C
+let s:srcdir = expand('%:p:h:h')
+
+" Support function: get the alloc ID by name.
+function GetAllocId(name)
+ exe 'split ' . s:srcdir . '/alloc.h'
+ /typedef enum/
+ let top = getline('.')
+ let lnum = search('aid_' . a:name . ',')
+ if lnum == 0
+ call add(v:errors, 'Alloc ID ' . a:name . ' not defined')
+ endif
+ close
+ return lnum - top
+endfunc
+
+
" Source the test script. First grab the file name, in case the script
" navigates away.
let testname = expand('%')
diff --git a/src/testdir/test_quickfix.vim b/src/testdir/test_quickfix.vim
index fb05b7d..b9f3f7b 100644
--- a/src/testdir/test_quickfix.vim
+++ b/src/testdir/test_quickfix.vim
@@ -278,35 +278,35 @@
endfunction
function Test_nomem()
- call alloc_fail(1, 0, 0)
+ call alloc_fail(GetAllocId('qf_dirname_start'), 0, 0)
try
vimgrep vim runtest.vim
catch
call assert_true(v:exception =~ 'E342')
endtry
- call alloc_fail(2, 0, 0)
+ call alloc_fail(GetAllocId('qf_dirname_now'), 0, 0)
try
vimgrep vim runtest.vim
catch
call assert_true(v:exception =~ 'E342')
endtry
- call alloc_fail(3, 0, 0)
+ call alloc_fail(GetAllocId('qf_namebuf'), 0, 0)
try
cfile runtest.vim
catch
call assert_true(v:exception =~ 'E342')
endtry
- call alloc_fail(4, 0, 0)
+ call alloc_fail(GetAllocId('qf_errmsg'), 0, 0)
try
cfile runtest.vim
catch
call assert_true(v:exception =~ 'E342')
endtry
- call alloc_fail(5, 0, 0)
+ call alloc_fail(GetAllocId('qf_pattern'), 0, 0)
try
cfile runtest.vim
catch