1This directory contains tests for various Vim features. 2For testing an indent script see runtime/indent/testdir/README.txt. 3 4If it makes sense, add a new test method to an already existing file. You may 5want to separate it from other tests with comment lines. 6 7The numbered tests are older, we have switched to named tests. Don't add any 8more numbered tests. 9 10And then you can choose between a new style test, which is a Vim script, or an 11old style test, which uses Normal mode commands. Use a new style test if you 12can. Use an old style test when it needs to run without the +eval feature. 13 14 15TO ADD A NEW STYLE TEST: 16 171) Create a test_<subject>.vim file. 182) Add test_<subject>.res to NEW_TESTS_RES in Make_all.mak in alphabetical 19 order. 203) Also add an entry "test_<subject>" to NEW_TESTS in Make_all.mak. 214) Use make test_<subject> to run a single test. 22 23At 2), instead of running the test separately, it can be included in 24"test_alot". Do this for quick tests without side effects. The test runs a 25bit faster, because Vim doesn't have to be started, one Vim instance runs many 26tests. 27 28 29What you can use (see test_assert.vim for an example): 30 31- Call assert_equal(), assert_true(), assert_false(), etc. 32 33- Use assert_fails() to check for expected errors. 34 35- Use try/catch to avoid an exception aborts the test. 36 37- Use test_alloc_fail() to have memory allocation fail. This makes it possible 38 to check memory allocation failures are handled gracefully. You need to 39 change the source code to add an ID to the allocation. Add a new one to 40 alloc_id_T, before aid_last. 41 42- Use test_override() to make Vim behave differently, e.g. if char_avail() 43 must return FALSE for a while. E.g. to trigger the CursorMovedI autocommand 44 event. See test_cursor_func.vim for an example. 45 46- If the bug that is being tested isn't fixed yet, you can throw an exception 47 with "Skipped" so that it's clear this still needs work. E.g.: throw 48 "Skipped: Bug with <c-e> and popupmenu not fixed yet" 49 50- See the start of runtest.vim for more help. 51 52 53TO ADD A SCREEN DUMP TEST: 54 55Mostly the same as writing a new style test. Additionally, see help on 56"terminal-dumptest". Put the reference dump in "dumps/Test_func_name.dump". 57 58 59TO ADD AN OLD STYLE TEST: 60 611) Create test_<subject>.in and test_<subject>.ok files. 622) Add test_<subject>.out to SCRIPTS_ALL in Make_all.mak in alphabetical order. 633) Use make test_<subject>.out to run a single test in src/testdir/. 64 Use make test_<subject> to run a single test in src/. 654) Also add an entry in src/Makefile. 66 67Keep in mind that the files are used as if everything was typed: 68- To add comments use: :" (that's an Ex command comment) 69- A line break is like pressing Enter. If that happens on the last line 70 you'll hear a beep! 71