aboutsummaryrefslogtreecommitdiff
path: root/test/old/testdir/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'test/old/testdir/Makefile')
-rw-r--r--test/old/testdir/Makefile157
1 files changed, 157 insertions, 0 deletions
diff --git a/test/old/testdir/Makefile b/test/old/testdir/Makefile
new file mode 100644
index 0000000000..b5ca6a17b0
--- /dev/null
+++ b/test/old/testdir/Makefile
@@ -0,0 +1,157 @@
+# vim: noet ts=8
+# Makefile to run all tests for Vim
+#
+
+ifeq ($(OS),Windows_NT)
+ NVIM_PRG ?= ../../../build/bin/nvim.exe
+else
+ NVIM_PRG ?= ../../../build/bin/nvim
+endif
+ROOT := ../../..
+
+export SHELL := sh
+export NVIM_PRG := $(NVIM_PRG)
+export TMPDIR := $(abspath X-test-tmpdir)
+
+ifeq ($(OS),Windows_NT)
+ FIXFF = fixff
+else
+ FIXFF =
+endif
+
+# Tests using runtest.vim.
+NEW_TESTS_ALOT := test_alot_utf8 test_alot test_alot_latin
+NEW_TESTS_IN_ALOT := $(shell sed -n '/^source/ s/^source //; s/\.vim$$//p' $(addsuffix .vim,$(NEW_TESTS_ALOT)))
+# Ignored tests.
+# test_largefile: uses too much resources to run on CI.
+NEW_TESTS_IGNORE := \
+ test_largefile \
+
+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
+ VGDB := --vgdb=yes \
+ --vgdb-error=0
+endif
+
+ifdef USE_VALGRIND
+ VALGRIND_TOOL := --tool=memcheck \
+ --leak-check=yes \
+ --track-origins=yes
+# VALGRIND_TOOL := exp-sgcheck
+ TOOL := valgrind -q \
+ -q \
+ $(VALGRIND_TOOL) \
+ --suppressions=../../.valgrind.supp \
+ --error-exitcode=123 \
+ --log-file=valgrind-\%p.$* \
+ $(VGDB) \
+ --trace-children=yes
+else
+ ifdef USE_GDB
+ TOOL = gdb --args
+ endif
+endif
+
+nongui: nolog $(FIXFF) newtests report
+
+.gdbinit:
+ @echo "[OLDTEST-PREP] Setting up .gdbinit"
+ @echo 'set $$_exitcode = -1\nrun\nif $$_exitcode != -1\n quit\nend' > .gdbinit
+
+report:
+ $(NVIM_PRG) -u NONE $(NO_INITS) -S summarize.vim messages
+ @echo
+ @echo 'Test results:'
+ @cat test_result.log
+ @/bin/sh -c "if test -f test.log; \
+ then echo TEST FAILURE; exit 1; \
+ else echo ALL DONE; \
+ fi"
+ @rm -f starttime
+
+test1.out: $(NVIM_PRG)
+
+NO_PLUGINS = --noplugin --headless
+# In vim, if the -u command line option is specified, compatible is turned on
+# and viminfo is not read. Unlike vim, neovim reads viminfo and requires the
+# -i command line option.
+NO_INITS = -U NONE -i NONE $(NO_PLUGINS)
+
+# TODO: find a way to avoid changing the distributed files.
+fixff:
+ -$(NVIM_PRG) $(NO_INITS) -u unix.vim "+argdo set ff=dos|upd" +q \
+ *.in *.ok
+ -$(NVIM_PRG) $(NO_INITS) -u unix.vim "+argdo set ff=dos|upd" +q \
+ dotest.in
+
+# File to delete when testing starts
+CLEANUP_FILES = test.log messages starttime
+
+# Execute an individual new style test, e.g.:
+# make test_largefile
+$(NEW_TESTS):
+ rm -f $@.res $(CLEANUP_FILES)
+ @MAKEFLAGS=--no-print-directory $(MAKE) -f Makefile $@.res
+ @cat messages
+ @if test -f test.log; then \
+ exit 1; \
+ fi
+
+RM_ON_RUN := test.out X* viminfo
+RM_ON_START := test.ok
+RUN_VIM := $(TOOL) $(NVIM_PRG) -u unix.vim -U NONE -i viminfo --headless --noplugin -s dotest.in
+
+# Delete files that may interfere with running tests. This includes some files
+# that may result from working on the tests, not only from running them.
+CLEAN_FILES := *.out \
+ *.failed \
+ *.res \
+ *.rej \
+ *.orig \
+ *.tlog \
+ test_result.log \
+ $(CLEANUP_FILES) \
+ $(RM_ON_RUN) \
+ $(RM_ON_START) \
+ valgrind.* \
+ .*.swp \
+ .*.swo \
+ .gdbinit \
+ $(TMPDIR) \
+ del
+clean:
+ $(RM) -rf $(CLEAN_FILES)
+
+test1.out: .gdbinit test1.in
+ @echo "[OLDTEST-PREP] Running test1"
+ @rm -rf $*.failed $(RM_ON_RUN) $(RM_ON_START) wrongtermsize
+ @mkdir -p $(TMPDIR)
+ @/bin/sh runnvim.sh $(ROOT) $(NVIM_PRG) $* $(RUN_VIM) $*.in
+ @rm -f wrongtermsize
+ @rm -rf X* viminfo
+
+nolog:
+ @echo "[OLDTEST-PREP] Removing test.log and messages"
+ @rm -f test_result.log $(CLEANUP_FILES)
+
+
+# New style of tests uses Vim script with assert calls. These are easier
+# to write and a lot easier to read and debug.
+# Limitation: Only works with the +eval feature.
+RUN_VIMTEST = $(TOOL) $(NVIM_PRG) -u unix.vim
+
+newtests: newtestssilent
+ @/bin/sh -c "if test -f messages && grep -q 'FAILED' messages; then \
+ cat messages && cat test.log; \
+ fi"
+
+newtestssilent: $(NEW_TESTS_RES)
+
+%.res: %.vim .gdbinit
+ @echo "[OLDTEST] Running" $*
+ @rm -rf $*.failed test.ok $(RM_ON_RUN)
+ @mkdir -p $(TMPDIR)
+ @/bin/sh runnvim.sh $(ROOT) $(NVIM_PRG) $* $(RUN_VIMTEST) $(NO_INITS) -u NONE --cmd "set shortmess-=F" -S runtest.vim $*.vim