On Sat 13-Sep-08 1:53pm -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.]

>> 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).

>> 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?

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 :-)

-- 
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 al tests for Vim, on Dos-like machines
# with sh.exe or zsh.exe in the path
#
# Note that test54 has been removed until it is fixed.
#
# Requires a set of Unix tools: echo, diff, etc.

VIMPROG = ../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 contains "!rf -f" - CMD doesn't like this
#                                                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

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:
        -rm -f *.out
        -rm -f test.ok
        -rm -f small.vim
        -rm -f tiny.vim
        -rm -f mbyte.vim
        -rm -f X*
        -rm -f viminfo

.in.out:
        cp $*.ok test.ok
        $(VIMPROG) -u dos.vim -U NONE --noplugin -s dotest.in $*.in
        diff test.out $*.ok
        -rm -f $*.out
        mv test.out $*.out
        -rm -f X*
        -rm -f test.ok
        -rm -f viminfo

Raspunde prin e-mail lui