annotate src/testdir/runtest.vim @ 31353:49bd0e97549d v9.0.1010

patch 9.0.1010: stray warnings for existing swap files Commit: https://github.com/vim/vim/commit/23526d2539e8679ea8df14e3a018101dedc3f391 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Dec 5 15:50:41 2022 +0000 patch 9.0.1010: stray warnings for existing swap files Problem: Stray warnings for existing swap files. Solution: Wipe out the buffer until it has no name and no swap file.
author Bram Moolenaar <Bram@vim.org>
date Mon, 05 Dec 2022 17:00:05 +0100
parents 56a2af8c0980
children 7fe2e5f8be42
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7277
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1 " This script is sourced while editing the .vim file with the tests.
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
2 " When the script is successful the .res file will be created.
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
3 " Errors are appended to the test.log file.
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
4 "
8142
71aabce3142e commit https://github.com/vim/vim/commit/befb366affa6309c6b4a469ec7f729821e3a36fa
Christian Brabandt <cb@256bit.org>
parents: 8116
diff changeset
5 " To execute only specific test functions, add a second argument. It will be
18748
c7b16393c248 patch 8.1.2364: termwinscroll test is flaky on FreeBSD
Bram Moolenaar <Bram@vim.org>
parents: 18691
diff changeset
6 " matched against the names of the Test_ function. E.g.:
8142
71aabce3142e commit https://github.com/vim/vim/commit/befb366affa6309c6b4a469ec7f729821e3a36fa
Christian Brabandt <cb@256bit.org>
parents: 8116
diff changeset
7 " ../vim -u NONE -S runtest.vim test_channel.vim open_delay
71aabce3142e commit https://github.com/vim/vim/commit/befb366affa6309c6b4a469ec7f729821e3a36fa
Christian Brabandt <cb@256bit.org>
parents: 8116
diff changeset
8 " The output can be found in the "messages" file.
71aabce3142e commit https://github.com/vim/vim/commit/befb366affa6309c6b4a469ec7f729821e3a36fa
Christian Brabandt <cb@256bit.org>
parents: 8116
diff changeset
9 "
19734
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
10 " If the environment variable $TEST_FILTER is set then only test functions
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
11 " matching this pattern are executed. E.g. for sh/bash:
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
12 " export TEST_FILTER=Test_channel
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
13 " For csh:
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
14 " setenv TEST_FILTER Test_channel
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
15 "
25549
dc25589bfec0 patch 8.2.3311: Vim9: check for DO_NOT_FREE_CNT is very slow
Bram Moolenaar <Bram@vim.org>
parents: 24194
diff changeset
16 " If the environment variable $TEST_SKIP_PAT is set then test functions
dc25589bfec0 patch 8.2.3311: Vim9: check for DO_NOT_FREE_CNT is very slow
Bram Moolenaar <Bram@vim.org>
parents: 24194
diff changeset
17 " matching this pattern will be skipped. It's the opposite of $TEST_FILTER.
dc25589bfec0 patch 8.2.3311: Vim9: check for DO_NOT_FREE_CNT is very slow
Bram Moolenaar <Bram@vim.org>
parents: 24194
diff changeset
18 "
21508
6b2a5418cbc3 patch 8.2.1304: debug backtrace isn't tested much
Bram Moolenaar <Bram@vim.org>
parents: 21433
diff changeset
19 " While working on a test you can make $TEST_NO_RETRY non-empty to not retry:
6b2a5418cbc3 patch 8.2.1304: debug backtrace isn't tested much
Bram Moolenaar <Bram@vim.org>
parents: 21433
diff changeset
20 " export TEST_NO_RETRY=yes
6b2a5418cbc3 patch 8.2.1304: debug backtrace isn't tested much
Bram Moolenaar <Bram@vim.org>
parents: 21433
diff changeset
21 "
19734
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
22 " To ignore failure for tests that are known to fail in a certain environment,
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
23 " set $TEST_MAY_FAIL to a comma separated list of function names. E.g. for
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
24 " sh/bash:
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
25 " export TEST_MAY_FAIL=Test_channel_one,Test_channel_other
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
26 " The failure report will then not be included in the test.log file and
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
27 " "make test" will not fail.
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
28 "
7277
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
29 " The test script may contain anything, only functions that start with
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
30 " "Test_" are special. These will be invoked and should contain assert
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
31 " functions. See test_assert.vim for an example.
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
32 "
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
33 " It is possible to source other files that contain "Test_" functions. This
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
34 " can speed up testing, since Vim does not need to restart. But be careful
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
35 " that the tests do not interfere with each other.
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
36 "
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
37 " If an error cannot be detected properly with an assert function add the
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
38 " error to the v:errors list:
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
39 " call add(v:errors, 'test foo failed: Cannot find xyz')
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
40 "
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
41 " If preparation for each Test_ function is needed, define a SetUp function.
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
42 " It will be called before each Test_ function.
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
43 "
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
44 " If cleanup after each Test_ function is needed, define a TearDown function.
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
45 " It will be called after each Test_ function.
8029
770dd91ad9f7 commit https://github.com/vim/vim/commit/00af60bbb6cc7e8ccafddb30a1964f891b800bce
Christian Brabandt <cb@256bit.org>
parents: 7637
diff changeset
46 "
770dd91ad9f7 commit https://github.com/vim/vim/commit/00af60bbb6cc7e8ccafddb30a1964f891b800bce
Christian Brabandt <cb@256bit.org>
parents: 7637
diff changeset
47 " When debugging a test it can be useful to add messages to v:errors:
15377
88b0a490816e patch 8.1.0696: when test_edit fails 'insertmode' may not be reset
Bram Moolenaar <Bram@vim.org>
parents: 15180
diff changeset
48 " call add(v:errors, "this happened")
8029
770dd91ad9f7 commit https://github.com/vim/vim/commit/00af60bbb6cc7e8ccafddb30a1964f891b800bce
Christian Brabandt <cb@256bit.org>
parents: 7637
diff changeset
49
7277
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
50
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
51 " Without the +eval feature we can't run these tests, bail out.
21779
30bdd2e4a6f9 patch 8.2.1439: tiny and small builds have no test coverage
Bram Moolenaar <Bram@vim.org>
parents: 21668
diff changeset
52 silent! while 0
30bdd2e4a6f9 patch 8.2.1439: tiny and small builds have no test coverage
Bram Moolenaar <Bram@vim.org>
parents: 21668
diff changeset
53 qa!
30bdd2e4a6f9 patch 8.2.1439: tiny and small builds have no test coverage
Bram Moolenaar <Bram@vim.org>
parents: 21668
diff changeset
54 silent! endwhile
7277
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
55
21253
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 20963
diff changeset
56 " In the GUI we can always change the screen size.
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 20963
diff changeset
57 if has('gui_running')
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 20963
diff changeset
58 set columns=80 lines=25
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 20963
diff changeset
59 endif
ffa6b82fa993 patch 8.2.1177: terminal2 test sometimes hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 20963
diff changeset
60
7277
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
61 " Check that the screen size is at least 24 x 80 characters.
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
62 if &lines < 24 || &columns < 80
17684
e2bfdd281578 patch 8.1.1839: insufficient info when test fails because of screen size
Bram Moolenaar <Bram@vim.org>
parents: 17356
diff changeset
63 let error = 'Screen size too small! Tests require at least 24 lines with 80 characters, got ' .. &lines .. ' lines with ' .. &columns .. ' characters'
7277
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
64 echoerr error
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
65 split test.log
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
66 $put =error
17091
d30d399139ab patch 8.1.1545: when the screen is to small there is no message about that
Bram Moolenaar <Bram@vim.org>
parents: 17032
diff changeset
67 write
d30d399139ab patch 8.1.1545: when the screen is to small there is no message about that
Bram Moolenaar <Bram@vim.org>
parents: 17032
diff changeset
68 split messages
17684
e2bfdd281578 patch 8.1.1839: insufficient info when test fails because of screen size
Bram Moolenaar <Bram@vim.org>
parents: 17356
diff changeset
69 call append(line('$'), '')
e2bfdd281578 patch 8.1.1839: insufficient info when test fails because of screen size
Bram Moolenaar <Bram@vim.org>
parents: 17356
diff changeset
70 call append(line('$'), 'From ' . expand('%') . ':')
17091
d30d399139ab patch 8.1.1545: when the screen is to small there is no message about that
Bram Moolenaar <Bram@vim.org>
parents: 17032
diff changeset
71 call append(line('$'), error)
d30d399139ab patch 8.1.1545: when the screen is to small there is no message about that
Bram Moolenaar <Bram@vim.org>
parents: 17032
diff changeset
72 write
d30d399139ab patch 8.1.1545: when the screen is to small there is no message about that
Bram Moolenaar <Bram@vim.org>
parents: 17032
diff changeset
73 qa!
7277
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
74 endif
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
75
16967
586d625e21b4 patch 8.1.1484: some tests are slow
Bram Moolenaar <Bram@vim.org>
parents: 16951
diff changeset
76 if has('reltime')
30449
55aa44dd59ef patch 9.0.0560: elapsed time since testing started is not visible
Bram Moolenaar <Bram@vim.org>
parents: 30419
diff changeset
77 let s:run_start_time = reltime()
55aa44dd59ef patch 9.0.0560: elapsed time since testing started is not visible
Bram Moolenaar <Bram@vim.org>
parents: 30419
diff changeset
78
55aa44dd59ef patch 9.0.0560: elapsed time since testing started is not visible
Bram Moolenaar <Bram@vim.org>
parents: 30419
diff changeset
79 if !filereadable('starttime')
55aa44dd59ef patch 9.0.0560: elapsed time since testing started is not visible
Bram Moolenaar <Bram@vim.org>
parents: 30419
diff changeset
80 " first test, store the overall test starting time
55aa44dd59ef patch 9.0.0560: elapsed time since testing started is not visible
Bram Moolenaar <Bram@vim.org>
parents: 30419
diff changeset
81 let s:test_start_time = localtime()
55aa44dd59ef patch 9.0.0560: elapsed time since testing started is not visible
Bram Moolenaar <Bram@vim.org>
parents: 30419
diff changeset
82 call writefile([string(s:test_start_time)], 'starttime')
55aa44dd59ef patch 9.0.0560: elapsed time since testing started is not visible
Bram Moolenaar <Bram@vim.org>
parents: 30419
diff changeset
83 else
55aa44dd59ef patch 9.0.0560: elapsed time since testing started is not visible
Bram Moolenaar <Bram@vim.org>
parents: 30419
diff changeset
84 " second or later test, read the overall test starting time
55aa44dd59ef patch 9.0.0560: elapsed time since testing started is not visible
Bram Moolenaar <Bram@vim.org>
parents: 30419
diff changeset
85 let s:test_start_time = readfile('starttime')[0]->str2nr()
55aa44dd59ef patch 9.0.0560: elapsed time since testing started is not visible
Bram Moolenaar <Bram@vim.org>
parents: 30419
diff changeset
86 endif
16967
586d625e21b4 patch 8.1.1484: some tests are slow
Bram Moolenaar <Bram@vim.org>
parents: 16951
diff changeset
87 endif
586d625e21b4 patch 8.1.1484: some tests are slow
Bram Moolenaar <Bram@vim.org>
parents: 16951
diff changeset
88
26500
8088fa133b93 patch 8.2.3780: ":cd" works differently on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
89 " Always use forward slashes.
8088fa133b93 patch 8.2.3780: ":cd" works differently on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
90 set shellslash
8088fa133b93 patch 8.2.3780: ":cd" works differently on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
91
9501
f0201deac2a2 commit https://github.com/vim/vim/commit/89b10421ca1aea55acbafac1df93be4e20210ceb
Christian Brabandt <cb@256bit.org>
parents: 9452
diff changeset
92 " Common with all tests on all systems.
f0201deac2a2 commit https://github.com/vim/vim/commit/89b10421ca1aea55acbafac1df93be4e20210ceb
Christian Brabandt <cb@256bit.org>
parents: 9452
diff changeset
93 source setup.vim
f0201deac2a2 commit https://github.com/vim/vim/commit/89b10421ca1aea55acbafac1df93be4e20210ceb
Christian Brabandt <cb@256bit.org>
parents: 9452
diff changeset
94
7391
4761fed349ed commit https://github.com/vim/vim/commit/c06624661a3aa6642304c06db9cebe553a4cab17
Christian Brabandt <cb@256bit.org>
parents: 7372
diff changeset
95 " For consistency run all tests with 'nocompatible' set.
4761fed349ed commit https://github.com/vim/vim/commit/c06624661a3aa6642304c06db9cebe553a4cab17
Christian Brabandt <cb@256bit.org>
parents: 7372
diff changeset
96 " This also enables use of line continuation.
4761fed349ed commit https://github.com/vim/vim/commit/c06624661a3aa6642304c06db9cebe553a4cab17
Christian Brabandt <cb@256bit.org>
parents: 7372
diff changeset
97 set nocp viminfo+=nviminfo
4761fed349ed commit https://github.com/vim/vim/commit/c06624661a3aa6642304c06db9cebe553a4cab17
Christian Brabandt <cb@256bit.org>
parents: 7372
diff changeset
98
15607
2dcaa860e3fc patch 8.1.0811: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents: 15377
diff changeset
99 " Use utf-8 by default, instead of whatever the system default happens to be.
15928
857ce36c8412 patch 8.1.0970: text properties test fails when 'encoding' is not utf-8
Bram Moolenaar <Bram@vim.org>
parents: 15920
diff changeset
100 " Individual tests can overrule this at the top of the file and use
857ce36c8412 patch 8.1.0970: text properties test fails when 'encoding' is not utf-8
Bram Moolenaar <Bram@vim.org>
parents: 15920
diff changeset
101 " g:orig_encoding if needed.
857ce36c8412 patch 8.1.0970: text properties test fails when 'encoding' is not utf-8
Bram Moolenaar <Bram@vim.org>
parents: 15920
diff changeset
102 let g:orig_encoding = &encoding
15607
2dcaa860e3fc patch 8.1.0811: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents: 15377
diff changeset
103 set encoding=utf-8
9618
81ba6e4eb72b commit https://github.com/vim/vim/commit/ac105ed3c420660ddbddc501c97875c48220817e
Christian Brabandt <cb@256bit.org>
parents: 9501
diff changeset
104
14889
ba1f0c06b4be patch 8.1.0456: running test hangs when the input file is being edited
Bram Moolenaar <Bram@vim.org>
parents: 14571
diff changeset
105 " REDIR_TEST_TO_NULL has a very permissive SwapExists autocommand which is for
ba1f0c06b4be patch 8.1.0456: running test hangs when the input file is being edited
Bram Moolenaar <Bram@vim.org>
parents: 14571
diff changeset
106 " the test_name.vim file itself. Replace it here with a more restrictive one,
ba1f0c06b4be patch 8.1.0456: running test hangs when the input file is being edited
Bram Moolenaar <Bram@vim.org>
parents: 14571
diff changeset
107 " so we still catch mistakes.
26092
6a0f603c52a9 patch 8.2.3579: CI sometimes fails for MinGW
Bram Moolenaar <Bram@vim.org>
parents: 25969
diff changeset
108 if has("win32")
6a0f603c52a9 patch 8.2.3579: CI sometimes fails for MinGW
Bram Moolenaar <Bram@vim.org>
parents: 25969
diff changeset
109 " replace any '/' directory separators by '\\'
6a0f603c52a9 patch 8.2.3579: CI sometimes fails for MinGW
Bram Moolenaar <Bram@vim.org>
parents: 25969
diff changeset
110 let s:test_script_fname = substitute(expand('%'), '/', '\\', 'g')
6a0f603c52a9 patch 8.2.3579: CI sometimes fails for MinGW
Bram Moolenaar <Bram@vim.org>
parents: 25969
diff changeset
111 else
6a0f603c52a9 patch 8.2.3579: CI sometimes fails for MinGW
Bram Moolenaar <Bram@vim.org>
parents: 25969
diff changeset
112 let s:test_script_fname = expand('%')
6a0f603c52a9 patch 8.2.3579: CI sometimes fails for MinGW
Bram Moolenaar <Bram@vim.org>
parents: 25969
diff changeset
113 endif
14889
ba1f0c06b4be patch 8.1.0456: running test hangs when the input file is being edited
Bram Moolenaar <Bram@vim.org>
parents: 14571
diff changeset
114 au! SwapExists * call HandleSwapExists()
ba1f0c06b4be patch 8.1.0456: running test hangs when the input file is being edited
Bram Moolenaar <Bram@vim.org>
parents: 14571
diff changeset
115 func HandleSwapExists()
21668
0843f244e547 patch 8.2.1384: no ATTENTION prompt for :vimgrep first match file
Bram Moolenaar <Bram@vim.org>
parents: 21530
diff changeset
116 if exists('g:ignoreSwapExists')
0843f244e547 patch 8.2.1384: no ATTENTION prompt for :vimgrep first match file
Bram Moolenaar <Bram@vim.org>
parents: 21530
diff changeset
117 return
0843f244e547 patch 8.2.1384: no ATTENTION prompt for :vimgrep first match file
Bram Moolenaar <Bram@vim.org>
parents: 21530
diff changeset
118 endif
17356
4fe44a3b732f patch 8.1.1677: tests get stuck when running into an existing swapfile
Bram Moolenaar <Bram@vim.org>
parents: 17123
diff changeset
119 " Ignore finding a swap file for the test script (the user might be
14889
ba1f0c06b4be patch 8.1.0456: running test hangs when the input file is being edited
Bram Moolenaar <Bram@vim.org>
parents: 14571
diff changeset
120 " editing it and do ":make test_name") and the output file.
17356
4fe44a3b732f patch 8.1.1677: tests get stuck when running into an existing swapfile
Bram Moolenaar <Bram@vim.org>
parents: 17123
diff changeset
121 " Report finding another swap file and chose 'q' to avoid getting stuck.
14889
ba1f0c06b4be patch 8.1.0456: running test hangs when the input file is being edited
Bram Moolenaar <Bram@vim.org>
parents: 14571
diff changeset
122 if expand('<afile>') == 'messages' || expand('<afile>') =~ s:test_script_fname
ba1f0c06b4be patch 8.1.0456: running test hangs when the input file is being edited
Bram Moolenaar <Bram@vim.org>
parents: 14571
diff changeset
123 let v:swapchoice = 'e'
17356
4fe44a3b732f patch 8.1.1677: tests get stuck when running into an existing swapfile
Bram Moolenaar <Bram@vim.org>
parents: 17123
diff changeset
124 else
4fe44a3b732f patch 8.1.1677: tests get stuck when running into an existing swapfile
Bram Moolenaar <Bram@vim.org>
parents: 17123
diff changeset
125 call assert_report('Unexpected swap file: ' .. v:swapname)
4fe44a3b732f patch 8.1.1677: tests get stuck when running into an existing swapfile
Bram Moolenaar <Bram@vim.org>
parents: 17123
diff changeset
126 let v:swapchoice = 'q'
14889
ba1f0c06b4be patch 8.1.0456: running test hangs when the input file is being edited
Bram Moolenaar <Bram@vim.org>
parents: 14571
diff changeset
127 endif
ba1f0c06b4be patch 8.1.0456: running test hangs when the input file is being edited
Bram Moolenaar <Bram@vim.org>
parents: 14571
diff changeset
128 endfunc
ba1f0c06b4be patch 8.1.0456: running test hangs when the input file is being edited
Bram Moolenaar <Bram@vim.org>
parents: 14571
diff changeset
129
10811
4cb74eab1733 patch 8.0.0295: test_viml hangs
Christian Brabandt <cb@256bit.org>
parents: 10807
diff changeset
130 " Avoid stopping at the "hit enter" prompt
4cb74eab1733 patch 8.0.0295: test_viml hangs
Christian Brabandt <cb@256bit.org>
parents: 10807
diff changeset
131 set nomore
4cb74eab1733 patch 8.0.0295: test_viml hangs
Christian Brabandt <cb@256bit.org>
parents: 10807
diff changeset
132
7391
4761fed349ed commit https://github.com/vim/vim/commit/c06624661a3aa6642304c06db9cebe553a4cab17
Christian Brabandt <cb@256bit.org>
parents: 7372
diff changeset
133 " Output all messages in English.
4761fed349ed commit https://github.com/vim/vim/commit/c06624661a3aa6642304c06db9cebe553a4cab17
Christian Brabandt <cb@256bit.org>
parents: 7372
diff changeset
134 lang mess C
4761fed349ed commit https://github.com/vim/vim/commit/c06624661a3aa6642304c06db9cebe553a4cab17
Christian Brabandt <cb@256bit.org>
parents: 7372
diff changeset
135
21379
20dad734a2cb patch 8.2.1240: GUI tests sometimes fail because of translations
Bram Moolenaar <Bram@vim.org>
parents: 21253
diff changeset
136 " suppress menu translation
20dad734a2cb patch 8.2.1240: GUI tests sometimes fail because of translations
Bram Moolenaar <Bram@vim.org>
parents: 21253
diff changeset
137 if has('gui_running') && exists('did_install_default_menus')
20dad734a2cb patch 8.2.1240: GUI tests sometimes fail because of translations
Bram Moolenaar <Bram@vim.org>
parents: 21253
diff changeset
138 source $VIMRUNTIME/delmenu.vim
20dad734a2cb patch 8.2.1240: GUI tests sometimes fail because of translations
Bram Moolenaar <Bram@vim.org>
parents: 21253
diff changeset
139 set langmenu=none
20dad734a2cb patch 8.2.1240: GUI tests sometimes fail because of translations
Bram Moolenaar <Bram@vim.org>
parents: 21253
diff changeset
140 source $VIMRUNTIME/menu.vim
20dad734a2cb patch 8.2.1240: GUI tests sometimes fail because of translations
Bram Moolenaar <Bram@vim.org>
parents: 21253
diff changeset
141 endif
20dad734a2cb patch 8.2.1240: GUI tests sometimes fail because of translations
Bram Moolenaar <Bram@vim.org>
parents: 21253
diff changeset
142
7545
4c922651fd78 commit https://github.com/vim/vim/commit/28fb79db6b52d1154e8dc63d227673648c2fce15
Christian Brabandt <cb@256bit.org>
parents: 7540
diff changeset
143 let s:srcdir = expand('%:p:h:h')
4c922651fd78 commit https://github.com/vim/vim/commit/28fb79db6b52d1154e8dc63d227673648c2fce15
Christian Brabandt <cb@256bit.org>
parents: 7540
diff changeset
144
21433
ad7ffbd3f02f patch 8.2.1267: MS-Windows: tests may fail due to $PROMPT value
Bram Moolenaar <Bram@vim.org>
parents: 21379
diff changeset
145 if has('win32')
ad7ffbd3f02f patch 8.2.1267: MS-Windows: tests may fail due to $PROMPT value
Bram Moolenaar <Bram@vim.org>
parents: 21379
diff changeset
146 " avoid prompt that is long or contains a line break
ad7ffbd3f02f patch 8.2.1267: MS-Windows: tests may fail due to $PROMPT value
Bram Moolenaar <Bram@vim.org>
parents: 21379
diff changeset
147 let $PROMPT = '$P$G'
21530
66f12838071d patch 8.2.1315: MS-Windows: test log contains escape sequences
Bram Moolenaar <Bram@vim.org>
parents: 21510
diff changeset
148 " On MS-Windows t_md and t_me are Vim specific escape sequences.
66f12838071d patch 8.2.1315: MS-Windows: test log contains escape sequences
Bram Moolenaar <Bram@vim.org>
parents: 21510
diff changeset
149 let s:t_bold = "\x1b[1m"
66f12838071d patch 8.2.1315: MS-Windows: test log contains escape sequences
Bram Moolenaar <Bram@vim.org>
parents: 21510
diff changeset
150 let s:t_normal = "\x1b[m"
66f12838071d patch 8.2.1315: MS-Windows: test log contains escape sequences
Bram Moolenaar <Bram@vim.org>
parents: 21510
diff changeset
151 else
66f12838071d patch 8.2.1315: MS-Windows: test log contains escape sequences
Bram Moolenaar <Bram@vim.org>
parents: 21510
diff changeset
152 let s:t_bold = &t_md
66f12838071d patch 8.2.1315: MS-Windows: test log contains escape sequences
Bram Moolenaar <Bram@vim.org>
parents: 21510
diff changeset
153 let s:t_normal = &t_me
21433
ad7ffbd3f02f patch 8.2.1267: MS-Windows: tests may fail due to $PROMPT value
Bram Moolenaar <Bram@vim.org>
parents: 21379
diff changeset
154 endif
ad7ffbd3f02f patch 8.2.1267: MS-Windows: tests may fail due to $PROMPT value
Bram Moolenaar <Bram@vim.org>
parents: 21379
diff changeset
155
22967
47a5349168ea patch 8.2.2030: some tests fail on Mac
Bram Moolenaar <Bram@vim.org>
parents: 22480
diff changeset
156 if has('mac')
26211
485c7c4afeb7 patch 8.2.3637: typos in test files
Bram Moolenaar <Bram@vim.org>
parents: 26092
diff changeset
157 " In macOS, when starting a shell in a terminal, a bash deprecation warning
22967
47a5349168ea patch 8.2.2030: some tests fail on Mac
Bram Moolenaar <Bram@vim.org>
parents: 22480
diff changeset
158 " message is displayed. This breaks the terminal test. Disable the warning
47a5349168ea patch 8.2.2030: some tests fail on Mac
Bram Moolenaar <Bram@vim.org>
parents: 22480
diff changeset
159 " message.
47a5349168ea patch 8.2.2030: some tests fail on Mac
Bram Moolenaar <Bram@vim.org>
parents: 22480
diff changeset
160 let $BASH_SILENCE_DEPRECATION_WARNING = 1
47a5349168ea patch 8.2.2030: some tests fail on Mac
Bram Moolenaar <Bram@vim.org>
parents: 22480
diff changeset
161 endif
47a5349168ea patch 8.2.2030: some tests fail on Mac
Bram Moolenaar <Bram@vim.org>
parents: 22480
diff changeset
162
31347
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
163
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
164 " A previous (failed) test run may have left swap files behind. Delete them
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
165 " before running tests again, they might interfere.
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
166 for name in s:GetSwapFileList()
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
167 call delete(name)
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
168 endfor
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
169
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
170
9121
7350959e53c3 commit https://github.com/vim/vim/commit/8e8df251bf2505e5decf258397c6069fbe5e2e01
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
171 " Prepare for calling test_garbagecollect_now().
8881
ed0b39dd7fd6 commit https://github.com/vim/vim/commit/ebf7dfa6f121c82f97d2adca3d45fbaba9ad8f7e
Christian Brabandt <cb@256bit.org>
parents: 8796
diff changeset
172 let v:testing = 1
ed0b39dd7fd6 commit https://github.com/vim/vim/commit/ebf7dfa6f121c82f97d2adca3d45fbaba9ad8f7e
Christian Brabandt <cb@256bit.org>
parents: 8796
diff changeset
173
29340
fba9e366ced4 patch 9.0.0013: reproducing memory access errors can be difficult
Bram Moolenaar <Bram@vim.org>
parents: 29165
diff changeset
174 " By default, copy each buffer line into allocated memory, so that valgrind can
fba9e366ced4 patch 9.0.0013: reproducing memory access errors can be difficult
Bram Moolenaar <Bram@vim.org>
parents: 29165
diff changeset
175 " detect accessing memory before and after it.
fba9e366ced4 patch 9.0.0013: reproducing memory access errors can be difficult
Bram Moolenaar <Bram@vim.org>
parents: 29165
diff changeset
176 call test_override('alloc_lines', 1)
fba9e366ced4 patch 9.0.0013: reproducing memory access errors can be difficult
Bram Moolenaar <Bram@vim.org>
parents: 29165
diff changeset
177
7545
4c922651fd78 commit https://github.com/vim/vim/commit/28fb79db6b52d1154e8dc63d227673648c2fce15
Christian Brabandt <cb@256bit.org>
parents: 7540
diff changeset
178 " Support function: get the alloc ID by name.
4c922651fd78 commit https://github.com/vim/vim/commit/28fb79db6b52d1154e8dc63d227673648c2fce15
Christian Brabandt <cb@256bit.org>
parents: 7540
diff changeset
179 function GetAllocId(name)
4c922651fd78 commit https://github.com/vim/vim/commit/28fb79db6b52d1154e8dc63d227673648c2fce15
Christian Brabandt <cb@256bit.org>
parents: 7540
diff changeset
180 exe 'split ' . s:srcdir . '/alloc.h'
7595
99e93f72ff91 commit https://github.com/vim/vim/commit/065ee9aebf9abe08ae8c0dba7d05cbdcc423c8e0
Christian Brabandt <cb@256bit.org>
parents: 7545
diff changeset
181 let top = search('typedef enum')
99e93f72ff91 commit https://github.com/vim/vim/commit/065ee9aebf9abe08ae8c0dba7d05cbdcc423c8e0
Christian Brabandt <cb@256bit.org>
parents: 7545
diff changeset
182 if top == 0
99e93f72ff91 commit https://github.com/vim/vim/commit/065ee9aebf9abe08ae8c0dba7d05cbdcc423c8e0
Christian Brabandt <cb@256bit.org>
parents: 7545
diff changeset
183 call add(v:errors, 'typedef not found in alloc.h')
99e93f72ff91 commit https://github.com/vim/vim/commit/065ee9aebf9abe08ae8c0dba7d05cbdcc423c8e0
Christian Brabandt <cb@256bit.org>
parents: 7545
diff changeset
184 endif
7545
4c922651fd78 commit https://github.com/vim/vim/commit/28fb79db6b52d1154e8dc63d227673648c2fce15
Christian Brabandt <cb@256bit.org>
parents: 7540
diff changeset
185 let lnum = search('aid_' . a:name . ',')
4c922651fd78 commit https://github.com/vim/vim/commit/28fb79db6b52d1154e8dc63d227673648c2fce15
Christian Brabandt <cb@256bit.org>
parents: 7540
diff changeset
186 if lnum == 0
4c922651fd78 commit https://github.com/vim/vim/commit/28fb79db6b52d1154e8dc63d227673648c2fce15
Christian Brabandt <cb@256bit.org>
parents: 7540
diff changeset
187 call add(v:errors, 'Alloc ID ' . a:name . ' not defined')
4c922651fd78 commit https://github.com/vim/vim/commit/28fb79db6b52d1154e8dc63d227673648c2fce15
Christian Brabandt <cb@256bit.org>
parents: 7540
diff changeset
188 endif
4c922651fd78 commit https://github.com/vim/vim/commit/28fb79db6b52d1154e8dc63d227673648c2fce15
Christian Brabandt <cb@256bit.org>
parents: 7540
diff changeset
189 close
7595
99e93f72ff91 commit https://github.com/vim/vim/commit/065ee9aebf9abe08ae8c0dba7d05cbdcc423c8e0
Christian Brabandt <cb@256bit.org>
parents: 7545
diff changeset
190 return lnum - top - 1
7545
4c922651fd78 commit https://github.com/vim/vim/commit/28fb79db6b52d1154e8dc63d227673648c2fce15
Christian Brabandt <cb@256bit.org>
parents: 7540
diff changeset
191 endfunc
4c922651fd78 commit https://github.com/vim/vim/commit/28fb79db6b52d1154e8dc63d227673648c2fce15
Christian Brabandt <cb@256bit.org>
parents: 7540
diff changeset
192
30449
55aa44dd59ef patch 9.0.0560: elapsed time since testing started is not visible
Bram Moolenaar <Bram@vim.org>
parents: 30419
diff changeset
193 if has('reltime')
55aa44dd59ef patch 9.0.0560: elapsed time since testing started is not visible
Bram Moolenaar <Bram@vim.org>
parents: 30419
diff changeset
194 let g:func_start = reltime()
55aa44dd59ef patch 9.0.0560: elapsed time since testing started is not visible
Bram Moolenaar <Bram@vim.org>
parents: 30419
diff changeset
195 endif
30419
f652823ce8bb patch 9.0.0545: when a test is slow and CI times out there is no time info
Bram Moolenaar <Bram@vim.org>
parents: 30357
diff changeset
196
31347
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
197 " Get the list of swap files in the current directory.
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
198 func s:GetSwapFileList()
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
199 let save_dir = &directory
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
200 let &directory = '.'
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
201 let files = swapfilelist()
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
202 let &directory = save_dir
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
203
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
204 " remove a match with runtest.vim
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
205 let idx = indexof(files, 'v:val =~ "runtest.vim."')
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
206 if idx >= 0
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
207 call remove(files, idx)
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
208 endif
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
209
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
210 return files
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
211 endfunc
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
212
30451
c9d72c379cec patch 9.0.0561: when a test gets stuck it just hangs forever
Bram Moolenaar <Bram@vim.org>
parents: 30449
diff changeset
213 " Invoked when a test takes too much time.
c9d72c379cec patch 9.0.0561: when a test gets stuck it just hangs forever
Bram Moolenaar <Bram@vim.org>
parents: 30449
diff changeset
214 func TestTimeout(id)
c9d72c379cec patch 9.0.0561: when a test gets stuck it just hangs forever
Bram Moolenaar <Bram@vim.org>
parents: 30449
diff changeset
215 split test.log
c9d72c379cec patch 9.0.0561: when a test gets stuck it just hangs forever
Bram Moolenaar <Bram@vim.org>
parents: 30449
diff changeset
216 call append(line('$'), '')
c9d72c379cec patch 9.0.0561: when a test gets stuck it just hangs forever
Bram Moolenaar <Bram@vim.org>
parents: 30449
diff changeset
217 call append(line('$'), 'Test timed out: ' .. g:testfunc)
c9d72c379cec patch 9.0.0561: when a test gets stuck it just hangs forever
Bram Moolenaar <Bram@vim.org>
parents: 30449
diff changeset
218 write
c9d72c379cec patch 9.0.0561: when a test gets stuck it just hangs forever
Bram Moolenaar <Bram@vim.org>
parents: 30449
diff changeset
219 call add(v:errors, 'Test timed out: ' . g:testfunc)
c9d72c379cec patch 9.0.0561: when a test gets stuck it just hangs forever
Bram Moolenaar <Bram@vim.org>
parents: 30449
diff changeset
220
c9d72c379cec patch 9.0.0561: when a test gets stuck it just hangs forever
Bram Moolenaar <Bram@vim.org>
parents: 30449
diff changeset
221 cquit! 42
c9d72c379cec patch 9.0.0561: when a test gets stuck it just hangs forever
Bram Moolenaar <Bram@vim.org>
parents: 30449
diff changeset
222 endfunc
c9d72c379cec patch 9.0.0561: when a test gets stuck it just hangs forever
Bram Moolenaar <Bram@vim.org>
parents: 30449
diff changeset
223
11181
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
224 func RunTheTest(test)
30419
f652823ce8bb patch 9.0.0545: when a test is slow and CI times out there is no time info
Bram Moolenaar <Bram@vim.org>
parents: 30357
diff changeset
225 let prefix = ''
16967
586d625e21b4 patch 8.1.1484: some tests are slow
Bram Moolenaar <Bram@vim.org>
parents: 16951
diff changeset
226 if has('reltime')
30449
55aa44dd59ef patch 9.0.0560: elapsed time since testing started is not visible
Bram Moolenaar <Bram@vim.org>
parents: 30419
diff changeset
227 let prefix = strftime('%M:%S', localtime() - s:test_start_time) .. ' '
30419
f652823ce8bb patch 9.0.0545: when a test is slow and CI times out there is no time info
Bram Moolenaar <Bram@vim.org>
parents: 30357
diff changeset
228 let g:func_start = reltime()
16967
586d625e21b4 patch 8.1.1484: some tests are slow
Bram Moolenaar <Bram@vim.org>
parents: 16951
diff changeset
229 endif
30419
f652823ce8bb patch 9.0.0545: when a test is slow and CI times out there is no time info
Bram Moolenaar <Bram@vim.org>
parents: 30357
diff changeset
230 echoconsole prefix .. 'Executing ' .. a:test
10807
82c43bca568e patch 8.0.0293: some tests have a one or three second wait
Christian Brabandt <cb@256bit.org>
parents: 10797
diff changeset
231
30451
c9d72c379cec patch 9.0.0561: when a test gets stuck it just hangs forever
Bram Moolenaar <Bram@vim.org>
parents: 30449
diff changeset
232 if has('timers')
c9d72c379cec patch 9.0.0561: when a test gets stuck it just hangs forever
Bram Moolenaar <Bram@vim.org>
parents: 30449
diff changeset
233 " No test should take longer than 30 seconds. If it takes longer we
c9d72c379cec patch 9.0.0561: when a test gets stuck it just hangs forever
Bram Moolenaar <Bram@vim.org>
parents: 30449
diff changeset
234 " assume we are stuck and need to break out.
c9d72c379cec patch 9.0.0561: when a test gets stuck it just hangs forever
Bram Moolenaar <Bram@vim.org>
parents: 30449
diff changeset
235 let test_timeout_timer = timer_start(30000, 'TestTimeout')
c9d72c379cec patch 9.0.0561: when a test gets stuck it just hangs forever
Bram Moolenaar <Bram@vim.org>
parents: 30449
diff changeset
236 endif
c9d72c379cec patch 9.0.0561: when a test gets stuck it just hangs forever
Bram Moolenaar <Bram@vim.org>
parents: 30449
diff changeset
237
10807
82c43bca568e patch 8.0.0293: some tests have a one or three second wait
Christian Brabandt <cb@256bit.org>
parents: 10797
diff changeset
238 " Avoid stopping at the "hit enter" prompt
82c43bca568e patch 8.0.0293: some tests have a one or three second wait
Christian Brabandt <cb@256bit.org>
parents: 10797
diff changeset
239 set nomore
82c43bca568e patch 8.0.0293: some tests have a one or three second wait
Christian Brabandt <cb@256bit.org>
parents: 10797
diff changeset
240
82c43bca568e patch 8.0.0293: some tests have a one or three second wait
Christian Brabandt <cb@256bit.org>
parents: 10797
diff changeset
241 " Avoid a three second wait when a message is about to be overwritten by the
82c43bca568e patch 8.0.0293: some tests have a one or three second wait
Christian Brabandt <cb@256bit.org>
parents: 10797
diff changeset
242 " mode message.
82c43bca568e patch 8.0.0293: some tests have a one or three second wait
Christian Brabandt <cb@256bit.org>
parents: 10797
diff changeset
243 set noshowmode
82c43bca568e patch 8.0.0293: some tests have a one or three second wait
Christian Brabandt <cb@256bit.org>
parents: 10797
diff changeset
244
29340
fba9e366ced4 patch 9.0.0013: reproducing memory access errors can be difficult
Bram Moolenaar <Bram@vim.org>
parents: 29165
diff changeset
245 " Clear any overrides, except "alloc_lines".
11105
7c7e496e625d patch 8.0.0440: not enough test coverage in Insert mode
Christian Brabandt <cb@256bit.org>
parents: 11056
diff changeset
246 call test_override('ALL', 0)
7c7e496e625d patch 8.0.0440: not enough test coverage in Insert mode
Christian Brabandt <cb@256bit.org>
parents: 11056
diff changeset
247
12692
03a6aeea2096 patch 8.0.1224: still interference between test functions
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
248 " Some tests wipe out buffers. To be consistent, always wipe out all
03a6aeea2096 patch 8.0.1224: still interference between test functions
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
249 " buffers.
03a6aeea2096 patch 8.0.1224: still interference between test functions
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
250 %bwipe!
03a6aeea2096 patch 8.0.1224: still interference between test functions
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
251
12851
90aaa974594e patch 8.0.1302: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12769
diff changeset
252 " The test may change the current directory. Save and restore the
90aaa974594e patch 8.0.1302: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12769
diff changeset
253 " directory after executing the test.
90aaa974594e patch 8.0.1302: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12769
diff changeset
254 let save_cwd = getcwd()
90aaa974594e patch 8.0.1302: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12769
diff changeset
255
8370
cd7ea16d1300 commit https://github.com/vim/vim/commit/b5760a1ce5b700fc32b8bd11948ee189a847c59e
Christian Brabandt <cb@256bit.org>
parents: 8142
diff changeset
256 if exists("*SetUp")
10388
6cdb0226d74a commit https://github.com/vim/vim/commit/cc28e2d05d05552d8b72a520be8a193f3d9822d4
Christian Brabandt <cb@256bit.org>
parents: 10229
diff changeset
257 try
6cdb0226d74a commit https://github.com/vim/vim/commit/cc28e2d05d05552d8b72a520be8a193f3d9822d4
Christian Brabandt <cb@256bit.org>
parents: 10229
diff changeset
258 call SetUp()
6cdb0226d74a commit https://github.com/vim/vim/commit/cc28e2d05d05552d8b72a520be8a193f3d9822d4
Christian Brabandt <cb@256bit.org>
parents: 10229
diff changeset
259 catch
6cdb0226d74a commit https://github.com/vim/vim/commit/cc28e2d05d05552d8b72a520be8a193f3d9822d4
Christian Brabandt <cb@256bit.org>
parents: 10229
diff changeset
260 call add(v:errors, 'Caught exception in SetUp() before ' . a:test . ': ' . v:exception . ' @ ' . v:throwpoint)
6cdb0226d74a commit https://github.com/vim/vim/commit/cc28e2d05d05552d8b72a520be8a193f3d9822d4
Christian Brabandt <cb@256bit.org>
parents: 10229
diff changeset
261 endtry
8370
cd7ea16d1300 commit https://github.com/vim/vim/commit/b5760a1ce5b700fc32b8bd11948ee189a847c59e
Christian Brabandt <cb@256bit.org>
parents: 8142
diff changeset
262 endif
cd7ea16d1300 commit https://github.com/vim/vim/commit/b5760a1ce5b700fc32b8bd11948ee189a847c59e
Christian Brabandt <cb@256bit.org>
parents: 8142
diff changeset
263
29165
0e0e298e05c1 patch 8.2.5102: interrupt not caught in test
Bram Moolenaar <Bram@vim.org>
parents: 29148
diff changeset
264 au VimLeavePre * call EarlyExit(g:testfunc)
12682
47f253caa805 patch 8.0.1219: terminal test is flaky
Christian Brabandt <cb@256bit.org>
parents: 12616
diff changeset
265 if a:test =~ 'Test_nocatch_'
47f253caa805 patch 8.0.1219: terminal test is flaky
Christian Brabandt <cb@256bit.org>
parents: 12616
diff changeset
266 " Function handles errors itself. This avoids skipping commands after the
47f253caa805 patch 8.0.1219: terminal test is flaky
Christian Brabandt <cb@256bit.org>
parents: 12616
diff changeset
267 " error.
24095
467c3022fba6 patch 8.2.2589: recover test hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 22967
diff changeset
268 let g:skipped_reason = ''
8370
cd7ea16d1300 commit https://github.com/vim/vim/commit/b5760a1ce5b700fc32b8bd11948ee189a847c59e
Christian Brabandt <cb@256bit.org>
parents: 8142
diff changeset
269 exe 'call ' . a:test
24095
467c3022fba6 patch 8.2.2589: recover test hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 22967
diff changeset
270 if g:skipped_reason != ''
467c3022fba6 patch 8.2.2589: recover test hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 22967
diff changeset
271 call add(s:messages, ' Skipped')
467c3022fba6 patch 8.2.2589: recover test hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 22967
diff changeset
272 call add(s:skipped, 'SKIPPED ' . a:test . ': ' . g:skipped_reason)
467c3022fba6 patch 8.2.2589: recover test hangs in the GUI
Bram Moolenaar <Bram@vim.org>
parents: 22967
diff changeset
273 endif
12682
47f253caa805 patch 8.0.1219: terminal test is flaky
Christian Brabandt <cb@256bit.org>
parents: 12616
diff changeset
274 else
47f253caa805 patch 8.0.1219: terminal test is flaky
Christian Brabandt <cb@256bit.org>
parents: 12616
diff changeset
275 try
47f253caa805 patch 8.0.1219: terminal test is flaky
Christian Brabandt <cb@256bit.org>
parents: 12616
diff changeset
276 exe 'call ' . a:test
47f253caa805 patch 8.0.1219: terminal test is flaky
Christian Brabandt <cb@256bit.org>
parents: 12616
diff changeset
277 catch /^\cskipped/
47f253caa805 patch 8.0.1219: terminal test is flaky
Christian Brabandt <cb@256bit.org>
parents: 12616
diff changeset
278 call add(s:messages, ' Skipped')
47f253caa805 patch 8.0.1219: terminal test is flaky
Christian Brabandt <cb@256bit.org>
parents: 12616
diff changeset
279 call add(s:skipped, 'SKIPPED ' . a:test . ': ' . substitute(v:exception, '^\S*\s\+', '', ''))
47f253caa805 patch 8.0.1219: terminal test is flaky
Christian Brabandt <cb@256bit.org>
parents: 12616
diff changeset
280 catch
47f253caa805 patch 8.0.1219: terminal test is flaky
Christian Brabandt <cb@256bit.org>
parents: 12616
diff changeset
281 call add(v:errors, 'Caught exception in ' . a:test . ': ' . v:exception . ' @ ' . v:throwpoint)
47f253caa805 patch 8.0.1219: terminal test is flaky
Christian Brabandt <cb@256bit.org>
parents: 12616
diff changeset
282 endtry
47f253caa805 patch 8.0.1219: terminal test is flaky
Christian Brabandt <cb@256bit.org>
parents: 12616
diff changeset
283 endif
29165
0e0e298e05c1 patch 8.2.5102: interrupt not caught in test
Bram Moolenaar <Bram@vim.org>
parents: 29148
diff changeset
284 au! VimLeavePre
8370
cd7ea16d1300 commit https://github.com/vim/vim/commit/b5760a1ce5b700fc32b8bd11948ee189a847c59e
Christian Brabandt <cb@256bit.org>
parents: 8142
diff changeset
285
30357
2f295612c46a patch 9.0.0514: terminal test sometimes hangs
Bram Moolenaar <Bram@vim.org>
parents: 30310
diff changeset
286 if a:test =~ '_terminal_'
2f295612c46a patch 9.0.0514: terminal test sometimes hangs
Bram Moolenaar <Bram@vim.org>
parents: 30310
diff changeset
287 " Terminal tests sometimes hang, give extra information
2f295612c46a patch 9.0.0514: terminal test sometimes hangs
Bram Moolenaar <Bram@vim.org>
parents: 30310
diff changeset
288 echoconsole 'After executing ' .. a:test
2f295612c46a patch 9.0.0514: terminal test sometimes hangs
Bram Moolenaar <Bram@vim.org>
parents: 30310
diff changeset
289 endif
2f295612c46a patch 9.0.0514: terminal test sometimes hangs
Bram Moolenaar <Bram@vim.org>
parents: 30310
diff changeset
290
15377
88b0a490816e patch 8.1.0696: when test_edit fails 'insertmode' may not be reset
Bram Moolenaar <Bram@vim.org>
parents: 15180
diff changeset
291 " In case 'insertmode' was set and something went wrong, make sure it is
88b0a490816e patch 8.1.0696: when test_edit fails 'insertmode' may not be reset
Bram Moolenaar <Bram@vim.org>
parents: 15180
diff changeset
292 " reset to avoid trouble with anything else.
88b0a490816e patch 8.1.0696: when test_edit fails 'insertmode' may not be reset
Bram Moolenaar <Bram@vim.org>
parents: 15180
diff changeset
293 set noinsertmode
88b0a490816e patch 8.1.0696: when test_edit fails 'insertmode' may not be reset
Bram Moolenaar <Bram@vim.org>
parents: 15180
diff changeset
294
8370
cd7ea16d1300 commit https://github.com/vim/vim/commit/b5760a1ce5b700fc32b8bd11948ee189a847c59e
Christian Brabandt <cb@256bit.org>
parents: 8142
diff changeset
295 if exists("*TearDown")
10388
6cdb0226d74a commit https://github.com/vim/vim/commit/cc28e2d05d05552d8b72a520be8a193f3d9822d4
Christian Brabandt <cb@256bit.org>
parents: 10229
diff changeset
296 try
6cdb0226d74a commit https://github.com/vim/vim/commit/cc28e2d05d05552d8b72a520be8a193f3d9822d4
Christian Brabandt <cb@256bit.org>
parents: 10229
diff changeset
297 call TearDown()
6cdb0226d74a commit https://github.com/vim/vim/commit/cc28e2d05d05552d8b72a520be8a193f3d9822d4
Christian Brabandt <cb@256bit.org>
parents: 10229
diff changeset
298 catch
6cdb0226d74a commit https://github.com/vim/vim/commit/cc28e2d05d05552d8b72a520be8a193f3d9822d4
Christian Brabandt <cb@256bit.org>
parents: 10229
diff changeset
299 call add(v:errors, 'Caught exception in TearDown() after ' . a:test . ': ' . v:exception . ' @ ' . v:throwpoint)
6cdb0226d74a commit https://github.com/vim/vim/commit/cc28e2d05d05552d8b72a520be8a193f3d9822d4
Christian Brabandt <cb@256bit.org>
parents: 10229
diff changeset
300 endtry
8370
cd7ea16d1300 commit https://github.com/vim/vim/commit/b5760a1ce5b700fc32b8bd11948ee189a847c59e
Christian Brabandt <cb@256bit.org>
parents: 8142
diff changeset
301 endif
9748
5440f3442841 commit https://github.com/vim/vim/commit/7cba71d7e3576639679b6a3aedeeb1ac07f7f2f5
Christian Brabandt <cb@256bit.org>
parents: 9632
diff changeset
302
30451
c9d72c379cec patch 9.0.0561: when a test gets stuck it just hangs forever
Bram Moolenaar <Bram@vim.org>
parents: 30449
diff changeset
303 if has('timers')
c9d72c379cec patch 9.0.0561: when a test gets stuck it just hangs forever
Bram Moolenaar <Bram@vim.org>
parents: 30449
diff changeset
304 call timer_stop(test_timeout_timer)
c9d72c379cec patch 9.0.0561: when a test gets stuck it just hangs forever
Bram Moolenaar <Bram@vim.org>
parents: 30449
diff changeset
305 endif
c9d72c379cec patch 9.0.0561: when a test gets stuck it just hangs forever
Bram Moolenaar <Bram@vim.org>
parents: 30449
diff changeset
306
17684
e2bfdd281578 patch 8.1.1839: insufficient info when test fails because of screen size
Bram Moolenaar <Bram@vim.org>
parents: 17356
diff changeset
307 " Clear any autocommands and put back the catch-all for SwapExists.
12692
03a6aeea2096 patch 8.0.1224: still interference between test functions
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
308 au!
14889
ba1f0c06b4be patch 8.1.0456: running test hangs when the input file is being edited
Bram Moolenaar <Bram@vim.org>
parents: 14571
diff changeset
309 au SwapExists * call HandleSwapExists()
12692
03a6aeea2096 patch 8.0.1224: still interference between test functions
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
310
20386
3b3589275ab9 patch 8.2.0748: cannot get a list of all popups
Bram Moolenaar <Bram@vim.org>
parents: 20384
diff changeset
311 " Check for and close any stray popup windows.
18763
49b78d6465e5 patch 8.1.2371: FEAT_TEXT_PROP is a confusing name
Bram Moolenaar <Bram@vim.org>
parents: 18748
diff changeset
312 if has('popupwin')
29587
d70f588baaa1 patch 9.0.0134: no test for text property with column zero
Bram Moolenaar <Bram@vim.org>
parents: 29387
diff changeset
313 call assert_equal([], popup_list(), 'Popup is still present')
20384
42ab4d40e78f patch 8.2.0747: cannot forcefully close all popups
Bram Moolenaar <Bram@vim.org>
parents: 20087
diff changeset
314 call popup_clear(1)
17123
efc6f5e3b543 patch 8.1.1561: popup_setoptions() is not implemented yet
Bram Moolenaar <Bram@vim.org>
parents: 17091
diff changeset
315 endif
efc6f5e3b543 patch 8.1.1561: popup_setoptions() is not implemented yet
Bram Moolenaar <Bram@vim.org>
parents: 17091
diff changeset
316
29128
d8a962d7b008 patch 8.2.5084: when the GUI shows a dialog tests get stuck
Bram Moolenaar <Bram@vim.org>
parents: 28148
diff changeset
317 if filereadable('guidialogfile')
29148
8e87a5d2284c patch 8.2.5094: MS-Windows GUI: empty command may cause a dialog
Bram Moolenaar <Bram@vim.org>
parents: 29128
diff changeset
318 call add(v:errors, "Unexpected dialog: " .. readfile('guidialogfile')->join('<NL>'))
29128
d8a962d7b008 patch 8.2.5084: when the GUI shows a dialog tests get stuck
Bram Moolenaar <Bram@vim.org>
parents: 28148
diff changeset
319 call delete('guidialogfile')
d8a962d7b008 patch 8.2.5084: when the GUI shows a dialog tests get stuck
Bram Moolenaar <Bram@vim.org>
parents: 28148
diff changeset
320 endif
d8a962d7b008 patch 8.2.5084: when the GUI shows a dialog tests get stuck
Bram Moolenaar <Bram@vim.org>
parents: 28148
diff changeset
321
12688
a6a935b3270e patch 8.0.1222: test functions interfere with each other
Christian Brabandt <cb@256bit.org>
parents: 12682
diff changeset
322 " Close any extra tab pages and windows and make the current one not modified.
a6a935b3270e patch 8.0.1222: test functions interfere with each other
Christian Brabandt <cb@256bit.org>
parents: 12682
diff changeset
323 while tabpagenr('$') > 1
22470
f7471450243c patch 8.2.1783: try-catch test fails
Bram Moolenaar <Bram@vim.org>
parents: 22435
diff changeset
324 let winid = win_getid()
12692
03a6aeea2096 patch 8.0.1224: still interference between test functions
Christian Brabandt <cb@256bit.org>
parents: 12688
diff changeset
325 quit!
22470
f7471450243c patch 8.2.1783: try-catch test fails
Bram Moolenaar <Bram@vim.org>
parents: 22435
diff changeset
326 if winid == win_getid()
f7471450243c patch 8.2.1783: try-catch test fails
Bram Moolenaar <Bram@vim.org>
parents: 22435
diff changeset
327 echoerr 'Could not quit window'
f7471450243c patch 8.2.1783: try-catch test fails
Bram Moolenaar <Bram@vim.org>
parents: 22435
diff changeset
328 break
f7471450243c patch 8.2.1783: try-catch test fails
Bram Moolenaar <Bram@vim.org>
parents: 22435
diff changeset
329 endif
12688
a6a935b3270e patch 8.0.1222: test functions interfere with each other
Christian Brabandt <cb@256bit.org>
parents: 12682
diff changeset
330 endwhile
a6a935b3270e patch 8.0.1222: test functions interfere with each other
Christian Brabandt <cb@256bit.org>
parents: 12682
diff changeset
331
9949
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9758
diff changeset
332 while 1
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9758
diff changeset
333 let wincount = winnr('$')
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9758
diff changeset
334 if wincount == 1
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9758
diff changeset
335 break
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9758
diff changeset
336 endif
9748
5440f3442841 commit https://github.com/vim/vim/commit/7cba71d7e3576639679b6a3aedeeb1ac07f7f2f5
Christian Brabandt <cb@256bit.org>
parents: 9632
diff changeset
337 bwipe!
9949
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9758
diff changeset
338 if wincount == winnr('$')
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9758
diff changeset
339 " Did not manage to close a window.
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9758
diff changeset
340 only!
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9758
diff changeset
341 break
30be4b26a37e commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents: 9758
diff changeset
342 endif
9748
5440f3442841 commit https://github.com/vim/vim/commit/7cba71d7e3576639679b6a3aedeeb1ac07f7f2f5
Christian Brabandt <cb@256bit.org>
parents: 9632
diff changeset
343 endwhile
12851
90aaa974594e patch 8.0.1302: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12769
diff changeset
344
90aaa974594e patch 8.0.1302: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12769
diff changeset
345 exe 'cd ' . save_cwd
17032
84f308b126de patch 8.1.1516: time reported for a test measured wrong
Bram Moolenaar <Bram@vim.org>
parents: 16967
diff changeset
346
30357
2f295612c46a patch 9.0.0514: terminal test sometimes hangs
Bram Moolenaar <Bram@vim.org>
parents: 30310
diff changeset
347 if a:test =~ '_terminal_'
2f295612c46a patch 9.0.0514: terminal test sometimes hangs
Bram Moolenaar <Bram@vim.org>
parents: 30310
diff changeset
348 " Terminal tests sometimes hang, give extra information
2f295612c46a patch 9.0.0514: terminal test sometimes hangs
Bram Moolenaar <Bram@vim.org>
parents: 30310
diff changeset
349 echoconsole 'Finished ' . a:test
2f295612c46a patch 9.0.0514: terminal test sometimes hangs
Bram Moolenaar <Bram@vim.org>
parents: 30310
diff changeset
350 endif
2f295612c46a patch 9.0.0514: terminal test sometimes hangs
Bram Moolenaar <Bram@vim.org>
parents: 30310
diff changeset
351
17032
84f308b126de patch 8.1.1516: time reported for a test measured wrong
Bram Moolenaar <Bram@vim.org>
parents: 16967
diff changeset
352 let message = 'Executed ' . a:test
84f308b126de patch 8.1.1516: time reported for a test measured wrong
Bram Moolenaar <Bram@vim.org>
parents: 16967
diff changeset
353 if has('reltime')
20963
ed35c81bce77 patch 8.2.1033: not easy to read the test time in the test output
Bram Moolenaar <Bram@vim.org>
parents: 20386
diff changeset
354 let message ..= repeat(' ', 50 - len(message))
30419
f652823ce8bb patch 9.0.0545: when a test is slow and CI times out there is no time info
Bram Moolenaar <Bram@vim.org>
parents: 30357
diff changeset
355 let time = reltime(g:func_start)
30310
029c59bf78f1 patch 9.0.0491: no good reason to build without the float feature
Bram Moolenaar <Bram@vim.org>
parents: 30180
diff changeset
356 if reltimefloat(time) > 0.1
21530
66f12838071d patch 8.2.1315: MS-Windows: test log contains escape sequences
Bram Moolenaar <Bram@vim.org>
parents: 21510
diff changeset
357 let message = s:t_bold .. message
20963
ed35c81bce77 patch 8.2.1033: not easy to read the test time in the test output
Bram Moolenaar <Bram@vim.org>
parents: 20386
diff changeset
358 endif
ed35c81bce77 patch 8.2.1033: not easy to read the test time in the test output
Bram Moolenaar <Bram@vim.org>
parents: 20386
diff changeset
359 let message ..= ' in ' .. reltimestr(time) .. ' seconds'
30310
029c59bf78f1 patch 9.0.0491: no good reason to build without the float feature
Bram Moolenaar <Bram@vim.org>
parents: 30180
diff changeset
360 if reltimefloat(time) > 0.1
21530
66f12838071d patch 8.2.1315: MS-Windows: test log contains escape sequences
Bram Moolenaar <Bram@vim.org>
parents: 21510
diff changeset
361 let message ..= s:t_normal
20963
ed35c81bce77 patch 8.2.1033: not easy to read the test time in the test output
Bram Moolenaar <Bram@vim.org>
parents: 20386
diff changeset
362 endif
17032
84f308b126de patch 8.1.1516: time reported for a test measured wrong
Bram Moolenaar <Bram@vim.org>
parents: 16967
diff changeset
363 endif
84f308b126de patch 8.1.1516: time reported for a test measured wrong
Bram Moolenaar <Bram@vim.org>
parents: 16967
diff changeset
364 call add(s:messages, message)
84f308b126de patch 8.1.1516: time reported for a test measured wrong
Bram Moolenaar <Bram@vim.org>
parents: 16967
diff changeset
365 let s:done += 1
31347
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
366
31353
49bd0e97549d patch 9.0.1010: stray warnings for existing swap files
Bram Moolenaar <Bram@vim.org>
parents: 31347
diff changeset
367 " May be editing some buffer, wipe it out. Then we may end up in another
49bd0e97549d patch 9.0.1010: stray warnings for existing swap files
Bram Moolenaar <Bram@vim.org>
parents: 31347
diff changeset
368 " buffer, continue until we end up in an empty no-name buffer without a swap
49bd0e97549d patch 9.0.1010: stray warnings for existing swap files
Bram Moolenaar <Bram@vim.org>
parents: 31347
diff changeset
369 " file.
49bd0e97549d patch 9.0.1010: stray warnings for existing swap files
Bram Moolenaar <Bram@vim.org>
parents: 31347
diff changeset
370 while bufname() != '' || execute('swapname') !~ 'No swap file'
49bd0e97549d patch 9.0.1010: stray warnings for existing swap files
Bram Moolenaar <Bram@vim.org>
parents: 31347
diff changeset
371 bwipe!
49bd0e97549d patch 9.0.1010: stray warnings for existing swap files
Bram Moolenaar <Bram@vim.org>
parents: 31347
diff changeset
372 endwhile
49bd0e97549d patch 9.0.1010: stray warnings for existing swap files
Bram Moolenaar <Bram@vim.org>
parents: 31347
diff changeset
373
31347
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
374 " Check if the test has left any swap files behind. Delete them before
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
375 " running tests again, they might interfere.
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
376 let swapfiles = s:GetSwapFileList()
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
377 if len(swapfiles) > 0
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
378 call add(s:messages, "Found swap files: " .. string(swapfiles))
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
379 for name in swapfiles
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
380 call delete(name)
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
381 endfor
56a2af8c0980 patch 9.0.1007: there is no way to get a list of swap file names
Bram Moolenaar <Bram@vim.org>
parents: 30451
diff changeset
382 endif
8370
cd7ea16d1300 commit https://github.com/vim/vim/commit/b5760a1ce5b700fc32b8bd11948ee189a847c59e
Christian Brabandt <cb@256bit.org>
parents: 8142
diff changeset
383 endfunc
7545
4c922651fd78 commit https://github.com/vim/vim/commit/28fb79db6b52d1154e8dc63d227673648c2fce15
Christian Brabandt <cb@256bit.org>
parents: 7540
diff changeset
384
19734
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
385 func AfterTheTest(func_name)
11181
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
386 if len(v:errors) > 0
19734
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
387 if match(s:may_fail_list, '^' .. a:func_name) >= 0
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
388 let s:fail_expected += 1
20003
e373843e2980 patch 8.2.0557: no IPv6 support for channels
Bram Moolenaar <Bram@vim.org>
parents: 19795
diff changeset
389 call add(s:errors_expected, 'Found errors in ' . g:testfunc . ':')
19734
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
390 call extend(s:errors_expected, v:errors)
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
391 else
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
392 let s:fail += 1
20003
e373843e2980 patch 8.2.0557: no IPv6 support for channels
Bram Moolenaar <Bram@vim.org>
parents: 19795
diff changeset
393 call add(s:errors, 'Found errors in ' . g:testfunc . ':')
19734
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
394 call extend(s:errors, v:errors)
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
395 endif
11181
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
396 let v:errors = []
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
397 endif
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
398 endfunc
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
399
14053
d6866c54a311 patch 8.1.0044: if a test function exists Vim this may go unnoticed
Christian Brabandt <cb@256bit.org>
parents: 13634
diff changeset
400 func EarlyExit(test)
d6866c54a311 patch 8.1.0044: if a test function exists Vim this may go unnoticed
Christian Brabandt <cb@256bit.org>
parents: 13634
diff changeset
401 " It's OK for the test we use to test the quit detection.
d6866c54a311 patch 8.1.0044: if a test function exists Vim this may go unnoticed
Christian Brabandt <cb@256bit.org>
parents: 13634
diff changeset
402 if a:test != 'Test_zz_quit_detected()'
26835
d9ced5bca6d6 patch 8.2.3946: when an internal error makes Vim exit the error is not seen
Bram Moolenaar <Bram@vim.org>
parents: 26500
diff changeset
403 call add(v:errors, v:errmsg)
14053
d6866c54a311 patch 8.1.0044: if a test function exists Vim this may go unnoticed
Christian Brabandt <cb@256bit.org>
parents: 13634
diff changeset
404 call add(v:errors, 'Test caused Vim to exit: ' . a:test)
d6866c54a311 patch 8.1.0044: if a test function exists Vim this may go unnoticed
Christian Brabandt <cb@256bit.org>
parents: 13634
diff changeset
405 endif
d6866c54a311 patch 8.1.0044: if a test function exists Vim this may go unnoticed
Christian Brabandt <cb@256bit.org>
parents: 13634
diff changeset
406
d6866c54a311 patch 8.1.0044: if a test function exists Vim this may go unnoticed
Christian Brabandt <cb@256bit.org>
parents: 13634
diff changeset
407 call FinishTesting()
d6866c54a311 patch 8.1.0044: if a test function exists Vim this may go unnoticed
Christian Brabandt <cb@256bit.org>
parents: 13634
diff changeset
408 endfunc
d6866c54a311 patch 8.1.0044: if a test function exists Vim this may go unnoticed
Christian Brabandt <cb@256bit.org>
parents: 13634
diff changeset
409
11181
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
410 " This function can be called by a test if it wants to abort testing.
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
411 func FinishTesting()
19734
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
412 call AfterTheTest('')
11181
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
413
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
414 " Don't write viminfo on exit.
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
415 set viminfo=
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
416
11850
eb339f9af281 patch 8.0.0805: GUI test fails with gnome2
Christian Brabandt <cb@256bit.org>
parents: 11205
diff changeset
417 " Clean up files created by setup.vim
eb339f9af281 patch 8.0.0805: GUI test fails with gnome2
Christian Brabandt <cb@256bit.org>
parents: 11205
diff changeset
418 call delete('XfakeHOME', 'rf')
eb339f9af281 patch 8.0.0805: GUI test fails with gnome2
Christian Brabandt <cb@256bit.org>
parents: 11205
diff changeset
419
19734
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
420 if s:fail == 0 && s:fail_expected == 0
11181
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
421 " Success, create the .res file so that make knows it's done.
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
422 exe 'split ' . fnamemodify(g:testname, ':r') . '.res'
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
423 write
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
424 endif
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
425
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
426 if len(s:errors) > 0
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
427 " Append errors to test.log
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
428 split test.log
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
429 call append(line('$'), '')
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
430 call append(line('$'), 'From ' . g:testname . ':')
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
431 call append(line('$'), s:errors)
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
432 write
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
433 endif
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
434
13634
2678e38e1de6 patch 8.0.1689: no tests for xxd
Christian Brabandt <cb@256bit.org>
parents: 13533
diff changeset
435 if s:done == 0
18189
b5bf891fa92c patch 8.1.2089: do not get a hint that $TEST_FILTER was active
Bram Moolenaar <Bram@vim.org>
parents: 18184
diff changeset
436 if s:filtered > 0
25549
dc25589bfec0 patch 8.2.3311: Vim9: check for DO_NOT_FREE_CNT is very slow
Bram Moolenaar <Bram@vim.org>
parents: 24194
diff changeset
437 if $TEST_FILTER != ''
dc25589bfec0 patch 8.2.3311: Vim9: check for DO_NOT_FREE_CNT is very slow
Bram Moolenaar <Bram@vim.org>
parents: 24194
diff changeset
438 let message = "NO tests match $TEST_FILTER: '" .. $TEST_FILTER .. "'"
dc25589bfec0 patch 8.2.3311: Vim9: check for DO_NOT_FREE_CNT is very slow
Bram Moolenaar <Bram@vim.org>
parents: 24194
diff changeset
439 else
dc25589bfec0 patch 8.2.3311: Vim9: check for DO_NOT_FREE_CNT is very slow
Bram Moolenaar <Bram@vim.org>
parents: 24194
diff changeset
440 let message = "ALL tests match $TEST_SKIP_PAT: '" .. $TEST_SKIP_PAT .. "'"
dc25589bfec0 patch 8.2.3311: Vim9: check for DO_NOT_FREE_CNT is very slow
Bram Moolenaar <Bram@vim.org>
parents: 24194
diff changeset
441 endif
18189
b5bf891fa92c patch 8.1.2089: do not get a hint that $TEST_FILTER was active
Bram Moolenaar <Bram@vim.org>
parents: 18184
diff changeset
442 else
b5bf891fa92c patch 8.1.2089: do not get a hint that $TEST_FILTER was active
Bram Moolenaar <Bram@vim.org>
parents: 18184
diff changeset
443 let message = 'NO tests executed'
b5bf891fa92c patch 8.1.2089: do not get a hint that $TEST_FILTER was active
Bram Moolenaar <Bram@vim.org>
parents: 18184
diff changeset
444 endif
13634
2678e38e1de6 patch 8.0.1689: no tests for xxd
Christian Brabandt <cb@256bit.org>
parents: 13533
diff changeset
445 else
18189
b5bf891fa92c patch 8.1.2089: do not get a hint that $TEST_FILTER was active
Bram Moolenaar <Bram@vim.org>
parents: 18184
diff changeset
446 if s:filtered > 0
25549
dc25589bfec0 patch 8.2.3311: Vim9: check for DO_NOT_FREE_CNT is very slow
Bram Moolenaar <Bram@vim.org>
parents: 24194
diff changeset
447 call add(s:messages, "Filtered " .. s:filtered .. " tests with $TEST_FILTER and $TEST_SKIP_PAT")
18189
b5bf891fa92c patch 8.1.2089: do not get a hint that $TEST_FILTER was active
Bram Moolenaar <Bram@vim.org>
parents: 18184
diff changeset
448 endif
13634
2678e38e1de6 patch 8.0.1689: no tests for xxd
Christian Brabandt <cb@256bit.org>
parents: 13533
diff changeset
449 let message = 'Executed ' . s:done . (s:done > 1 ? ' tests' : ' test')
2678e38e1de6 patch 8.0.1689: no tests for xxd
Christian Brabandt <cb@256bit.org>
parents: 13533
diff changeset
450 endif
18189
b5bf891fa92c patch 8.1.2089: do not get a hint that $TEST_FILTER was active
Bram Moolenaar <Bram@vim.org>
parents: 18184
diff changeset
451 if s:done > 0 && has('reltime')
21530
66f12838071d patch 8.2.1315: MS-Windows: test log contains escape sequences
Bram Moolenaar <Bram@vim.org>
parents: 21510
diff changeset
452 let message = s:t_bold .. message .. repeat(' ', 40 - len(message))
30449
55aa44dd59ef patch 9.0.0560: elapsed time since testing started is not visible
Bram Moolenaar <Bram@vim.org>
parents: 30419
diff changeset
453 let message ..= ' in ' .. reltimestr(reltime(s:run_start_time)) .. ' seconds'
21530
66f12838071d patch 8.2.1315: MS-Windows: test log contains escape sequences
Bram Moolenaar <Bram@vim.org>
parents: 21510
diff changeset
454 let message ..= s:t_normal
16967
586d625e21b4 patch 8.1.1484: some tests are slow
Bram Moolenaar <Bram@vim.org>
parents: 16951
diff changeset
455 endif
11181
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
456 echo message
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
457 call add(s:messages, message)
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
458 if s:fail > 0
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
459 let message = s:fail . ' FAILED:'
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
460 echo message
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
461 call add(s:messages, message)
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
462 call extend(s:messages, s:errors)
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
463 endif
19734
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
464 if s:fail_expected > 0
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
465 let message = s:fail_expected . ' FAILED (matching $TEST_MAY_FAIL):'
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
466 echo message
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
467 call add(s:messages, message)
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
468 call extend(s:messages, s:errors_expected)
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
469 endif
11181
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
470
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
471 " Add SKIPPED messages
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
472 call extend(s:messages, s:skipped)
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
473
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
474 " Append messages to the file "messages"
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
475 split messages
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
476 call append(line('$'), '')
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
477 call append(line('$'), 'From ' . g:testname . ':')
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
478 call append(line('$'), s:messages)
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
479 write
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
480
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
481 qall!
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
482 endfunc
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
483
7277
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
484 " Source the test script. First grab the file name, in case the script
8029
770dd91ad9f7 commit https://github.com/vim/vim/commit/00af60bbb6cc7e8ccafddb30a1964f891b800bce
Christian Brabandt <cb@256bit.org>
parents: 7637
diff changeset
485 " navigates away. g:testname can be used by the tests.
770dd91ad9f7 commit https://github.com/vim/vim/commit/00af60bbb6cc7e8ccafddb30a1964f891b800bce
Christian Brabandt <cb@256bit.org>
parents: 7637
diff changeset
486 let g:testname = expand('%')
770dd91ad9f7 commit https://github.com/vim/vim/commit/00af60bbb6cc7e8ccafddb30a1964f891b800bce
Christian Brabandt <cb@256bit.org>
parents: 7637
diff changeset
487 let s:done = 0
770dd91ad9f7 commit https://github.com/vim/vim/commit/00af60bbb6cc7e8ccafddb30a1964f891b800bce
Christian Brabandt <cb@256bit.org>
parents: 7637
diff changeset
488 let s:fail = 0
19734
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
489 let s:fail_expected = 0
8029
770dd91ad9f7 commit https://github.com/vim/vim/commit/00af60bbb6cc7e8ccafddb30a1964f891b800bce
Christian Brabandt <cb@256bit.org>
parents: 7637
diff changeset
490 let s:errors = []
19734
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
491 let s:errors_expected = []
8029
770dd91ad9f7 commit https://github.com/vim/vim/commit/00af60bbb6cc7e8ccafddb30a1964f891b800bce
Christian Brabandt <cb@256bit.org>
parents: 7637
diff changeset
492 let s:messages = []
10100
26441931dad7 commit https://github.com/vim/vim/commit/dac1947bb366ef43cd6da95acc730554e76d8b84
Christian Brabandt <cb@256bit.org>
parents: 9949
diff changeset
493 let s:skipped = []
10942
e05695e59f6d patch 8.0.0360: sometimes VimL is used instead of "Vim script"
Christian Brabandt <cb@256bit.org>
parents: 10811
diff changeset
494 if expand('%') =~ 'test_vimscript.vim'
19734
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
495 " this test has intentional errors, don't use try/catch.
7352
ddab7ae8796d commit https://github.com/vim/vim/commit/4686b323e4bc0f466500b018959f6c8965f010f9
Christian Brabandt <cb@256bit.org>
parents: 7295
diff changeset
496 source %
7454
4ff843da79fd commit https://github.com/vim/vim/commit/a2cce8630756769b2cefdc28c7290ae9262cddb1
Christian Brabandt <cb@256bit.org>
parents: 7391
diff changeset
497 else
4ff843da79fd commit https://github.com/vim/vim/commit/a2cce8630756769b2cefdc28c7290ae9262cddb1
Christian Brabandt <cb@256bit.org>
parents: 7391
diff changeset
498 try
4ff843da79fd commit https://github.com/vim/vim/commit/a2cce8630756769b2cefdc28c7290ae9262cddb1
Christian Brabandt <cb@256bit.org>
parents: 7391
diff changeset
499 source %
16951
ebdf6cd89910 patch 8.1.1476: no statistics displayed after running tests
Bram Moolenaar <Bram@vim.org>
parents: 15928
diff changeset
500 catch /^\cskipped/
ebdf6cd89910 patch 8.1.1476: no statistics displayed after running tests
Bram Moolenaar <Bram@vim.org>
parents: 15928
diff changeset
501 call add(s:messages, ' Skipped')
ebdf6cd89910 patch 8.1.1476: no statistics displayed after running tests
Bram Moolenaar <Bram@vim.org>
parents: 15928
diff changeset
502 call add(s:skipped, 'SKIPPED ' . expand('%') . ': ' . substitute(v:exception, '^\S*\s\+', '', ''))
7454
4ff843da79fd commit https://github.com/vim/vim/commit/a2cce8630756769b2cefdc28c7290ae9262cddb1
Christian Brabandt <cb@256bit.org>
parents: 7391
diff changeset
503 catch
8029
770dd91ad9f7 commit https://github.com/vim/vim/commit/00af60bbb6cc7e8ccafddb30a1964f891b800bce
Christian Brabandt <cb@256bit.org>
parents: 7637
diff changeset
504 let s:fail += 1
770dd91ad9f7 commit https://github.com/vim/vim/commit/00af60bbb6cc7e8ccafddb30a1964f891b800bce
Christian Brabandt <cb@256bit.org>
parents: 7637
diff changeset
505 call add(s:errors, 'Caught exception: ' . v:exception . ' @ ' . v:throwpoint)
7454
4ff843da79fd commit https://github.com/vim/vim/commit/a2cce8630756769b2cefdc28c7290ae9262cddb1
Christian Brabandt <cb@256bit.org>
parents: 7391
diff changeset
506 endtry
4ff843da79fd commit https://github.com/vim/vim/commit/a2cce8630756769b2cefdc28c7290ae9262cddb1
Christian Brabandt <cb@256bit.org>
parents: 7391
diff changeset
507 endif
7277
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
508
28148
fecc185fcf69 patch 8.2.4598: profile completion test sometimes fails
Bram Moolenaar <Bram@vim.org>
parents: 26835
diff changeset
509 " Delete the .res file, it may change behavior for completion
fecc185fcf69 patch 8.2.4598: profile completion test sometimes fails
Bram Moolenaar <Bram@vim.org>
parents: 26835
diff changeset
510 call delete(fnamemodify(g:testname, ':r') .. '.res')
fecc185fcf69 patch 8.2.4598: profile completion test sometimes fails
Bram Moolenaar <Bram@vim.org>
parents: 26835
diff changeset
511
7277
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
512 " Locate Test_ functions and execute them.
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
513 redir @q
8116
3c1bdf20c8b9 commit https://github.com/vim/vim/commit/93bf558caef2d507ef6baf56eaf6025b63da1e34
Christian Brabandt <cb@256bit.org>
parents: 8029
diff changeset
514 silent function /^Test_
7277
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
515 redir END
19579
aae19dd172c0 patch 8.2.0346: Vim9: finding common list type not tested
Bram Moolenaar <Bram@vim.org>
parents: 18763
diff changeset
516 let s:tests = split(substitute(@q, '\(function\|def\) \(\k*()\)', '\2', 'g'))
7277
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
517
8142
71aabce3142e commit https://github.com/vim/vim/commit/befb366affa6309c6b4a469ec7f729821e3a36fa
Christian Brabandt <cb@256bit.org>
parents: 8116
diff changeset
518 " If there is an extra argument filter the function names against it.
71aabce3142e commit https://github.com/vim/vim/commit/befb366affa6309c6b4a469ec7f729821e3a36fa
Christian Brabandt <cb@256bit.org>
parents: 8116
diff changeset
519 if argc() > 1
71aabce3142e commit https://github.com/vim/vim/commit/befb366affa6309c6b4a469ec7f729821e3a36fa
Christian Brabandt <cb@256bit.org>
parents: 8116
diff changeset
520 let s:tests = filter(s:tests, 'v:val =~ argv(1)')
71aabce3142e commit https://github.com/vim/vim/commit/befb366affa6309c6b4a469ec7f729821e3a36fa
Christian Brabandt <cb@256bit.org>
parents: 8116
diff changeset
521 endif
71aabce3142e commit https://github.com/vim/vim/commit/befb366affa6309c6b4a469ec7f729821e3a36fa
Christian Brabandt <cb@256bit.org>
parents: 8116
diff changeset
522
18184
ef35a3a70c24 patch 8.1.2087: cannot easily select one test function to execute
Bram Moolenaar <Bram@vim.org>
parents: 18158
diff changeset
523 " If the environment variable $TEST_FILTER is set then filter the function
ef35a3a70c24 patch 8.1.2087: cannot easily select one test function to execute
Bram Moolenaar <Bram@vim.org>
parents: 18158
diff changeset
524 " names against it.
18189
b5bf891fa92c patch 8.1.2089: do not get a hint that $TEST_FILTER was active
Bram Moolenaar <Bram@vim.org>
parents: 18184
diff changeset
525 let s:filtered = 0
18184
ef35a3a70c24 patch 8.1.2087: cannot easily select one test function to execute
Bram Moolenaar <Bram@vim.org>
parents: 18158
diff changeset
526 if $TEST_FILTER != ''
18189
b5bf891fa92c patch 8.1.2089: do not get a hint that $TEST_FILTER was active
Bram Moolenaar <Bram@vim.org>
parents: 18184
diff changeset
527 let s:filtered = len(s:tests)
18184
ef35a3a70c24 patch 8.1.2087: cannot easily select one test function to execute
Bram Moolenaar <Bram@vim.org>
parents: 18158
diff changeset
528 let s:tests = filter(s:tests, 'v:val =~ $TEST_FILTER')
18189
b5bf891fa92c patch 8.1.2089: do not get a hint that $TEST_FILTER was active
Bram Moolenaar <Bram@vim.org>
parents: 18184
diff changeset
529 let s:filtered -= len(s:tests)
18184
ef35a3a70c24 patch 8.1.2087: cannot easily select one test function to execute
Bram Moolenaar <Bram@vim.org>
parents: 18158
diff changeset
530 endif
ef35a3a70c24 patch 8.1.2087: cannot easily select one test function to execute
Bram Moolenaar <Bram@vim.org>
parents: 18158
diff changeset
531
19734
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
532 let s:may_fail_list = []
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
533 if $TEST_MAY_FAIL != ''
20003
e373843e2980 patch 8.2.0557: no IPv6 support for channels
Bram Moolenaar <Bram@vim.org>
parents: 19795
diff changeset
534 " Split the list at commas and add () to make it match g:testfunc.
19734
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
535 let s:may_fail_list = split($TEST_MAY_FAIL, ',')->map({i, v -> v .. '()'})
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
536 endif
2bd03926397a patch 8.2.0423: in some environments a few tests are expected to fail
Bram Moolenaar <Bram@vim.org>
parents: 19715
diff changeset
537
7540
b910bb01832a commit https://github.com/vim/vim/commit/cfc0a350a9fa04f1b0cfa1ba31fbd2847376513f
Christian Brabandt <cb@256bit.org>
parents: 7454
diff changeset
538 " Execute the tests in alphabetical order.
20003
e373843e2980 patch 8.2.0557: no IPv6 support for channels
Bram Moolenaar <Bram@vim.org>
parents: 19795
diff changeset
539 for g:testfunc in sort(s:tests)
25549
dc25589bfec0 patch 8.2.3311: Vim9: check for DO_NOT_FREE_CNT is very slow
Bram Moolenaar <Bram@vim.org>
parents: 24194
diff changeset
540 if $TEST_SKIP_PAT != '' && g:testfunc =~ $TEST_SKIP_PAT
dc25589bfec0 patch 8.2.3311: Vim9: check for DO_NOT_FREE_CNT is very slow
Bram Moolenaar <Bram@vim.org>
parents: 24194
diff changeset
541 call add(s:messages, g:testfunc .. ' matches $TEST_SKIP_PAT')
dc25589bfec0 patch 8.2.3311: Vim9: check for DO_NOT_FREE_CNT is very slow
Bram Moolenaar <Bram@vim.org>
parents: 24194
diff changeset
542 let s:filtered += 1
dc25589bfec0 patch 8.2.3311: Vim9: check for DO_NOT_FREE_CNT is very slow
Bram Moolenaar <Bram@vim.org>
parents: 24194
diff changeset
543 continue
dc25589bfec0 patch 8.2.3311: Vim9: check for DO_NOT_FREE_CNT is very slow
Bram Moolenaar <Bram@vim.org>
parents: 24194
diff changeset
544 endif
dc25589bfec0 patch 8.2.3311: Vim9: check for DO_NOT_FREE_CNT is very slow
Bram Moolenaar <Bram@vim.org>
parents: 24194
diff changeset
545
12616
4767939d10cc patch 8.0.1186: still quite a few old style tests
Christian Brabandt <cb@256bit.org>
parents: 12381
diff changeset
546 " Silence, please!
4767939d10cc patch 8.0.1186: still quite a few old style tests
Christian Brabandt <cb@256bit.org>
parents: 12381
diff changeset
547 set belloff=all
15036
73fef88aa0f9 patch 8.1.0529: flaky test sometimes fails in different ways
Bram Moolenaar <Bram@vim.org>
parents: 15018
diff changeset
548 let prev_error = ''
73fef88aa0f9 patch 8.1.0529: flaky test sometimes fails in different ways
Bram Moolenaar <Bram@vim.org>
parents: 15018
diff changeset
549 let total_errors = []
19795
1c7f92a1100e patch 8.2.0454: some tests fail when the system is slow
Bram Moolenaar <Bram@vim.org>
parents: 19734
diff changeset
550 let g:run_nr = 1
12616
4767939d10cc patch 8.0.1186: still quite a few old style tests
Christian Brabandt <cb@256bit.org>
parents: 12381
diff changeset
551
20003
e373843e2980 patch 8.2.0557: no IPv6 support for channels
Bram Moolenaar <Bram@vim.org>
parents: 19795
diff changeset
552 " A test can set g:test_is_flaky to retry running the test.
e373843e2980 patch 8.2.0557: no IPv6 support for channels
Bram Moolenaar <Bram@vim.org>
parents: 19795
diff changeset
553 let g:test_is_flaky = 0
19687
c3f506e24eab patch 8.2.0400: not all tests using a terminal are in the list of flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 19579
diff changeset
554
30069
cb21745cbbab patch 9.0.0372: MS-Windows: "%T" time format does not appear to work
Bram Moolenaar <Bram@vim.org>
parents: 30063
diff changeset
555 let starttime = strftime("%H:%M:%S")
20003
e373843e2980 patch 8.2.0557: no IPv6 support for channels
Bram Moolenaar <Bram@vim.org>
parents: 19795
diff changeset
556 call RunTheTest(g:testfunc)
7277
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
557
15036
73fef88aa0f9 patch 8.1.0529: flaky test sometimes fails in different ways
Bram Moolenaar <Bram@vim.org>
parents: 15018
diff changeset
558 " Repeat a flaky test. Give up when:
21508
6b2a5418cbc3 patch 8.2.1304: debug backtrace isn't tested much
Bram Moolenaar <Bram@vim.org>
parents: 21433
diff changeset
559 " - $TEST_NO_RETRY is not empty
15036
73fef88aa0f9 patch 8.1.0529: flaky test sometimes fails in different ways
Bram Moolenaar <Bram@vim.org>
parents: 15018
diff changeset
560 " - it fails again with the same message
17918
9606c0adc148 patch 8.1.1955: tests contain typos
Bram Moolenaar <Bram@vim.org>
parents: 17910
diff changeset
561 " - it fails five times (with a different message)
15040
da8a8cdcb8b0 patch 8.1.0531: flaky tests often fail with a common error message
Bram Moolenaar <Bram@vim.org>
parents: 15038
diff changeset
562 if len(v:errors) > 0
21510
31cb78014fe4 patch 8.2.1305: some tests are still old style
Bram Moolenaar <Bram@vim.org>
parents: 21508
diff changeset
563 \ && $TEST_NO_RETRY == ''
25969
a5a772dace5b patch 8.2.3518: Test_xrestore sometimes fails
Bram Moolenaar <Bram@vim.org>
parents: 25549
diff changeset
564 \ && g:test_is_flaky
15036
73fef88aa0f9 patch 8.1.0529: flaky test sometimes fails in different ways
Bram Moolenaar <Bram@vim.org>
parents: 15018
diff changeset
565 while 1
30063
72c8fbb9e242 patch 9.0.0369: a failing flaky test doesn't mention the time
Bram Moolenaar <Bram@vim.org>
parents: 29587
diff changeset
566 call add(s:messages, 'Found errors in ' .. g:testfunc .. ':')
15036
73fef88aa0f9 patch 8.1.0529: flaky test sometimes fails in different ways
Bram Moolenaar <Bram@vim.org>
parents: 15018
diff changeset
567 call extend(s:messages, v:errors)
11187
515db00c4676 patch 8.0.0480: the remote_peek() test fails on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 11185
diff changeset
568
30180
b01eaf122e5a patch 9.0.0426: failed flaky tests reports only start time
Bram Moolenaar <Bram@vim.org>
parents: 30069
diff changeset
569 let endtime = strftime("%H:%M:%S")
b01eaf122e5a patch 9.0.0426: failed flaky tests reports only start time
Bram Moolenaar <Bram@vim.org>
parents: 30069
diff changeset
570 call add(total_errors, $'Run {g:run_nr}, {starttime} - {endtime}:')
15036
73fef88aa0f9 patch 8.1.0529: flaky test sometimes fails in different ways
Bram Moolenaar <Bram@vim.org>
parents: 15018
diff changeset
571 call extend(total_errors, v:errors)
73fef88aa0f9 patch 8.1.0529: flaky test sometimes fails in different ways
Bram Moolenaar <Bram@vim.org>
parents: 15018
diff changeset
572
29387
9dce192d1ac2 patch 9.0.0036: 'fillchars' cannot have window-local values
Bram Moolenaar <Bram@vim.org>
parents: 29340
diff changeset
573 if g:run_nr >= 5 || prev_error == v:errors[0]
15036
73fef88aa0f9 patch 8.1.0529: flaky test sometimes fails in different ways
Bram Moolenaar <Bram@vim.org>
parents: 15018
diff changeset
574 call add(total_errors, 'Flaky test failed too often, giving up')
73fef88aa0f9 patch 8.1.0529: flaky test sometimes fails in different ways
Bram Moolenaar <Bram@vim.org>
parents: 15018
diff changeset
575 let v:errors = total_errors
73fef88aa0f9 patch 8.1.0529: flaky test sometimes fails in different ways
Bram Moolenaar <Bram@vim.org>
parents: 15018
diff changeset
576 break
73fef88aa0f9 patch 8.1.0529: flaky test sometimes fails in different ways
Bram Moolenaar <Bram@vim.org>
parents: 15018
diff changeset
577 endif
12905
30b0d784c870 patch 8.0.1329: when a flaky test fails it also often fails the second time
Christian Brabandt <cb@256bit.org>
parents: 12851
diff changeset
578
15036
73fef88aa0f9 patch 8.1.0529: flaky test sometimes fails in different ways
Bram Moolenaar <Bram@vim.org>
parents: 15018
diff changeset
579 call add(s:messages, 'Flaky test failed, running it again')
73fef88aa0f9 patch 8.1.0529: flaky test sometimes fails in different ways
Bram Moolenaar <Bram@vim.org>
parents: 15018
diff changeset
580
73fef88aa0f9 patch 8.1.0529: flaky test sometimes fails in different ways
Bram Moolenaar <Bram@vim.org>
parents: 15018
diff changeset
581 " Flakiness is often caused by the system being very busy. Sleep a
73fef88aa0f9 patch 8.1.0529: flaky test sometimes fails in different ways
Bram Moolenaar <Bram@vim.org>
parents: 15018
diff changeset
582 " couple of seconds to have a higher chance of succeeding the second
73fef88aa0f9 patch 8.1.0529: flaky test sometimes fails in different ways
Bram Moolenaar <Bram@vim.org>
parents: 15018
diff changeset
583 " time.
73fef88aa0f9 patch 8.1.0529: flaky test sometimes fails in different ways
Bram Moolenaar <Bram@vim.org>
parents: 15018
diff changeset
584 sleep 2
73fef88aa0f9 patch 8.1.0529: flaky test sometimes fails in different ways
Bram Moolenaar <Bram@vim.org>
parents: 15018
diff changeset
585
73fef88aa0f9 patch 8.1.0529: flaky test sometimes fails in different ways
Bram Moolenaar <Bram@vim.org>
parents: 15018
diff changeset
586 let prev_error = v:errors[0]
73fef88aa0f9 patch 8.1.0529: flaky test sometimes fails in different ways
Bram Moolenaar <Bram@vim.org>
parents: 15018
diff changeset
587 let v:errors = []
19795
1c7f92a1100e patch 8.2.0454: some tests fail when the system is slow
Bram Moolenaar <Bram@vim.org>
parents: 19734
diff changeset
588 let g:run_nr += 1
15036
73fef88aa0f9 patch 8.1.0529: flaky test sometimes fails in different ways
Bram Moolenaar <Bram@vim.org>
parents: 15018
diff changeset
589
30069
cb21745cbbab patch 9.0.0372: MS-Windows: "%T" time format does not appear to work
Bram Moolenaar <Bram@vim.org>
parents: 30063
diff changeset
590 let starttime = strftime("%H:%M:%S")
20003
e373843e2980 patch 8.2.0557: no IPv6 support for channels
Bram Moolenaar <Bram@vim.org>
parents: 19795
diff changeset
591 call RunTheTest(g:testfunc)
15036
73fef88aa0f9 patch 8.1.0529: flaky test sometimes fails in different ways
Bram Moolenaar <Bram@vim.org>
parents: 15018
diff changeset
592
73fef88aa0f9 patch 8.1.0529: flaky test sometimes fails in different ways
Bram Moolenaar <Bram@vim.org>
parents: 15018
diff changeset
593 if len(v:errors) == 0
73fef88aa0f9 patch 8.1.0529: flaky test sometimes fails in different ways
Bram Moolenaar <Bram@vim.org>
parents: 15018
diff changeset
594 " Test passed on rerun.
73fef88aa0f9 patch 8.1.0529: flaky test sometimes fails in different ways
Bram Moolenaar <Bram@vim.org>
parents: 15018
diff changeset
595 break
73fef88aa0f9 patch 8.1.0529: flaky test sometimes fails in different ways
Bram Moolenaar <Bram@vim.org>
parents: 15018
diff changeset
596 endif
73fef88aa0f9 patch 8.1.0529: flaky test sometimes fails in different ways
Bram Moolenaar <Bram@vim.org>
parents: 15018
diff changeset
597 endwhile
8370
cd7ea16d1300 commit https://github.com/vim/vim/commit/b5760a1ce5b700fc32b8bd11948ee189a847c59e
Christian Brabandt <cb@256bit.org>
parents: 8142
diff changeset
598 endif
7277
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
599
20003
e373843e2980 patch 8.2.0557: no IPv6 support for channels
Bram Moolenaar <Bram@vim.org>
parents: 19795
diff changeset
600 call AfterTheTest(g:testfunc)
7277
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
601 endfor
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
602
11181
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11169
diff changeset
603 call FinishTesting()
10388
6cdb0226d74a commit https://github.com/vim/vim/commit/cc28e2d05d05552d8b72a520be8a193f3d9822d4
Christian Brabandt <cb@256bit.org>
parents: 10229
diff changeset
604
6cdb0226d74a commit https://github.com/vim/vim/commit/cc28e2d05d05552d8b72a520be8a193f3d9822d4
Christian Brabandt <cb@256bit.org>
parents: 10229
diff changeset
605 " vim: shiftwidth=2 sts=2 expandtab