diff options
author | Daniel Hahler <git@thequod.de> | 2019-12-02 17:18:37 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-12-02 17:18:37 +0100 |
commit | 0b7a7b23cce8c9eeeaac1a38190fd49e1033625c (patch) | |
tree | dc5383dc3ebc9d10f493eda7effac935a6f86ff5 | |
parent | 7d66a02b888e4055c62e6f477bc36b6ce760336b (diff) | |
download | rneovim-0b7a7b23cce8c9eeeaac1a38190fd49e1033625c.tar.gz rneovim-0b7a7b23cce8c9eeeaac1a38190fd49e1033625c.tar.bz2 rneovim-0b7a7b23cce8c9eeeaac1a38190fd49e1033625c.zip |
oldtest: support for running by filename (#11473)
Follow-up to 8969efca8 (Vim patch 8.1.0723)
NOTE: This changes the main entrypoint for running single oldtest files
to not use/require the ".res" extension anymore. But it is handled for
B/C.
Adds a phony rule to run oldtest by filename.
Not going through "$(MAKE)" avoids GNUmakefile being used then (which I
use for WIP things), and it seems like SINGLE_MAKE should be used anyway
probably.
-rw-r--r-- | Makefile | 11 | ||||
-rw-r--r-- | src/nvim/testdir/Makefile | 13 | ||||
-rw-r--r-- | test/README.md | 9 |
3 files changed, 21 insertions, 12 deletions
@@ -119,8 +119,13 @@ oldtest: | nvim build/runtime/doc/tags ifeq ($(strip $(TEST_FILE)),) +$(SINGLE_MAKE) -C src/nvim/testdir NVIM_PRG="$(realpath build/bin/nvim)" $(MAKEOVERRIDES) else - +$(SINGLE_MAKE) -C src/nvim/testdir NVIM_PRG="$(realpath build/bin/nvim)" SCRIPTS= $(MAKEOVERRIDES) $(TEST_FILE) + @# Handle TEST_FILE=test_foo{,.res,.vim}. + +$(SINGLE_MAKE) -C src/nvim/testdir NVIM_PRG="$(realpath build/bin/nvim)" SCRIPTS= $(MAKEOVERRIDES) $(patsubst %.vim,%,$(patsubst %.res,%,$(TEST_FILE))) endif +# Build oldtest by specifying the relative .vim filename. +.PHONY: phony_force +src/nvim/testdir/%.vim: phony_force + +$(SINGLE_MAKE) -C src/nvim/testdir NVIM_PRG="$(realpath build/bin/nvim)" SCRIPTS= $(MAKEOVERRIDES) $(patsubst src/nvim/testdir/%.vim,%,$@) build/runtime/doc/tags helptags: | nvim +$(BUILD_CMD) -C build runtime/doc/tags @@ -201,10 +206,10 @@ lint: check-single-includes clint lualint _opt_pylint _opt_shlint # Generic pattern rules, allowing for `make build/bin/nvim` etc. # Does not work with "Unix Makefiles". ifeq ($(BUILD_TYPE),Ninja) -build/%: +build/%: phony_force $(BUILD_CMD) -C build $(patsubst build/%,%,$@) -$(DEPS_BUILD_DIR)/%: +$(DEPS_BUILD_DIR)/%: phony_force $(BUILD_CMD) -C $(DEPS_BUILD_DIR) $(patsubst $(DEPS_BUILD_DIR)/%,%,$@) endif diff --git a/src/nvim/testdir/Makefile b/src/nvim/testdir/Makefile index 1e9031e098..6bf070a7e2 100644 --- a/src/nvim/testdir/Makefile +++ b/src/nvim/testdir/Makefile @@ -34,22 +34,23 @@ SCRIPTS ?= $(SCRIPTS_DEFAULT) # Tests using runtest.vim. NEW_TESTS_ALOT := test_alot_utf8 test_alot -NEW_TESTS_IN_ALOT := $(shell sed '/^source/ s/^source //;s/\.vim$$//' test_alot*.vim) +NEW_TESTS_IN_ALOT := $(shell sed -n '/^source/ s/^source //; s/\.vim$$//p' $(addsuffix .vim,$(NEW_TESTS_ALOT))) +NEW_TESTS_IN_ALOT_LATIN := $(shell sed -n '/^source/ s/^source //; s/\.vim$$//p' test_alot_latin.vim) # Ignored tests. # test_alot_latin: Nvim does not allow setting encoding. # test_autochdir: ported to Lua, but kept for easier merging. # test_eval_func: used as include in old-style test (test_eval.in). # test_listlbr: Nvim does not allow setting encoding. # test_largefile: uses too much resources to run on CI. -NEW_TESTS_IGNORE := $(NEW_TESTS_IN_ALOT) $(NEW_TESTS_ALOT) \ - test_alot_latin \ +NEW_TESTS_IGNORE := \ + test_alot_latin $(NEW_TESTS_IN_ALOT_LATIN) \ test_autochdir \ test_eval_func \ test_listlbr \ test_largefile \ -NEW_TESTS ?= $(sort $(filter-out $(NEW_TESTS_IGNORE),$(basename $(notdir $(wildcard test_*.vim))))) $(NEW_TESTS_ALOT) -NEW_TESTS_RES ?= $(addsuffix .res,$(NEW_TESTS)) +NEW_TESTS := $(sort $(basename $(notdir $(wildcard test_*.vim)))) +NEW_TESTS_RES := $(addsuffix .res,$(filter-out $(NEW_TESTS_ALOT) $(NEW_TESTS_IN_ALOT) $(NEW_TESTS_IGNORE),$(NEW_TESTS)) $(NEW_TESTS_ALOT)) ifdef VALGRIND_GDB @@ -114,7 +115,7 @@ fixff: dotest.in # Execute an individual new style test, e.g.: -# make test_largefile +# make test_largefile $(NEW_TESTS): rm -f $@.res test.log messages @MAKEFLAGS=--no-print-directory $(MAKE) -f Makefile $@.res diff --git a/test/README.md b/test/README.md index 2cee7da009..a6e9080a40 100644 --- a/test/README.md +++ b/test/README.md @@ -77,11 +77,14 @@ To run all legacy Vim tests: make oldtest -To run a *single* legacy test set `TEST_FILE`, for example: +To run a *single* legacy test file you can use either: - TEST_FILE=test_syntax.res make oldtest + make oldtest TEST_FILE=test_syntax.vim + +or: + + make src/nvim/testdir/test_syntax.vim -- The `.res` extension (instead of `.vim`) is required. - Specify only the test file name, not the full path. |