On Sun 14-Sep-08 6:21am -0600, Bram Moolenaar wrote:
> Bill McCarthy wrote:
>
>>>> There is a `testdir' located in $VIMRUNTIME/src. There
>>>> doesn't appear to be any documentation of this, but there is
>>>> a set of tests that run from within various make files.
>>>>
>>>> I'm running in Windows.using Mingw. The makefile for
>>>> windows is apparently Make_dos.mak. The top of that file
>>>> mentioned that one needs typical unix utilities. However,
>>>> if you have the unix utilities, you very likely have at
>>>> least sh.exe and probably zsh.exe (the Bourne and Z-Shell).
>>> Can't you use "Makefile", as used for Unix? However, I thought that
>>> MingW was supposed to just supply the compiler, not all the Unix tools
>>> like Cygwin. So Make_dos.mak would be more appropriate.
>> Thanks for your speedy reply. No, Makefile does not work:
>>
>> > make
>> rm -f test.log
>> make: *** No rule to make target `../vim', needed by `test1.out'. Stop.
>>
>> You are correct that Mingw is not a complete package. One
>> needs to download the various unix utilities separately.
>> But one usually gets sh.exe also - I also got zsh.exe in one
>> of my downloads of unix utilities. [They don't all play well
>> with Windows, so one needs to test quite a bit.]
> Isn't it possible to make the tests work without the extra downloads?
> Using a testdir/Make_ming.mak, which mostly uses the DOS way of doing
> things should work, right? Adding a dependency on installing various
> other tools is not nice.
Yes, I've created Make_ming.mak which works whether running
from CMD, sh or zsh. I've borrowed from your Make_ming.mak
in src for compiling. See attached.
Test has been tested under my environment and under CMD
after removing both sh.exe and zsh.exe from my path.
>>>> The GNU make command will use zsh (or sh if zsh is not
>>>> present). Only if neither of these are in your path is CMD
>>>> used - and you CAN use Make_dos.mak.
>>>>
>>>> I've created Make_dos_sh.mak which should work with either
>>>> sh.exe or zsh.exe - this is attached. When I ran it with
>>>> `make -f Make_dos_sh.mak', test54 failed with the following:
>>>>
>>>> cp test54.ok test.ok
>>>> ../vim -u dos.vim -U NONE --noplugin -s dotest.in test54.in
>>>> diff test.out test54.ok
>>>> diff: test.out: No such file or directory
>>>> make: *** [test54.out] Error 2
>>>>
>>>> Am I the first one to ever run these tests in Windows?
>>> This test uses Unix commands. They can probably be avoided, since the
>>> buffer-local autocommands don't require a shell command.
>> Yes, the CMD command `rm -f' is a problem. I've removed
>> this bad test and added a comment to the top of the new file
>> (see attached).
> I've put a remark on the todo list to change test54. However, the todo
> list is very, very long...
I misspoke. The `rm -f' is NOT a problem - the user should
have that utility. There is another problem with test54.
>>>> When I run `make Make_dos_sh.mak clean' it cleans things up.
>>>> Are there other targets I should use for a full test or is
>>>> that accomplished with the make file?
>>>>
>>>> One little problem. The unix utility command `rm -f X*'
>>>> produces an error message with there are no X* files. What
>>>> is the way around that?
>>> I think that's normal.
>> OK. With test54 removed, I've run several tests and they
>> each produced an `ALL DONE'. Apparently that means
>> everything worked?
> Or that nothing was tested :-).
>> Here are the tests I ran:
>>
>> make -f Make_dos_sh.mak nongui
>> make -f Make_dos_sh.mak small
>> make -f Make_dos_sh.mak gui
>> make -f Make_dos_sh.mak win32
>>
>> The second test isn't much of a test :-)
Why not have a test that tests all of them:
vimall:<TAB>fixff $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS_GUI) $(SCRIPTS32)
Otherwise we appear to redundantly test. This should be the
first (default) test. I've added it to Make_ming.mak for
testdir.
--
Best regards,
Bill
--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---
#
# Makefile to run tests for Vim, on Dos-like machines
# with sh.exe or zsh.exe in the path or not.
#
# Note that test54 has been removed until it is fixed.
#
# Requires a set of Unix tools: echo, diff, etc.
ifneq (sh.exe, $(SHELL))
DEL = rm -f
MV = mv
CP = cp
DIRSLASH = /
else
DEL = del
MV = rename
CP = copy
DIRSLASH = \\
endif
VIMPROG = ..$(DIRSLASH)vim
# Omitted:
# test2 "\\tmp" doesn't work.
# test10 'errorformat' is different
# test12 can't unlink a swap file
# test25 uses symbolic link
# test27 can't edit file with "*" in file name
# test31 16 bit version runs out of memory...
SCRIPTS16 = test1.out test19.out test20.out test22.out \
test23.out test24.out test28.out test29.out \
test35.out test36.out test43.out \
test44.out test45.out test46.out test47.out \
test48.out test51.out test53.out \
test55.out test56.out test57.out test58.out test59.out \
test60.out test61.out test62.out test63.out test64.out
# Had to remove test54 which doesn't work yet.
# test54.out
SCRIPTS = test3.out test4.out test5.out test6.out test7.out \
test8.out test9.out test11.out test13.out test14.out \
test15.out test17.out test18.out test21.out test26.out \
test30.out test31.out test32.out test33.out test34.out \
test37.out test38.out test39.out test40.out test41.out \
test42.out test52.out test65.out
SCRIPTS32 = test50.out
SCRIPTS_GUI = test16.out
.SUFFIXES: .in .out
vimall: fixff $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS_GUI) $(SCRIPTS32)
echo ALL DONE
nongui: fixff $(SCRIPTS16) $(SCRIPTS)
echo ALL DONE
small:
echo ALL DONE
gui: fixff $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS_GUI)
echo ALL DONE
win32: fixff $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS32)
echo ALL DONE
fixff:
-$(VIMPROG) -u dos.vim --noplugin "+argdo set ff=dos|upd" +q *.in *.ok
clean:
-$(DEL) *.out
-$(DEL) test.ok
-$(DEL) small.vim
-$(DEL) tiny.vim
-$(DEL) mbyte.vim
-$(DEL) X*
-$(DEL) viminfo
.in.out:
$(CP) $*.ok test.ok
$(VIMPROG) -u dos.vim -U NONE --noplugin -s dotest.in $*.in
diff test.out $*.ok
-$(DEL) $*.out
$(MV) test.out $*.out
-$(DEL) X*
-$(DEL) test.ok
-$(DEL) viminfo