#
# Makefile to run all tests for Vim
#

VimProg ?= ../vim

Scripts = test1.out test2.out test3.out test6.out
		test11.out
		test13.out test14.out test15.out test17.out
		test18.out test21.out
		test27.out test29.out test30.out
		test36.out test37.out
		test39.out test42.out
		test44.out test46.out test47.out
		test48.out test49.out test74.out

ScriptsGUI = test16.out

# Build "nongui" when no target was specified.
nongui:	newlog $Scripts
	:print
	:cat test.log
	:print ALL DONE

# Build "ngui" when specified.
gui:	newlog $Scripts $ScriptsGUI
	:print
	:cat test.log
	:print ALL DONE

$Scripts $ScriptsGUI: $VimProg

clean:
	:del {r}{force} *.out test.log tiny.vim small.vim mbyte.vim mzscheme.vim test.ok X*

# test1 is special, it checks for features
test1.out: test1.in
	:del {force} test1.failed tiny.vim small.vim mbyte.vim mzscheme.vim
	:sys {i} $VimProg -u unix.vim -U NONE --noplugin -s dotest.in test1.in
	@if os.system("diff test.out test1.ok") != 0:
		:error test1 FAILED - Something basic is wrong
	:move {force} test.out test1.out
	:del {r}{force} X*

:rule %.out : %.in
	:del {force} $(match).failed test.ok
	:copy $(match).ok test.ok
	:sys {i} $VimProg -u unix.vim -U NONE --noplugin -s dotest.in $(match).in
	@if os.system("diff test.out " + match + ".ok") != 0:
		:print $match FAILED >>test.log
		:move {force} test.out $(match).failed
	@else:
		:move {force} test.out $(match).out
	:del {r}{force} X* test.ok

newlog:
	:print Test results: >! test.log
