diff --git a/runtime/syntax/Makefile b/runtime/syntax/Makefile
index bc6de0b..cbea54a 100644
--- a/runtime/syntax/Makefile
+++ b/runtime/syntax/Makefile
@@ -31,10 +31,38 @@
 	@echo "../$(VIMPROG)" > testdir/vimcmd
 	@echo "$(RUN_VIMTEST)" >> testdir/vimcmd
 	VIMRUNTIME=$(VIMRUNTIME) $(ENVVARS) $(VIMPROG) --clean --not-a-term $(DEBUGLOG) -u testdir/runtest.vim
+	@rm -f testdir/Xfilter
 	@# FIXME: Temporarily show the whole file to find out what goes wrong
 	@#if [ -f testdir/messages ]; then tail -n 6 testdir/messages; fi
 	@if [ -f testdir/messages ]; then cat testdir/messages; fi
 
 
 clean testclean:
-	rm -f testdir/failed/* testdir/done/* testdir/vimcmd testdir/messages testdir/Xtestscript
+	rm -f testdir/failed/* testdir/done/* testdir/vimcmd testdir/messages testdir/Xtestscript testdir/Xfilter
+
+# All initial phony targets; these names may clash with file extensions.
+phonies = clean test testclean
+
+# Collect all input filenames and their file extensions.
+testnames != set +f; \
+awk 'BEGIN { \
+    for (i = 1; i < ARGC; i++) { \
+        split(ARGV[i], names, /\//); \
+        split(names[3], parts, /\./); \
+        exts[parts[2]]; \
+        print names[3]; \
+    } \
+    split("$(phonies)", scratch); \
+    for (phony in scratch) \
+        phonies[scratch[phony]]; \
+    for (ext in exts) \
+        print ext ((ext in phonies) ? "_" : ""); \
+}' testdir/input/*.*
+
+.PHONY: self-testing $(testnames)
+
+$(testnames)::
+	@echo $@ >> testdir/Xfilter
+
+self-testing:: $(testnames)
+	@echo self-testing > testdir/Xfilter
diff --git a/runtime/syntax/testdir/README.txt b/runtime/syntax/testdir/README.txt
index 3baa43b..b96e8f6 100644
--- a/runtime/syntax/testdir/README.txt
+++ b/runtime/syntax/testdir/README.txt
@@ -63,12 +63,40 @@
 
 Every line of a source file must not be longer than 1425 (19 x 75) characters.
 
-If there is no further setup required, you can now run the tests:
+If there is no further setup required, you can now run all tests:
 
 	make test
 
-The first time this will fail with an error for a missing screendump.  The
-newly created screendumps will be "failed/java_00.dump",
+Or you can run the tests for a filetype only by passing its file extension as
+another target, e.g. "java", before "test":
+
+	make java test
+
+Or you can run a test or two by passing their filenames as extra targets, e.g.
+"java_string.java" and "java_numbers.java", before "test", after listing all
+available syntax tests for Java:
+
+	ls testdir/input/java*
+	make java_string.java java_numbers.java test
+
+(Some interactive shells may attempt to perform word completion on arbitrary
+command arguments when you press certain keys, e.g. Tab or Ctrl-i.)
+
+As an alternative, you can specify a subset of test filenames for running as
+a regular expression and assign it to a VIM_SYNTAX_TEST_FILTER environment
+variable; e.g. to run all tests whose base names contain "fold", use any of:
+
+	make test -e 'VIM_SYNTAX_TEST_FILTER = fold.*\..\+'
+	make test VIM_SYNTAX_TEST_FILTER='fold.*\..\+'
+	VIM_SYNTAX_TEST_FILTER='fold.*\..\+' make test
+
+Consider quoting the variable value to avoid any interpretation by the shell.
+
+Both Make targets and the variable may be used at the same time, the target
+names will be tried for matching before the variable value.
+
+The first time testing "input/java.java" will fail with an error for a missing
+screendump.  The newly created screendumps will be "failed/java_00.dump",
 "failed/java_01.dump", etc.  You can inspect each with:
 
 	call term_dumpload('failed/java_00.dump')
@@ -206,5 +234,4 @@
 	../../../src/vim --clean -S viewdumps.vim
 
 
-TODO: run test for one specific filetype
 TODO: test syncing by jumping around
diff --git a/runtime/syntax/testdir/input/selftestdir/README.txt b/runtime/syntax/testdir/input/selftestdir/README.txt
index 035701d..ec4cacb 100644
--- a/runtime/syntax/testdir/input/selftestdir/README.txt
+++ b/runtime/syntax/testdir/input/selftestdir/README.txt
@@ -6,5 +6,5 @@
 
 Please test any changes as follows:
 	cd runtime/syntax/
-	VIM_SYNTAX_SELF_TESTING=1 make clean test
+	make clean self-testing test
 
diff --git a/runtime/syntax/testdir/runtest.vim b/runtime/syntax/testdir/runtest.vim
index f9c0db0..0758bcb 100644
--- a/runtime/syntax/testdir/runtest.vim
+++ b/runtime/syntax/testdir/runtest.vim
@@ -115,13 +115,26 @@
   " 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})}, {})
+  " Turn a subset of filenames etc. requested for testing into a pattern.
+  let filter = filereadable('../testdir/Xfilter')
+    \ ? readfile('../testdir/Xfilter')
+	\ ->map({_, v -> (v =~ '\.' ? '^' : '\.') .. v .. '$'})
+	\ ->join('\|')
+    \ : ''
 
-  if exists("$VIM_SYNTAX_SELF_TESTING")
+  " Treat "\.self-testing$" as a string NOT as a regexp.
+  if filter ==# '\.self-testing$'
     let dirpath = 'input/selftestdir/'
     let fnames = readdir(dirpath, {fname -> fname !~ '^README\.txt$'})
   else
     let dirpath = 'input/'
-    let fnames = readdir(dirpath, {fname -> fname !~ '\~$' && fname =~ '^.\+\..\+$'})
+    let filter ..= exists("$VIM_SYNTAX_TEST_FILTER") &&
+		\ !empty($VIM_SYNTAX_TEST_FILTER)
+      \ ? (empty(filter) ? '' : '\|') .. $VIM_SYNTAX_TEST_FILTER
+      \ : ''
+    let fnames = readdir(dirpath,
+	\ {subset -> {fname -> fname !~ '\~$' && fname =~# subset}}(
+		\ empty(filter) ? '^.\+\..\+$' : filter))
   endif
 
   for fname in fnames
