Hi Bram!
On Do, 07 Nov 2013, Christian Brabandt wrote:
> On Thu, November 7, 2013 03:26, Bram Moolenaar wrote:
> > Thanks. Are you scared of the number 100? :-)
>
> kind of. The more tests we add, the harder it is to find one, that can
> be used for adding more tests. So I figured, it would make sense, to
> give them more meaningful names, so one can make an educated guess
> from the name what they are about.
>
> Plus, it prevents name clashes and allows to easier handle local
> patches. I have a bunch of local patches laying around, that each
> wants to add test100.in and .ok and once I go through my patch queue,
> it gets more and more likely, that a patch can't be applied, because
> of that.
>
> BTW: is there a reason, not to make the Test Makefile use wildcard
> expansion to find all relevant tests? (i.e. something like this:
>
> SCRIPTS = $(subst in,out,$(wildcard test*.in))
>
> Well, I just see, this would need a couple of more changes, to exclude
> the test*a.in files, but should be reasonable, I think.
> (Not sure if this is really workable on non GNU Systems).
Here is a patch, that
1) documents the contents of the testfiles.
(the README was generated by the first couple of lines of each
test*.in file)
2) uses wildcard with the main (Unix) Makefile
3) renames a couple of tests, so that wildcards can be used more easily
4) changes test50 to check for a windows system
5) does not include test100 yet ;(
Best,
Christian
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.
diff --git a/src/testdir/test71a.in b/src/testdir/71a_test.in
rename from src/testdir/test71a.in
rename to src/testdir/71a_test.in
diff --git a/src/testdir/Make_vms.mms b/src/testdir/Make_vms.mms
--- a/src/testdir/Make_vms.mms
+++ b/src/testdir/Make_vms.mms
@@ -62,7 +62,7 @@
.SUFFIXES : .out .in
SCRIPT = test1.out test2.out test3.out test4.out test5.out \
- test6.out test7.out test8.out test9.out test10a.out\
+ test6.out test7.out test8.out test9.out vms_test10a.out \
test13.out test14.out test15.out test17.out \
test18.out test19.out test20.out test21.out test22.out \
test23.out test24.out test26.out \
diff --git a/src/testdir/Makefile b/src/testdir/Makefile
--- a/src/testdir/Makefile
+++ b/src/testdir/Makefile
@@ -11,26 +11,7 @@
# VALGRIND = valgrind --tool=memcheck --leak-check=yes --num-callers=15 --log-file=valgrind.$*
-SCRIPTS = test1.out test2.out test3.out test4.out test5.out test6.out \
- test7.out test8.out test9.out test10.out test11.out \
- test12.out test13.out test14.out test15.out test17.out \
- test18.out test19.out test20.out test21.out test22.out \
- test23.out test24.out test25.out test26.out test27.out \
- test28.out test29.out test30.out test31.out test32.out \
- test33.out test34.out test35.out test36.out test37.out \
- test38.out test39.out test40.out test41.out test42.out \
- test43.out test44.out test45.out test46.out test47.out \
- test48.out test49.out test51.out test52.out test53.out \
- test54.out test55.out test56.out test57.out test58.out \
- test59.out test60.out test61.out test62.out test63.out \
- test64.out test65.out test66.out test67.out test68.out \
- test69.out test70.out test71.out test72.out test73.out \
- test74.out test75.out test76.out test77.out test78.out \
- test79.out test80.out test81.out test82.out test83.out \
- test84.out test85.out test86.out test87.out test88.out \
- test89.out test90.out test91.out test92.out test93.out \
- test94.out test95.out test96.out test97.out test98.out \
- test99.out
+SCRIPTS := $(subst in,out,$(wildcard test*.in))
SCRIPTS_GUI = test16.out
diff --git a/src/testdir/README b/src/testdir/README
new file mode 100644
--- /dev/null
+++ b/src/testdir/README
@@ -0,0 +1,788 @@
+========
+test1.in
+========
+
+First a simple test to check if the test script works.
+
+If Vim was not compiled with the +eval feature, the small.vim script will be
+set to copy the test.ok file to test.out, so that it looks like the test
+succeeded. Otherwise an empty small.vim is written. small.vim is sourced by
+tests that require the +eval feature or other features that are missing in the
+small version.
+
+If Vim was not compiled with the +windows feature, the tiny.vim script will be
+set like small.vim above. tiny.vim is sourced by tests that require the
++windows feature or other features that are missing in the tiny version.
+
+If Vim was not compiled with the +multi_byte feature, the mbyte.vim script will
+be set like small.vim above. mbyte.vim is sourced by tests that require the
++multi_byte feature.
+Similar logic is applied to the +mzscheme feature, using mzscheme.vim.
+Similar logic is applied to the +lua feature, using lua.vim.
+
+========
+test2.in
+========
+
+This is a test if a URL is recognized by "gf", with the cursor before and
+after the "://". Also test ":\\".
+
+========
+test3.in
+========
+
+Test for 'cindent'
+
+========
+test4.in
+========
+
+Test for autocommand that changes current buffer on BufEnter event.
+Check if modelines are interpreted for the correct buffer.
+
+========
+test5.in
+========
+
+Test for autocommand that deletes the current buffer on BufLeave event.
+Also test deleting the last buffer, should give a new, empty buffer.
+
+========
+test6.in
+========
+
+Test for autocommand that redefines the argument list, when doing ":all".
+
+========
+test7.in
+========
+
+Test for autocommand that changes the buffer list, when doing ":ball".
+
+========
+test8.in
+========
+
+Test for BufWritePre autocommand that deletes or unloads the buffer.
+Test for BufUnload autocommand that unloads all other buffers.
+
+========
+test9.in
+========
+
+Test for Bufleave autocommand that deletes the buffer we are about to edit.
+
+=========
+test10.in
+=========
+
+Test for 'errorformat'. This will fail if the quickfix feature was disabled.
+
+=========
+test11.in
+=========
+
+Tests for autocommands:
+- FileWritePre writing a compressed file
+- FileReadPost reading a compressed file
+- BufNewFile reading a file template
+- BufReadPre decompressing the file to be read
+- FilterReadPre substituting characters in the temp file
+- FilterReadPost substituting characters after filtering
+- FileReadPre set options for decompression
+- FileReadPost decompress the file
+
+Note: This test is skipped if "gzip" is not available.
+$GZIP is made empty, "-v" would cause trouble.
+Use a FileChangedShell autocommand to avoid a prompt for "Xtestfile.gz" being
+modified outside of Vim (noticed on Solaris).
+
+=========
+test12.in
+=========
+
+Tests for 'directory' option.
+- ".", in same dir as file
+- "./dir", in directory relative to file
+- "dir", in directory relative to current dir
+
+=========
+test13.in
+=========
+
+Tests for autocommands on :close command
+
+Write three files and open them, each in a window.
+Then go to next window, with autocommand that deletes the previous one.
+Do this twice, writing the file.
+
+Also test deleting the buffer on a Unload event. If this goes wrong there
+will be the ATTENTION prompt.
+
+Also test changing buffers in a BufDel autocommand. If this goes wrong there
+are ml_line errors and/or a Crash.
+
+=========
+test14.in
+=========
+
+Tests for "vaBiB", end could be wrong.
+Also test ":s/pat/sub/" with different ~s in sub.
+Also test for ^Vxff and ^Vo123 in Insert mode.
+Also test "[m", "]m", "[M" and "]M"
+Also test search()
+
+=========
+test15.in
+=========
+
+Tests for :right on text with embedded TAB.
+Also test formatting a paragraph.
+Also test undo after ":%s" and formatting.
+
+=========
+test16.in
+=========
+
+Tests for resetting "secure" flag after GUI has started.
+For KDE set a font, empty 'guifont' may cause a hang.
+
+=========
+test17.in
+=========
+
+Tests for:
+- "gf" on ${VAR},
+- ":checkpath!" with various 'include' settings.
+
+=========
+test18.in
+=========
+
+Tests for not doing smart indenting when it isn't set.
+
+=========
+test19.in
+=========
+
+Tests for "r<Tab>" with 'smarttab' and 'expandtab' set/not set.
+Also test that dv_ works correctly
+
+=========
+test20.in
+=========
+
+Tests Blockwise Visual when there are TABs before the text.
+First test for undo working properly when executing commands from a register.
+Also test this in an empty buffer.
+
+=========
+test21.in
+=========
+
+Tests for [ CTRL-I with a count and CTRL-W CTRL-I with a count
+
+=========
+test22.in
+=========
+
+Tests for file with some lines ending in CTRL-M, some not
+
+=========
+test23.in
+=========
+
+Tests for complicated + argument to :edit command
+
+=========
+test24.in
+=========
+
+Tests for regexp with backslash and other special characters inside []
+Also test backslash for hex/octal numbered character.
+
+=========
+test25.in
+=========
+
+Test for jumping to a tag with 'hidden' set, with symbolic link in path of tag.
+This only works for Unix, because of the symbolic link.
+
+=========
+test26.in
+=========
+
+Test for :execute, :while and :if
+
+=========
+test27.in
+=========
+
+Test for expanding file names
+
+=========
+test28.in
+=========
+
+Test for sourcing a file with CTRL-V's at the end of the line
+
+=========
+test29.in
+=========
+
+Test for joining lines and marks in them
+ in compatible and nocompatible modes
+ and with 'joinspaces' set or not
+ and with 'cpoptions' flag 'j' set or not
+
+=========
+test30.in
+=========
+
+Test for a lot of variations of the 'fileformats' option
+
+Note: This test will fail if "cat" is not available.
+
+=========
+test31.in
+=========
+
+Test for commands that close windows and/or buffers:
+:quit
+:close
+:hide
+:only
+:sall
+:all
+:ball
+:buf
+:edit
+
+=========
+test32.in
+=========
+
+Test for insert expansion
+
+:se cpt=.,w
+* add-expands (word from next line) from other window
+* add-expands (current buffer first)
+* Local expansion, ends in an empty line (unless it becomes a global expansion)
+* starts Local and switches to global add-expansion
+:se cpt=.,w,i
+* i-add-expands and switches to local
+* add-expands lines (it would end in an empty line if it didn't ignored it self)
+:se cpt=kXtestfile
+* checks k-expansion, and file expansion (use Xtest11 instead of test11,
+* because TEST11.OUT may match first on DOS)
+:se cpt=w
+* checks make_cyclic in other window
+:se cpt=u nohid
+* checks unloaded buffer expansion
+* checks adding mode abortion
+:se cpt=t,d
+* tag expansion, define add-expansion interrupted
+* t-expansion
+
+=========
+test33.in
+=========
+
+Test for 'lisp'
+If the lisp feature is not enabled, this will fail!
+
+=========
+test34.in
+=========
+
+Test for user functions.
+Also test an <expr> mapping calling a function.
+Also test that a builtin function cannot be replaced.
+
+=========
+test35.in
+=========
+
+Test Ctrl-A and Ctrl-X, which increment and decrement decimal, hexadecimal,
+and octal numbers.
+
+=========
+test36.in
+=========
+
+Test character classes in regexp using regexpengine 0, 1, 2.
+
+=========
+test37.in
+=========
+
+Test for 'scrollbind'. <[email protected]> Do not add a line below!
+
+=========
+test38.in
+=========
+
+Test Virtual replace mode.
+
+=========
+test39.in
+=========
+
+Test Visual block mode commands
+And test "U" in Visual mode, also on German sharp S.
+
+=========
+test40.in
+=========
+
+Test for "*Cmd" autocommands
+
+=========
+test41.in
+=========
+
+Test for writing and reading a file of over 100 Kbyte
+
+1 line: "This is the start"
+3001 lines: "This is the leader"
+1 line: "This is the middle"
+3001 lines: "This is the trailer"
+1 line: "This is the end"
+
+=========
+test42.in
+=========
+
+Test for writing and reading a file starting with a BOM
+
+=========
+test43.in
+=========
+
+Tests for regexp with various magic settings.
+
+=========
+test44.in
+=========
+
+Tests for regexp with multi-byte encoding and various magic settings.
+Test matchstr() with a count and multi-byte chars.
+See test99 for exactly the same test with re=2.
+
+=========
+test45.in
+=========
+
+Tests for folding.
+
+=========
+test46.in
+=========
+
+Tests for multi-line regexps with ":s".
+
+=========
+test47.in
+=========
+
+Tests for vertical splits and filler lines in diff mode
+
+=========
+test48.in
+=========
+
+This is a test of 'virtualedit'.
+
+=========
+test49.in
+=========
+
+This is a test of the script language.
+
+If after adding a new test, the test output doesn't appear properly in
+test49.failed, try to add one ore more "G"s at the line ending in "test.out"
+
+=========
+test50.in
+=========
+
+Test for shortpathname ':8' extension.
+Only for use on Win32 systems!
+
+=========
+test51.in
+=========
+
+Tests for ":highlight".
+
+=========
+test52.in
+=========
+
+Tests for reading and writing files with conversion for Win32.
+
+=========
+test53.in
+=========
+
+Tests for string and html text objects.
+
+Note that the end-of-line moves the cursor to the next test line.
+
+Also test match() and matchstr()
+
+=========
+test54.in
+=========
+
+Some tests for buffer-local autocommands
+
+=========
+test55.in
+=========
+
+Tests for List and Dictionary types.
+
+=========
+test56.in
+=========
+
+Test for script-local function.
+
+=========
+test57.in
+=========
+
+Tests for :sort command.
+
+=========
+test58.in
+=========
+
+Tests for spell checking.
+
+=========
+test59.in
+=========
+
+Tests for spell checking with 'encoding' set to "utf-8".
+
+=========
+test60.in
+=========
+
+Tests for the exists() function.
+
+=========
+test61.in
+=========
+
+Tests for undo tree.
+Since this script is sourced we need to explicitly break changes up in
+undo-able pieces. Do that by setting 'undolevels'.
+Also tests :earlier and :later.
+
+=========
+test62.in
+=========
+
+Tests for tab pages
+
+=========
+test63.in
+=========
+
+Test for ":match", ":2match", ":3match", "clearmatches()", "getmatches()",
+"matchadd()", "matcharg()", "matchdelete()", and "setmatches()".
+
+=========
+test64.in
+=========
+
+Test for regexp patterns without multi-byte support.
+See test95 for multi-byte tests.
+
+A pattern that gives the expected result produces OK, so that we know it was
+actually tried.
+
+=========
+test65.in
+=========
+
+Test for floating point and logical operators.
+
+=========
+test66.in
+=========
+
+Test for visual block shift and tab characters.
+
+=========
+test67.in
+=========
+
+Test that groups and patterns are tested correctly when calling exists() for
+autocommands.
+
+=========
+test68.in
+=========
+
+Test for text formatting.
+
+Results of test68:
+
+=========
+test69.in
+=========
+
+Test for multi-byte text formatting.
+Also test, that 'mps' with multibyte chars works.
+And test "ra" on multi-byte characters.
+Also test byteidx() and byteidxcomp()
+
+=========
+test70.in
+=========
+
+Smoke test for MzScheme interface and mzeval() function
+
+=========
+test71.in
+=========
+
+Test for encryption.
+The test data is in another file to avoid problems with 'encoding', especially
+cp932.
+
+=========
+test72.in
+=========
+
+Tests for undo file.
+Since this script is sourced we need to explicitly break changes up in
+undo-able pieces. Do that by setting 'undolevels'.
+
+=========
+test73.in
+=========
+
+Tests for find completion.
+
+=========
+test74.in
+=========
+
+" Tests for storing global variables in the .viminfo file
+
+=========
+test75.in
+=========
+
+Tests for maparg().
+
+=========
+test76.in
+=========
+
+Tests for completefunc/omnifunc.
+
+=========
+test77.in
+=========
+
+Inserts 2 million lines with consecutive integers starting from 1
+(essentially, the output of GNU's seq 1 2000000), writes them to Xtest
+and writes its cksum to test.out.
+
+We need 2 million lines to trigger a call to mf_hash_grow(). If it would mess
+up the lines the checksum would differ.
+
+cksum is part of POSIX and so should be available on most Unixes.
+If it isn't available then the test will be skipped.
+
+=========
+test78.in
+=========
+
+Inserts 10000 lines with text to fill the swap file with two levels of pointer
+blocks. Then recovers from the swap file and checks all text is restored.
+
+We need about 10000 lines of 100 characters to get two levels of pointer
+blocks.
+
+=========
+test79.in
+=========
+
+Test for *sub-replace-special* and *sub-replace-expression* on :substitute.
+Test for submatch() on :substitue.
+Test for *:s%* on :substitute.
+
+=========
+test80.in
+=========
+
+Test for *sub-replace-special* and *sub-replace-expression* on substitue().
+Test for submatch() on substitue().
+Test for *:s%* on :substitute.
+
+=========
+test81.in
+=========
+
+Test for t movement command and 'cpo-;' setting
+
+=========
+test82.in
+=========
+
+Tests for case-insensitive UTF-8 comparisons (utf_strnicmp() in mbyte.c)
+Also test "g~ap".
+
+=========
+test83.in
+=========
+
+Tests for tag search with !_TAG_FILE_ENCODING.
+
+=========
+test84.in
+=========
+
+Tests for curswant not changing when setting an option
+
+=========
+test85.in
+=========
+
+Test for Lua interface and luaeval() function
+
+=========
+test86.in
+=========
+
+Tests for various python features.
+
+NOTE: This will cause errors when run under valgrind.
+This would require recompiling Python with:
+ ./configure --without-pymalloc
+See http://svn.python.org/view/python/trunk/Misc/README.valgrind?view=markup
+
+=========
+test87.in
+=========
+
+Tests for various python features.
+
+=========
+test88.in
+=========
+
+vim: set ft=vim
+
+Tests for correct display (cursor column position) with +conceal and
+tabulators.
+
+=========
+test89.in
+=========
+
+- Some tests for setting 'number' and 'relativenumber'
+ This is not all that useful now that the options are no longer reset when
+ setting the other.
+- Some tests for findfile() function
+
+=========
+test90.in
+=========
+
+Tests for sha256() function.
+
+=========
+test91.in
+=========
+
+Tests for getbufvar(), getwinvar(), gettabvar() and gettabwinvar().
+
+=========
+test92.in
+=========
+
+Tests if :mksession saves cursor columns correctly in presence of tab and
+multibyte characters when fileencoding=utf-8.
+
+=========
+test93.in
+=========
+
+Tests if :mksession saves cursor columns correctly in presence of tab and
+multibyte characters when fileencoding=latin1.
+
+=========
+test94.in
+=========
+
+Test for Visual mode and operators
+
+Tests for the two kinds of operations: Those executed with Visual mode
+followed by an operator and those executed via Operator-pending mode. Also
+part of the test are mappings, counts, and repetition with the . command.
+
+Test cases:
+- Visual modes (v V CTRL-V) followed by an operator; count; repeating
+- Visual mode maps; count; repeating
+ - Simple
+ - With an Ex command (custom text object)
+- Operator-pending mode maps
+ - Simple
+ - With Ex command moving the cursor
+ - With Ex command and Visual selection (custom text object)
+- Patch 7.3.879: Properly abort Ex command in Operator-pending mode
+
+=========
+test95.in
+=========
+
+Test for regexp patterns with multi-byte support, using utf-8.
+See test64 for the non-multi-byte tests.
+
+A pattern that gives the expected result produces OK, so that we know it was
+actually tried.
+
+=========
+test96.in
+=========
+
+This will test for problems in quickfix:
+A. incorrectly copying location lists which caused the location list to show a
+ different name than the file that was actually being displayed.
+B. not reusing the window for which the location list window is opened but
+ instead creating new windows.
+C. make sure that the location list window is not reused instead of the window
+ it belongs to.
+
+Note: to debug a problem comment out the last ":b 1" in a test and testing will
+stop at this point.
+
+=========
+test97.in
+=========
+
+Test whether glob()/globpath() return correct results with certain escaped
+characters.
+
+=========
+test98.in
+=========
+
+Test for 'scrollbind' causing an unexpected scroll of one of the windows.
+
+=========
+test99.in
+=========
+
+Tests for regexp with multi-byte encoding and various magic settings.
+Test matchstr() with a count and multi-byte chars.
+See test44 for exactly the same test with re=1.
+
diff --git a/src/testdir/test17a.in b/src/testdir/gf_test17.in
rename from src/testdir/test17a.in
rename to src/testdir/gf_test17.in
diff --git a/src/testdir/test17.in b/src/testdir/test17.in
--- a/src/testdir/test17.in
+++ b/src/testdir/test17.in
@@ -38,8 +38,8 @@
:brewind
ENDTEST
- ${CDIR}/test17a.in
- $TDIR/test17a.in
+ ${CDIR}/gf_test17.in
+ $TDIR/gf_test17.in
STARTTEST
:" check for 'include' without \zs or \ze
diff --git a/src/testdir/test50.in b/src/testdir/test50.in
--- a/src/testdir/test50.in
+++ b/src/testdir/test50.in
@@ -3,6 +3,11 @@
STARTTEST
:so small.vim
+:if !(has("win32") || has("win16") || has("win64") || has("win95"))
+:e! test50.ok
+:w! test.out
+:q!
+:endif
:fun! TestIt(file, bits, expected)
let res=fnamemodify(a:file,a:bits)
if a:expected == ''
diff --git a/src/testdir/test71.in b/src/testdir/test71.in
--- a/src/testdir/test71.in
+++ b/src/testdir/test71.in
@@ -6,7 +6,7 @@
:so small.vim
:set enc=latin1
:bwipe!
-:r test71a.in
+:r 71a_test.in
:/^start of text/+1
:let text_lines = getline('.', line('.') + 2)
:/^start of cm=zip bytes/+1
diff --git a/src/testdir/test10a.in b/src/testdir/vms_test10a.in
rename from src/testdir/test10a.in
rename to src/testdir/vms_test10a.in
diff --git a/src/testdir/test10a.ok b/src/testdir/vms_test10a.ok
rename from src/testdir/test10a.ok
rename to src/testdir/vms_test10a.ok