summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--runtime/syntax/testdir/README.txt14
-rw-r--r--runtime/syntax/testdir/runtest.vim12
2 files changed, 25 insertions, 1 deletions
diff --git a/runtime/syntax/testdir/README.txt b/runtime/syntax/testdir/README.txt
index 7628ef149e..40757759b7 100644
--- a/runtime/syntax/testdir/README.txt
+++ b/runtime/syntax/testdir/README.txt
@@ -48,6 +48,19 @@ Continuing the Java example:
// TEST_SETUP let g:java_minlines = 5
class Test { }
+As an alternative, setup commands can be included in an external Vim script
+file in the "input/setup" directory. This script file must have the same base
+name as the input file.
+
+So, the equivalent example configuration using this method would be to create
+an "input/setup/java.vim" script file with the following lines:
+
+ let g:java_space_errors = 1
+ let g:java_minlines = 5
+
+Both inline setup commands and setup scripts may be used at the same time, the
+script file will be sourced before any TEST_SETUP commands are executed.
+
If there is no further setup required, you can now run the tests:
make test
@@ -100,6 +113,7 @@ are covered by the test. You can follow these steps:
test" should succeed.
3. Prepare a pull request with the modified files:
- syntax plugin: syntax/{name}.vim
+ - Vim setup file: syntax/testdir/input/setup/{name}.vim (if any)
- test input file: syntax/testdir/input/{name}.{ext}
- test dump files: syntax/testdir/dumps/{name}_99.dump
diff --git a/runtime/syntax/testdir/runtest.vim b/runtime/syntax/testdir/runtest.vim
index ffa2be8dde..6d25c4ce5a 100644
--- a/runtime/syntax/testdir/runtest.vim
+++ b/runtime/syntax/testdir/runtest.vim
@@ -90,6 +90,10 @@ func RunTest()
let failed_tests = []
let skipped_count = 0
let MAX_FAILED_COUNT = 5
+ " Create a map of setup configuration filenames with their basenames as keys.
+ let setup = glob('input/setup/*.vim', 1, 1)
+ \ ->reduce({d, f -> extend(d, {fnamemodify(f, ':t:r'): f})}, {})
+
for fname in glob('input/*.*', 1, 1)
if fname =~ '\~$'
" backup file, skip
@@ -175,7 +179,13 @@ func RunTest()
redraw
" Let "Xtestscript#SetUpVim()" turn the syntax on.
- let buf = RunVimInTerminal('-Nu NONE -S Xtestscript', {})
+ let prefix = '-Nu NONE -S Xtestscript'
+ let path = get(setup, root, '')
+ " Source the found setup configuration file.
+ let args = !empty(path)
+ \ ? prefix .. ' -S ' .. path
+ \ : prefix
+ let buf = RunVimInTerminal(args, {})
" edit the file only after catching the SwapExists event
call term_sendkeys(buf, ":edit " .. fname .. "\<CR>")
" set up the testing environment