2017-03-21 02:15:22 -07:00
|
|
|
# vim: noet ts=8
|
2014-01-31 06:39:15 -07:00
|
|
|
# Makefile to run all tests for Vim
|
|
|
|
#
|
|
|
|
|
2017-12-08 08:42:30 -07:00
|
|
|
ifeq ($(OS),Windows_NT)
|
|
|
|
NVIM_PRG ?= ../../../build/bin/nvim.exe
|
|
|
|
else
|
|
|
|
NVIM_PRG ?= ../../../build/bin/nvim
|
|
|
|
endif
|
2018-03-17 16:38:27 -07:00
|
|
|
ROOT := ../../..
|
2014-01-31 06:39:15 -07:00
|
|
|
|
2017-02-13 07:07:49 -07:00
|
|
|
export SHELL := sh
|
|
|
|
export NVIM_PRG := $(NVIM_PRG)
|
2018-01-28 05:16:33 -07:00
|
|
|
export TMPDIR := $(abspath ../../../Xtest-tmpdir)
|
2017-02-13 07:07:49 -07:00
|
|
|
|
2017-12-08 08:42:30 -07:00
|
|
|
SCRIPTS_DEFAULT = \
|
2018-08-23 10:48:47 -07:00
|
|
|
test14.out \
|
|
|
|
test24.out \
|
|
|
|
test37.out \
|
|
|
|
test42.out \
|
|
|
|
test48.out \
|
|
|
|
test52.out \
|
|
|
|
test64.out \
|
2014-01-31 06:39:15 -07:00
|
|
|
|
2017-12-08 08:42:30 -07:00
|
|
|
ifneq ($(OS),Windows_NT)
|
|
|
|
SCRIPTS_DEFAULTS := $(SCRIPTS_DEFAULT) \
|
2018-08-23 10:48:47 -07:00
|
|
|
test17.out \
|
|
|
|
test49.out \
|
2017-12-08 08:42:30 -07:00
|
|
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
SCRIPTS ?= $(SCRIPTS_DEFAULT)
|
|
|
|
|
2017-02-11 17:02:54 -07:00
|
|
|
# Tests using runtest.vim.
|
2016-04-25 00:56:33 -07:00
|
|
|
# Keep test_alot*.res as the last one, sort the others.
|
2017-02-11 17:02:54 -07:00
|
|
|
NEW_TESTS ?= \
|
2018-08-23 10:48:47 -07:00
|
|
|
test_arabic.res \
|
|
|
|
test_autocmd.res \
|
|
|
|
test_blockedit.res \
|
|
|
|
test_bufwintabinfo.res \
|
|
|
|
test_changedtick.res \
|
|
|
|
test_charsearch.res \
|
|
|
|
test_cindent.res \
|
|
|
|
test_clientserver.res \
|
|
|
|
test_close_count.res \
|
|
|
|
test_cmdline.res \
|
|
|
|
test_command_count.res \
|
|
|
|
test_cscope.res \
|
|
|
|
test_curswant.res \
|
|
|
|
test_digraph.res \
|
|
|
|
test_edit.res \
|
|
|
|
test_erasebackword.res \
|
|
|
|
test_exists.res \
|
|
|
|
test_diffmode.res \
|
|
|
|
test_farsi.res \
|
|
|
|
test_file_size.res \
|
|
|
|
test_filter_map.res \
|
|
|
|
test_find_complete.res \
|
|
|
|
test_fixeol.res \
|
|
|
|
test_findfile.res \
|
|
|
|
test_fnameescape.res \
|
|
|
|
test_fold.res \
|
|
|
|
test_ga.res \
|
|
|
|
test_getvar.res \
|
|
|
|
test_glob2regpat.res \
|
|
|
|
test_gf.res \
|
|
|
|
test_gn.res \
|
|
|
|
test_hardcopy.res \
|
|
|
|
test_help_tagjump.res \
|
|
|
|
test_hide.res \
|
|
|
|
test_highlight.res \
|
|
|
|
test_history.res \
|
|
|
|
test_hlsearch.res \
|
|
|
|
test_increment.res \
|
|
|
|
test_increment_dbcs.res \
|
|
|
|
test_ins_complete.res \
|
|
|
|
test_lambda.res \
|
|
|
|
test_langmap.res \
|
|
|
|
test_let.res \
|
|
|
|
test_lineending.res \
|
|
|
|
test_listdict.res \
|
|
|
|
test_listchars.res \
|
|
|
|
test_makeencoding.res \
|
|
|
|
test_marks.res \
|
|
|
|
test_match.res \
|
|
|
|
test_matchadd_conceal.res \
|
|
|
|
test_mksession.res \
|
|
|
|
test_nested_function.res \
|
|
|
|
test_normal.res \
|
|
|
|
test_number.res \
|
|
|
|
test_options.res \
|
|
|
|
test_preview.res \
|
|
|
|
test_profile.res \
|
|
|
|
test_put.res \
|
|
|
|
test_python2.res \
|
|
|
|
test_python3.res \
|
|
|
|
test_quickfix.res \
|
|
|
|
test_quotestar.res \
|
|
|
|
test_recover.res \
|
|
|
|
test_registers.res \
|
|
|
|
test_retab.res \
|
|
|
|
test_scrollbind.res \
|
|
|
|
test_search.res \
|
|
|
|
test_signs.res \
|
|
|
|
test_smartindent.res \
|
|
|
|
test_spell.res \
|
|
|
|
test_stat.res \
|
|
|
|
test_startup.res \
|
|
|
|
test_substitute.res \
|
|
|
|
test_swap.res \
|
|
|
|
test_syntax.res \
|
|
|
|
test_system.res \
|
|
|
|
test_tab.res \
|
|
|
|
test_tabpage.res \
|
|
|
|
test_textobjects.res \
|
|
|
|
test_timers.res \
|
|
|
|
test_undo.res \
|
|
|
|
test_usercommands.res \
|
|
|
|
test_user_func.res \
|
|
|
|
test_vimscript.res \
|
|
|
|
test_visual.res \
|
|
|
|
test_winbuf_close.res \
|
|
|
|
test_window_id.res \
|
|
|
|
test_windows_home.res \
|
|
|
|
test_wordcount.res \
|
|
|
|
test_writefile.res \
|
|
|
|
test_alot_latin.res \
|
|
|
|
test_alot_utf8.res \
|
|
|
|
test_alot.res
|
2015-12-12 20:19:54 -07:00
|
|
|
|
2014-02-26 12:16:54 -07:00
|
|
|
SCRIPTS_GUI := test16.out
|
2014-01-31 06:39:15 -07:00
|
|
|
|
2014-04-05 05:26:17 -07:00
|
|
|
|
|
|
|
ifdef VALGRIND_GDB
|
2014-04-25 01:11:26 -07:00
|
|
|
VGDB := --vgdb=yes \
|
|
|
|
--vgdb-error=0
|
2014-04-05 05:26:17 -07:00
|
|
|
endif
|
|
|
|
|
|
|
|
ifdef USE_VALGRIND
|
2014-04-25 01:11:26 -07:00
|
|
|
VALGRIND_TOOL := --tool=memcheck \
|
|
|
|
--leak-check=yes \
|
|
|
|
--track-origins=yes
|
|
|
|
# VALGRIND_TOOL := exp-sgcheck
|
2014-11-22 04:54:36 -07:00
|
|
|
TOOL := valgrind -q \
|
|
|
|
-q \
|
|
|
|
$(VALGRIND_TOOL) \
|
2016-06-03 11:15:36 -07:00
|
|
|
--suppressions=../../.valgrind.supp \
|
2014-11-22 04:54:36 -07:00
|
|
|
--error-exitcode=123 \
|
2018-03-17 16:38:27 -07:00
|
|
|
--log-file=valgrind-\%p.$* \
|
2014-11-22 04:54:36 -07:00
|
|
|
$(VGDB) \
|
2014-04-30 19:01:27 -07:00
|
|
|
--trace-children=yes
|
2014-04-05 05:26:17 -07:00
|
|
|
else
|
2014-04-25 01:11:26 -07:00
|
|
|
ifdef USE_GDB
|
|
|
|
TOOL = gdb --args
|
|
|
|
endif
|
2014-02-26 11:48:26 -07:00
|
|
|
endif
|
|
|
|
|
|
|
|
ifdef TESTNUM
|
2014-04-25 01:11:26 -07:00
|
|
|
SCRIPTS := test$(TESTNUM).out
|
2014-02-26 11:48:26 -07:00
|
|
|
endif
|
|
|
|
|
2015-12-12 20:19:54 -07:00
|
|
|
nongui: nolog $(SCRIPTS) newtests report
|
2014-01-31 06:39:15 -07:00
|
|
|
|
2015-12-12 20:19:54 -07:00
|
|
|
gui: nolog $(SCRIPTS) $(SCRIPTS_GUI) newtests report
|
2014-01-31 06:39:15 -07:00
|
|
|
|
2014-03-27 09:35:36 -07:00
|
|
|
.gdbinit:
|
2018-03-18 14:53:40 -07:00
|
|
|
@echo "[OLDTEST-PREP] Setting up .gdbinit"
|
|
|
|
@echo 'set $$_exitcode = -1\nrun\nif $$_exitcode != -1\n quit\nend' > .gdbinit
|
2014-03-27 09:35:36 -07:00
|
|
|
|
2014-01-31 06:39:15 -07:00
|
|
|
report:
|
|
|
|
@echo
|
|
|
|
@echo 'Test results:'
|
2014-04-25 01:11:26 -07:00
|
|
|
@/bin/sh -c "if test -f test.log; then \
|
|
|
|
cat test.log; \
|
|
|
|
echo TEST FAILURE; \
|
|
|
|
exit 1; \
|
|
|
|
else \
|
|
|
|
echo ALL DONE; \
|
|
|
|
fi"
|
2014-01-31 06:39:15 -07:00
|
|
|
|
2017-02-13 07:07:49 -07:00
|
|
|
test1.out: $(NVIM_PRG)
|
2014-06-14 08:41:29 -07:00
|
|
|
|
2017-02-13 07:07:49 -07:00
|
|
|
$(SCRIPTS) $(SCRIPTS_GUI): $(NVIM_PRG) test1.out
|
2014-01-31 06:39:15 -07:00
|
|
|
|
2014-04-25 01:11:26 -07:00
|
|
|
RM_ON_RUN := test.out X* viminfo
|
2016-04-19 16:24:03 -07:00
|
|
|
RM_ON_START := test.ok
|
2018-03-17 16:38:27 -07:00
|
|
|
RUN_VIM := $(TOOL) $(NVIM_PRG) -u unix.vim -U NONE -i viminfo --headless --noplugin -s dotest.in
|
2014-01-31 06:39:15 -07:00
|
|
|
|
|
|
|
clean:
|
2014-04-25 01:11:26 -07:00
|
|
|
-rm -rf *.out \
|
|
|
|
*.failed \
|
2015-12-12 20:19:54 -07:00
|
|
|
*.res \
|
2014-04-25 01:11:26 -07:00
|
|
|
*.rej \
|
|
|
|
*.orig \
|
2018-03-17 16:38:27 -07:00
|
|
|
*.tlog \
|
2014-04-25 01:11:26 -07:00
|
|
|
test.log \
|
2016-01-10 13:38:54 -07:00
|
|
|
messages \
|
2014-04-25 01:11:26 -07:00
|
|
|
$(RM_ON_RUN) \
|
|
|
|
$(RM_ON_START) \
|
|
|
|
valgrind.* \
|
|
|
|
.*.swp \
|
2015-01-23 12:08:20 -07:00
|
|
|
.*.swo \
|
2016-12-02 18:33:57 -07:00
|
|
|
.gdbinit \
|
2017-08-08 11:29:41 -07:00
|
|
|
$(TMPDIR) \
|
2015-01-23 12:08:20 -07:00
|
|
|
del
|
2014-01-31 06:39:15 -07:00
|
|
|
|
2014-03-27 09:35:36 -07:00
|
|
|
test1.out: .gdbinit test1.in
|
2018-03-18 14:53:40 -07:00
|
|
|
@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
|
2014-01-31 06:39:15 -07:00
|
|
|
|
2014-04-01 21:10:17 -07:00
|
|
|
%.out: %.in .gdbinit
|
2018-03-18 14:53:40 -07:00
|
|
|
@echo "[OLDESTTEST] Running" $*
|
|
|
|
@rm -rf $*.failed test.ok $(RM_ON_RUN)
|
|
|
|
@mkdir -p $(TMPDIR)
|
|
|
|
@cp $*.ok test.ok
|
|
|
|
@/bin/sh runnvim.sh --oldesttest $(ROOT) $(NVIM_PRG) $* $(RUN_VIM) $*.in
|
|
|
|
@rm -rf X* test.ok viminfo
|
2014-01-31 06:39:15 -07:00
|
|
|
|
|
|
|
test49.out: test49.vim
|
|
|
|
|
|
|
|
nolog:
|
2018-03-18 14:53:40 -07:00
|
|
|
@echo "[OLDTEST-PREP] Removing test.log and messages"
|
|
|
|
@rm -f test.log messages
|
2015-12-12 20:19:54 -07:00
|
|
|
|
|
|
|
|
|
|
|
# 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.
|
2018-03-17 16:38:27 -07:00
|
|
|
RUN_VIMTEST = $(TOOL) $(NVIM_PRG) -u unix.vim -U NONE --headless --noplugin
|
2015-12-12 20:19:54 -07:00
|
|
|
|
2016-01-09 17:10:17 -07:00
|
|
|
newtests: newtestssilent
|
|
|
|
@/bin/sh -c "if test -f messages && grep -q 'FAILED' messages; then \
|
|
|
|
cat messages && cat test.log; \
|
2016-01-10 13:05:11 -07:00
|
|
|
fi"
|
2016-01-09 17:10:17 -07:00
|
|
|
|
|
|
|
newtestssilent: $(NEW_TESTS)
|
2015-12-12 20:19:54 -07:00
|
|
|
|
|
|
|
%.res: %.vim .gdbinit
|
2018-03-20 16:26:39 -07:00
|
|
|
@echo "[OLDTEST] Running" $*
|
2018-03-18 14:53:40 -07:00
|
|
|
@mkdir -p $(TMPDIR)
|
|
|
|
@/bin/sh runnvim.sh $(ROOT) $(NVIM_PRG) $* $(RUN_VIMTEST) -u NONE -S runtest.vim $*.vim
|