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

Raspunde prin e-mail lui