Mercurial > vim
annotate src/testdir/runtest.vim @ 13314:65c3e8259124 v8.0.1531
patch 8.0.1531: cannot use 24 bit colors in MS-Windows console
commit https://github.com/vim/vim/commit/cafafb381a04e33f3ce9cd15dd9f94b73226831f
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Feb 22 21:07:09 2018 +0100
patch 8.0.1531: cannot use 24 bit colors in MS-Windows console
Problem: Cannot use 24 bit colors in MS-Windows console.
Solution: Add support for vcon. (Nobuhiro Takasaki, Ken Takasaki,
fixes #1270, fixes #2060)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 22 Feb 2018 21:15:05 +0100 |
parents | d73ebdbd8e35 |
children | 9e9e9f10e311 |
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 |
71aabce3142e
commit https://github.com/vim/vim/commit/befb366affa6309c6b4a469ec7f729821e3a36fa
Christian Brabandt <cb@256bit.org>
parents:
8116
diff
changeset
|
6 " matched against the names of the Test_ funtion. E.g.: |
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 " |
7277
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
10 " 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
|
11 " "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
|
12 " 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
|
13 " |
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
14 " 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
|
15 " 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
|
16 " 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
|
17 " |
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
18 " 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
|
19 " error to the v:errors list: |
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
20 " 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
|
21 " |
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
22 " 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
|
23 " 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
|
24 " |
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
25 " 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
|
26 " 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
|
27 " |
770dd91ad9f7
commit https://github.com/vim/vim/commit/00af60bbb6cc7e8ccafddb30a1964f891b800bce
Christian Brabandt <cb@256bit.org>
parents:
7637
diff
changeset
|
28 " When debugging a test it can be useful to add messages to v:errors: |
770dd91ad9f7
commit https://github.com/vim/vim/commit/00af60bbb6cc7e8ccafddb30a1964f891b800bce
Christian Brabandt <cb@256bit.org>
parents:
7637
diff
changeset
|
29 " call add(v:errors, "this happened") |
770dd91ad9f7
commit https://github.com/vim/vim/commit/00af60bbb6cc7e8ccafddb30a1964f891b800bce
Christian Brabandt <cb@256bit.org>
parents:
7637
diff
changeset
|
30 |
7277
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
31 |
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
32 " Without the +eval feature we can't run these tests, bail out. |
7352
ddab7ae8796d
commit https://github.com/vim/vim/commit/4686b323e4bc0f466500b018959f6c8965f010f9
Christian Brabandt <cb@256bit.org>
parents:
7295
diff
changeset
|
33 so small.vim |
7277
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
34 |
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
35 " 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
|
36 if &lines < 24 || &columns < 80 |
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
37 let error = 'Screen size too small! Tests require at least 24 lines with 80 characters' |
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
38 echoerr error |
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
39 split test.log |
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
40 $put =error |
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
41 w |
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
42 cquit |
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
43 endif |
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
44 |
9501
f0201deac2a2
commit https://github.com/vim/vim/commit/89b10421ca1aea55acbafac1df93be4e20210ceb
Christian Brabandt <cb@256bit.org>
parents:
9452
diff
changeset
|
45 " 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
|
46 source setup.vim |
f0201deac2a2
commit https://github.com/vim/vim/commit/89b10421ca1aea55acbafac1df93be4e20210ceb
Christian Brabandt <cb@256bit.org>
parents:
9452
diff
changeset
|
47 |
7391
4761fed349ed
commit https://github.com/vim/vim/commit/c06624661a3aa6642304c06db9cebe553a4cab17
Christian Brabandt <cb@256bit.org>
parents:
7372
diff
changeset
|
48 " 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
|
49 " 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
|
50 set nocp viminfo+=nviminfo |
4761fed349ed
commit https://github.com/vim/vim/commit/c06624661a3aa6642304c06db9cebe553a4cab17
Christian Brabandt <cb@256bit.org>
parents:
7372
diff
changeset
|
51 |
11105
7c7e496e625d
patch 8.0.0440: not enough test coverage in Insert mode
Christian Brabandt <cb@256bit.org>
parents:
11056
diff
changeset
|
52 " Use utf-8 or latin1 by default, instead of whatever the system default |
9618
81ba6e4eb72b
commit https://github.com/vim/vim/commit/ac105ed3c420660ddbddc501c97875c48220817e
Christian Brabandt <cb@256bit.org>
parents:
9501
diff
changeset
|
53 " happens to be. Individual tests can overrule this at the top of the file. |
81ba6e4eb72b
commit https://github.com/vim/vim/commit/ac105ed3c420660ddbddc501c97875c48220817e
Christian Brabandt <cb@256bit.org>
parents:
9501
diff
changeset
|
54 if has('multi_byte') |
81ba6e4eb72b
commit https://github.com/vim/vim/commit/ac105ed3c420660ddbddc501c97875c48220817e
Christian Brabandt <cb@256bit.org>
parents:
9501
diff
changeset
|
55 set encoding=utf-8 |
81ba6e4eb72b
commit https://github.com/vim/vim/commit/ac105ed3c420660ddbddc501c97875c48220817e
Christian Brabandt <cb@256bit.org>
parents:
9501
diff
changeset
|
56 else |
81ba6e4eb72b
commit https://github.com/vim/vim/commit/ac105ed3c420660ddbddc501c97875c48220817e
Christian Brabandt <cb@256bit.org>
parents:
9501
diff
changeset
|
57 set encoding=latin1 |
81ba6e4eb72b
commit https://github.com/vim/vim/commit/ac105ed3c420660ddbddc501c97875c48220817e
Christian Brabandt <cb@256bit.org>
parents:
9501
diff
changeset
|
58 endif |
81ba6e4eb72b
commit https://github.com/vim/vim/commit/ac105ed3c420660ddbddc501c97875c48220817e
Christian Brabandt <cb@256bit.org>
parents:
9501
diff
changeset
|
59 |
10811
4cb74eab1733
patch 8.0.0295: test_viml hangs
Christian Brabandt <cb@256bit.org>
parents:
10807
diff
changeset
|
60 " Avoid stopping at the "hit enter" prompt |
4cb74eab1733
patch 8.0.0295: test_viml hangs
Christian Brabandt <cb@256bit.org>
parents:
10807
diff
changeset
|
61 set nomore |
4cb74eab1733
patch 8.0.0295: test_viml hangs
Christian Brabandt <cb@256bit.org>
parents:
10807
diff
changeset
|
62 |
7391
4761fed349ed
commit https://github.com/vim/vim/commit/c06624661a3aa6642304c06db9cebe553a4cab17
Christian Brabandt <cb@256bit.org>
parents:
7372
diff
changeset
|
63 " Output all messages in English. |
4761fed349ed
commit https://github.com/vim/vim/commit/c06624661a3aa6642304c06db9cebe553a4cab17
Christian Brabandt <cb@256bit.org>
parents:
7372
diff
changeset
|
64 lang mess C |
4761fed349ed
commit https://github.com/vim/vim/commit/c06624661a3aa6642304c06db9cebe553a4cab17
Christian Brabandt <cb@256bit.org>
parents:
7372
diff
changeset
|
65 |
7623
2720952e9acb
commit https://github.com/vim/vim/commit/f60b796fa9870bdfc4cdeb91653bac041916077d
Christian Brabandt <cb@256bit.org>
parents:
7595
diff
changeset
|
66 " Always use forward slashes. |
2720952e9acb
commit https://github.com/vim/vim/commit/f60b796fa9870bdfc4cdeb91653bac041916077d
Christian Brabandt <cb@256bit.org>
parents:
7595
diff
changeset
|
67 set shellslash |
2720952e9acb
commit https://github.com/vim/vim/commit/f60b796fa9870bdfc4cdeb91653bac041916077d
Christian Brabandt <cb@256bit.org>
parents:
7595
diff
changeset
|
68 |
7545
4c922651fd78
commit https://github.com/vim/vim/commit/28fb79db6b52d1154e8dc63d227673648c2fce15
Christian Brabandt <cb@256bit.org>
parents:
7540
diff
changeset
|
69 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
|
70 |
9121
7350959e53c3
commit https://github.com/vim/vim/commit/8e8df251bf2505e5decf258397c6069fbe5e2e01
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
71 " 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
|
72 let v:testing = 1 |
ed0b39dd7fd6
commit https://github.com/vim/vim/commit/ebf7dfa6f121c82f97d2adca3d45fbaba9ad8f7e
Christian Brabandt <cb@256bit.org>
parents:
8796
diff
changeset
|
73 |
7545
4c922651fd78
commit https://github.com/vim/vim/commit/28fb79db6b52d1154e8dc63d227673648c2fce15
Christian Brabandt <cb@256bit.org>
parents:
7540
diff
changeset
|
74 " 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
|
75 function GetAllocId(name) |
4c922651fd78
commit https://github.com/vim/vim/commit/28fb79db6b52d1154e8dc63d227673648c2fce15
Christian Brabandt <cb@256bit.org>
parents:
7540
diff
changeset
|
76 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
|
77 let top = search('typedef enum') |
99e93f72ff91
commit https://github.com/vim/vim/commit/065ee9aebf9abe08ae8c0dba7d05cbdcc423c8e0
Christian Brabandt <cb@256bit.org>
parents:
7545
diff
changeset
|
78 if top == 0 |
99e93f72ff91
commit https://github.com/vim/vim/commit/065ee9aebf9abe08ae8c0dba7d05cbdcc423c8e0
Christian Brabandt <cb@256bit.org>
parents:
7545
diff
changeset
|
79 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
|
80 endif |
7545
4c922651fd78
commit https://github.com/vim/vim/commit/28fb79db6b52d1154e8dc63d227673648c2fce15
Christian Brabandt <cb@256bit.org>
parents:
7540
diff
changeset
|
81 let lnum = search('aid_' . a:name . ',') |
4c922651fd78
commit https://github.com/vim/vim/commit/28fb79db6b52d1154e8dc63d227673648c2fce15
Christian Brabandt <cb@256bit.org>
parents:
7540
diff
changeset
|
82 if lnum == 0 |
4c922651fd78
commit https://github.com/vim/vim/commit/28fb79db6b52d1154e8dc63d227673648c2fce15
Christian Brabandt <cb@256bit.org>
parents:
7540
diff
changeset
|
83 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
|
84 endif |
4c922651fd78
commit https://github.com/vim/vim/commit/28fb79db6b52d1154e8dc63d227673648c2fce15
Christian Brabandt <cb@256bit.org>
parents:
7540
diff
changeset
|
85 close |
7595
99e93f72ff91
commit https://github.com/vim/vim/commit/065ee9aebf9abe08ae8c0dba7d05cbdcc423c8e0
Christian Brabandt <cb@256bit.org>
parents:
7545
diff
changeset
|
86 return lnum - top - 1 |
7545
4c922651fd78
commit https://github.com/vim/vim/commit/28fb79db6b52d1154e8dc63d227673648c2fce15
Christian Brabandt <cb@256bit.org>
parents:
7540
diff
changeset
|
87 endfunc |
4c922651fd78
commit https://github.com/vim/vim/commit/28fb79db6b52d1154e8dc63d227673648c2fce15
Christian Brabandt <cb@256bit.org>
parents:
7540
diff
changeset
|
88 |
11181
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
89 func RunTheTest(test) |
8370
cd7ea16d1300
commit https://github.com/vim/vim/commit/b5760a1ce5b700fc32b8bd11948ee189a847c59e
Christian Brabandt <cb@256bit.org>
parents:
8142
diff
changeset
|
90 echo '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
|
91 |
82c43bca568e
patch 8.0.0293: some tests have a one or three second wait
Christian Brabandt <cb@256bit.org>
parents:
10797
diff
changeset
|
92 " 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
|
93 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
|
94 |
82c43bca568e
patch 8.0.0293: some tests have a one or three second wait
Christian Brabandt <cb@256bit.org>
parents:
10797
diff
changeset
|
95 " 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
|
96 " 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
|
97 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
|
98 |
11105
7c7e496e625d
patch 8.0.0440: not enough test coverage in Insert mode
Christian Brabandt <cb@256bit.org>
parents:
11056
diff
changeset
|
99 " Clear any overrides. |
7c7e496e625d
patch 8.0.0440: not enough test coverage in Insert mode
Christian Brabandt <cb@256bit.org>
parents:
11056
diff
changeset
|
100 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
|
101 |
12692
03a6aeea2096
patch 8.0.1224: still interference between test functions
Christian Brabandt <cb@256bit.org>
parents:
12688
diff
changeset
|
102 " 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
|
103 " buffers. |
03a6aeea2096
patch 8.0.1224: still interference between test functions
Christian Brabandt <cb@256bit.org>
parents:
12688
diff
changeset
|
104 %bwipe! |
03a6aeea2096
patch 8.0.1224: still interference between test functions
Christian Brabandt <cb@256bit.org>
parents:
12688
diff
changeset
|
105 |
12851
90aaa974594e
patch 8.0.1302: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents:
12769
diff
changeset
|
106 " 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
|
107 " 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
|
108 let save_cwd = getcwd() |
90aaa974594e
patch 8.0.1302: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents:
12769
diff
changeset
|
109 |
8370
cd7ea16d1300
commit https://github.com/vim/vim/commit/b5760a1ce5b700fc32b8bd11948ee189a847c59e
Christian Brabandt <cb@256bit.org>
parents:
8142
diff
changeset
|
110 if exists("*SetUp") |
10388
6cdb0226d74a
commit https://github.com/vim/vim/commit/cc28e2d05d05552d8b72a520be8a193f3d9822d4
Christian Brabandt <cb@256bit.org>
parents:
10229
diff
changeset
|
111 try |
6cdb0226d74a
commit https://github.com/vim/vim/commit/cc28e2d05d05552d8b72a520be8a193f3d9822d4
Christian Brabandt <cb@256bit.org>
parents:
10229
diff
changeset
|
112 call SetUp() |
6cdb0226d74a
commit https://github.com/vim/vim/commit/cc28e2d05d05552d8b72a520be8a193f3d9822d4
Christian Brabandt <cb@256bit.org>
parents:
10229
diff
changeset
|
113 catch |
6cdb0226d74a
commit https://github.com/vim/vim/commit/cc28e2d05d05552d8b72a520be8a193f3d9822d4
Christian Brabandt <cb@256bit.org>
parents:
10229
diff
changeset
|
114 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
|
115 endtry |
8370
cd7ea16d1300
commit https://github.com/vim/vim/commit/b5760a1ce5b700fc32b8bd11948ee189a847c59e
Christian Brabandt <cb@256bit.org>
parents:
8142
diff
changeset
|
116 endif |
cd7ea16d1300
commit https://github.com/vim/vim/commit/b5760a1ce5b700fc32b8bd11948ee189a847c59e
Christian Brabandt <cb@256bit.org>
parents:
8142
diff
changeset
|
117 |
cd7ea16d1300
commit https://github.com/vim/vim/commit/b5760a1ce5b700fc32b8bd11948ee189a847c59e
Christian Brabandt <cb@256bit.org>
parents:
8142
diff
changeset
|
118 call add(s:messages, 'Executing ' . a:test) |
cd7ea16d1300
commit https://github.com/vim/vim/commit/b5760a1ce5b700fc32b8bd11948ee189a847c59e
Christian Brabandt <cb@256bit.org>
parents:
8142
diff
changeset
|
119 let s:done += 1 |
12682
47f253caa805
patch 8.0.1219: terminal test is flaky
Christian Brabandt <cb@256bit.org>
parents:
12616
diff
changeset
|
120 |
47f253caa805
patch 8.0.1219: terminal test is flaky
Christian Brabandt <cb@256bit.org>
parents:
12616
diff
changeset
|
121 if a:test =~ 'Test_nocatch_' |
47f253caa805
patch 8.0.1219: terminal test is flaky
Christian Brabandt <cb@256bit.org>
parents:
12616
diff
changeset
|
122 " 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
|
123 " error. |
8370
cd7ea16d1300
commit https://github.com/vim/vim/commit/b5760a1ce5b700fc32b8bd11948ee189a847c59e
Christian Brabandt <cb@256bit.org>
parents:
8142
diff
changeset
|
124 exe 'call ' . a:test |
12682
47f253caa805
patch 8.0.1219: terminal test is flaky
Christian Brabandt <cb@256bit.org>
parents:
12616
diff
changeset
|
125 else |
47f253caa805
patch 8.0.1219: terminal test is flaky
Christian Brabandt <cb@256bit.org>
parents:
12616
diff
changeset
|
126 try |
47f253caa805
patch 8.0.1219: terminal test is flaky
Christian Brabandt <cb@256bit.org>
parents:
12616
diff
changeset
|
127 exe 'call ' . a:test |
47f253caa805
patch 8.0.1219: terminal test is flaky
Christian Brabandt <cb@256bit.org>
parents:
12616
diff
changeset
|
128 catch /^\cskipped/ |
47f253caa805
patch 8.0.1219: terminal test is flaky
Christian Brabandt <cb@256bit.org>
parents:
12616
diff
changeset
|
129 call add(s:messages, ' Skipped') |
47f253caa805
patch 8.0.1219: terminal test is flaky
Christian Brabandt <cb@256bit.org>
parents:
12616
diff
changeset
|
130 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
|
131 catch |
47f253caa805
patch 8.0.1219: terminal test is flaky
Christian Brabandt <cb@256bit.org>
parents:
12616
diff
changeset
|
132 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
|
133 endtry |
47f253caa805
patch 8.0.1219: terminal test is flaky
Christian Brabandt <cb@256bit.org>
parents:
12616
diff
changeset
|
134 endif |
8370
cd7ea16d1300
commit https://github.com/vim/vim/commit/b5760a1ce5b700fc32b8bd11948ee189a847c59e
Christian Brabandt <cb@256bit.org>
parents:
8142
diff
changeset
|
135 |
cd7ea16d1300
commit https://github.com/vim/vim/commit/b5760a1ce5b700fc32b8bd11948ee189a847c59e
Christian Brabandt <cb@256bit.org>
parents:
8142
diff
changeset
|
136 if exists("*TearDown") |
10388
6cdb0226d74a
commit https://github.com/vim/vim/commit/cc28e2d05d05552d8b72a520be8a193f3d9822d4
Christian Brabandt <cb@256bit.org>
parents:
10229
diff
changeset
|
137 try |
6cdb0226d74a
commit https://github.com/vim/vim/commit/cc28e2d05d05552d8b72a520be8a193f3d9822d4
Christian Brabandt <cb@256bit.org>
parents:
10229
diff
changeset
|
138 call TearDown() |
6cdb0226d74a
commit https://github.com/vim/vim/commit/cc28e2d05d05552d8b72a520be8a193f3d9822d4
Christian Brabandt <cb@256bit.org>
parents:
10229
diff
changeset
|
139 catch |
6cdb0226d74a
commit https://github.com/vim/vim/commit/cc28e2d05d05552d8b72a520be8a193f3d9822d4
Christian Brabandt <cb@256bit.org>
parents:
10229
diff
changeset
|
140 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
|
141 endtry |
8370
cd7ea16d1300
commit https://github.com/vim/vim/commit/b5760a1ce5b700fc32b8bd11948ee189a847c59e
Christian Brabandt <cb@256bit.org>
parents:
8142
diff
changeset
|
142 endif |
9748
5440f3442841
commit https://github.com/vim/vim/commit/7cba71d7e3576639679b6a3aedeeb1ac07f7f2f5
Christian Brabandt <cb@256bit.org>
parents:
9632
diff
changeset
|
143 |
12692
03a6aeea2096
patch 8.0.1224: still interference between test functions
Christian Brabandt <cb@256bit.org>
parents:
12688
diff
changeset
|
144 " Clear any autocommands |
03a6aeea2096
patch 8.0.1224: still interference between test functions
Christian Brabandt <cb@256bit.org>
parents:
12688
diff
changeset
|
145 au! |
03a6aeea2096
patch 8.0.1224: still interference between test functions
Christian Brabandt <cb@256bit.org>
parents:
12688
diff
changeset
|
146 |
12688
a6a935b3270e
patch 8.0.1222: test functions interfere with each other
Christian Brabandt <cb@256bit.org>
parents:
12682
diff
changeset
|
147 " 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
|
148 while tabpagenr('$') > 1 |
12692
03a6aeea2096
patch 8.0.1224: still interference between test functions
Christian Brabandt <cb@256bit.org>
parents:
12688
diff
changeset
|
149 quit! |
12688
a6a935b3270e
patch 8.0.1222: test functions interfere with each other
Christian Brabandt <cb@256bit.org>
parents:
12682
diff
changeset
|
150 endwhile |
a6a935b3270e
patch 8.0.1222: test functions interfere with each other
Christian Brabandt <cb@256bit.org>
parents:
12682
diff
changeset
|
151 |
9949
30be4b26a37e
commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents:
9758
diff
changeset
|
152 while 1 |
30be4b26a37e
commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents:
9758
diff
changeset
|
153 let wincount = winnr('$') |
30be4b26a37e
commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents:
9758
diff
changeset
|
154 if wincount == 1 |
30be4b26a37e
commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents:
9758
diff
changeset
|
155 break |
30be4b26a37e
commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents:
9758
diff
changeset
|
156 endif |
9748
5440f3442841
commit https://github.com/vim/vim/commit/7cba71d7e3576639679b6a3aedeeb1ac07f7f2f5
Christian Brabandt <cb@256bit.org>
parents:
9632
diff
changeset
|
157 bwipe! |
9949
30be4b26a37e
commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents:
9758
diff
changeset
|
158 if wincount == winnr('$') |
30be4b26a37e
commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents:
9758
diff
changeset
|
159 " 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
|
160 only! |
30be4b26a37e
commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents:
9758
diff
changeset
|
161 break |
30be4b26a37e
commit https://github.com/vim/vim/commit/358308dd99abdd56c6540339e505585d8db7bdfe
Christian Brabandt <cb@256bit.org>
parents:
9758
diff
changeset
|
162 endif |
9748
5440f3442841
commit https://github.com/vim/vim/commit/7cba71d7e3576639679b6a3aedeeb1ac07f7f2f5
Christian Brabandt <cb@256bit.org>
parents:
9632
diff
changeset
|
163 endwhile |
12851
90aaa974594e
patch 8.0.1302: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents:
12769
diff
changeset
|
164 |
90aaa974594e
patch 8.0.1302: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents:
12769
diff
changeset
|
165 exe 'cd ' . save_cwd |
8370
cd7ea16d1300
commit https://github.com/vim/vim/commit/b5760a1ce5b700fc32b8bd11948ee189a847c59e
Christian Brabandt <cb@256bit.org>
parents:
8142
diff
changeset
|
166 endfunc |
7545
4c922651fd78
commit https://github.com/vim/vim/commit/28fb79db6b52d1154e8dc63d227673648c2fce15
Christian Brabandt <cb@256bit.org>
parents:
7540
diff
changeset
|
167 |
11181
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
168 func AfterTheTest() |
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
169 if len(v:errors) > 0 |
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
170 let s:fail += 1 |
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
171 call add(s:errors, 'Found errors in ' . s:test . ':') |
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
172 call extend(s:errors, v:errors) |
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
173 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
|
174 endif |
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
175 endfunc |
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
176 |
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
177 " 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
|
178 func FinishTesting() |
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
179 call AfterTheTest() |
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
180 |
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
181 " 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
|
182 set viminfo= |
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
183 |
11850
eb339f9af281
patch 8.0.0805: GUI test fails with gnome2
Christian Brabandt <cb@256bit.org>
parents:
11205
diff
changeset
|
184 " 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
|
185 call delete('XfakeHOME', 'rf') |
eb339f9af281
patch 8.0.0805: GUI test fails with gnome2
Christian Brabandt <cb@256bit.org>
parents:
11205
diff
changeset
|
186 |
11181
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
187 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
|
188 " 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
|
189 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
|
190 write |
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
191 endif |
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
192 |
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
193 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
|
194 " 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
|
195 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
|
196 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
|
197 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
|
198 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
|
199 write |
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
200 endif |
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
201 |
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
202 let message = 'Executed ' . s:done . (s:done > 1 ? ' tests' : ' test') |
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
203 echo message |
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
204 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
|
205 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
|
206 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
|
207 echo message |
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
208 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
|
209 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
|
210 endif |
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
211 |
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
212 " 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
|
213 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
|
214 |
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
215 " 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
|
216 split messages |
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
217 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
|
218 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
|
219 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
|
220 write |
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
221 |
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
222 qall! |
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
223 endfunc |
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
224 |
7277
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
225 " 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
|
226 " 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
|
227 let g:testname = expand('%') |
770dd91ad9f7
commit https://github.com/vim/vim/commit/00af60bbb6cc7e8ccafddb30a1964f891b800bce
Christian Brabandt <cb@256bit.org>
parents:
7637
diff
changeset
|
228 let s:done = 0 |
770dd91ad9f7
commit https://github.com/vim/vim/commit/00af60bbb6cc7e8ccafddb30a1964f891b800bce
Christian Brabandt <cb@256bit.org>
parents:
7637
diff
changeset
|
229 let s:fail = 0 |
770dd91ad9f7
commit https://github.com/vim/vim/commit/00af60bbb6cc7e8ccafddb30a1964f891b800bce
Christian Brabandt <cb@256bit.org>
parents:
7637
diff
changeset
|
230 let s:errors = [] |
770dd91ad9f7
commit https://github.com/vim/vim/commit/00af60bbb6cc7e8ccafddb30a1964f891b800bce
Christian Brabandt <cb@256bit.org>
parents:
7637
diff
changeset
|
231 let s:messages = [] |
10100
26441931dad7
commit https://github.com/vim/vim/commit/dac1947bb366ef43cd6da95acc730554e76d8b84
Christian Brabandt <cb@256bit.org>
parents:
9949
diff
changeset
|
232 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
|
233 if expand('%') =~ 'test_vimscript.vim' |
8029
770dd91ad9f7
commit https://github.com/vim/vim/commit/00af60bbb6cc7e8ccafddb30a1964f891b800bce
Christian Brabandt <cb@256bit.org>
parents:
7637
diff
changeset
|
234 " this test has intentional s: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
|
235 source % |
7454
4ff843da79fd
commit https://github.com/vim/vim/commit/a2cce8630756769b2cefdc28c7290ae9262cddb1
Christian Brabandt <cb@256bit.org>
parents:
7391
diff
changeset
|
236 else |
4ff843da79fd
commit https://github.com/vim/vim/commit/a2cce8630756769b2cefdc28c7290ae9262cddb1
Christian Brabandt <cb@256bit.org>
parents:
7391
diff
changeset
|
237 try |
4ff843da79fd
commit https://github.com/vim/vim/commit/a2cce8630756769b2cefdc28c7290ae9262cddb1
Christian Brabandt <cb@256bit.org>
parents:
7391
diff
changeset
|
238 source % |
4ff843da79fd
commit https://github.com/vim/vim/commit/a2cce8630756769b2cefdc28c7290ae9262cddb1
Christian Brabandt <cb@256bit.org>
parents:
7391
diff
changeset
|
239 catch |
8029
770dd91ad9f7
commit https://github.com/vim/vim/commit/00af60bbb6cc7e8ccafddb30a1964f891b800bce
Christian Brabandt <cb@256bit.org>
parents:
7637
diff
changeset
|
240 let s:fail += 1 |
770dd91ad9f7
commit https://github.com/vim/vim/commit/00af60bbb6cc7e8ccafddb30a1964f891b800bce
Christian Brabandt <cb@256bit.org>
parents:
7637
diff
changeset
|
241 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
|
242 endtry |
4ff843da79fd
commit https://github.com/vim/vim/commit/a2cce8630756769b2cefdc28c7290ae9262cddb1
Christian Brabandt <cb@256bit.org>
parents:
7391
diff
changeset
|
243 endif |
7277
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
244 |
8370
cd7ea16d1300
commit https://github.com/vim/vim/commit/b5760a1ce5b700fc32b8bd11948ee189a847c59e
Christian Brabandt <cb@256bit.org>
parents:
8142
diff
changeset
|
245 " Names of flaky tests. |
10189
2392e065efea
commit https://github.com/vim/vim/commit/e1c8c7a6742be6072290f9aa54ae358060d9c42f
Christian Brabandt <cb@256bit.org>
parents:
10100
diff
changeset
|
246 let s:flaky = [ |
11181
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
247 \ 'Test_client_server()', |
10789
214417c527b5
patch 8.0.0284: collapse buffers test failed once
Christian Brabandt <cb@256bit.org>
parents:
10755
diff
changeset
|
248 \ 'Test_close_and_exit_cb()', |
214417c527b5
patch 8.0.0284: collapse buffers test failed once
Christian Brabandt <cb@256bit.org>
parents:
10755
diff
changeset
|
249 \ 'Test_collapse_buffers()', |
214417c527b5
patch 8.0.0284: collapse buffers test failed once
Christian Brabandt <cb@256bit.org>
parents:
10755
diff
changeset
|
250 \ 'Test_communicate()', |
11169
f4971739ea47
patch 8.0.0471: exit callback test sometimes fails
Christian Brabandt <cb@256bit.org>
parents:
11105
diff
changeset
|
251 \ 'Test_exit_callback_interval()', |
10189
2392e065efea
commit https://github.com/vim/vim/commit/e1c8c7a6742be6072290f9aa54ae358060d9c42f
Christian Brabandt <cb@256bit.org>
parents:
10100
diff
changeset
|
252 \ 'Test_nb_basic()', |
10990
f18a98681da1
patch 8.0.0384: timer test failed for no apparent reason
Christian Brabandt <cb@256bit.org>
parents:
10942
diff
changeset
|
253 \ 'Test_oneshot()', |
12988
da725bc3fd2c
patch 8.0.1370: channel test for callback is flaky
Christian Brabandt <cb@256bit.org>
parents:
12979
diff
changeset
|
254 \ 'Test_out_cb()', |
12979
6cf6138b6484
patch 8.0.1365: when one channel test fails others fail as well
Christian Brabandt <cb@256bit.org>
parents:
12905
diff
changeset
|
255 \ 'Test_paused()', |
10229
19ced29f773a
commit https://github.com/vim/vim/commit/c79d6aa01d86cd98cffddc80825c1c600e833bbf
Christian Brabandt <cb@256bit.org>
parents:
10223
diff
changeset
|
256 \ 'Test_pipe_through_sort_all()', |
10797
e1bddbed43cc
patch 8.0.0288: errors reported while running tests
Christian Brabandt <cb@256bit.org>
parents:
10789
diff
changeset
|
257 \ 'Test_pipe_through_sort_some()', |
11056
679c12064dbc
patch 8.0.0417: test for the clipboard fails sometimes
Christian Brabandt <cb@256bit.org>
parents:
10990
diff
changeset
|
258 \ 'Test_quoteplus()', |
11205
4db196820d3b
patch 8.0.0489: clipboard and "* register is not tested
Christian Brabandt <cb@256bit.org>
parents:
11187
diff
changeset
|
259 \ 'Test_quotestar()', |
10789
214417c527b5
patch 8.0.0284: collapse buffers test failed once
Christian Brabandt <cb@256bit.org>
parents:
10755
diff
changeset
|
260 \ 'Test_reltime()', |
13266
d73ebdbd8e35
patch 8.0.1507: timer test is a bit flaky
Christian Brabandt <cb@256bit.org>
parents:
12988
diff
changeset
|
261 \ 'Test_repeat_three()', |
12682
47f253caa805
patch 8.0.1219: terminal test is flaky
Christian Brabandt <cb@256bit.org>
parents:
12616
diff
changeset
|
262 \ 'Test_terminal_composing_unicode()', |
12381
d3f8f1c33a20
patch 8.0.1070: terminal test is flaky on Mac
Christian Brabandt <cb@256bit.org>
parents:
11884
diff
changeset
|
263 \ 'Test_terminal_noblock()', |
12769
083ae2cfcc5b
patch 8.0.1262: terminal redir test is flaky
Christian Brabandt <cb@256bit.org>
parents:
12692
diff
changeset
|
264 \ 'Test_terminal_redir_file()', |
12979
6cf6138b6484
patch 8.0.1365: when one channel test fails others fail as well
Christian Brabandt <cb@256bit.org>
parents:
12905
diff
changeset
|
265 \ 'Test_terminal_tmap()', |
11884
3cb7318223a4
patch 8.0.0822: Test_with_partial_callback is a tiny bit flaky
Christian Brabandt <cb@256bit.org>
parents:
11850
diff
changeset
|
266 \ 'Test_with_partial_callback()', |
10189
2392e065efea
commit https://github.com/vim/vim/commit/e1c8c7a6742be6072290f9aa54ae358060d9c42f
Christian Brabandt <cb@256bit.org>
parents:
10100
diff
changeset
|
267 \ ] |
8370
cd7ea16d1300
commit https://github.com/vim/vim/commit/b5760a1ce5b700fc32b8bd11948ee189a847c59e
Christian Brabandt <cb@256bit.org>
parents:
8142
diff
changeset
|
268 |
7277
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
269 " Locate Test_ functions and execute them. |
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
270 redir @q |
8116
3c1bdf20c8b9
commit https://github.com/vim/vim/commit/93bf558caef2d507ef6baf56eaf6025b63da1e34
Christian Brabandt <cb@256bit.org>
parents:
8029
diff
changeset
|
271 silent function /^Test_ |
7277
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
272 redir END |
8029
770dd91ad9f7
commit https://github.com/vim/vim/commit/00af60bbb6cc7e8ccafddb30a1964f891b800bce
Christian Brabandt <cb@256bit.org>
parents:
7637
diff
changeset
|
273 let s:tests = split(substitute(@q, 'function \(\k*()\)', '\1', 'g')) |
7277
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
274 |
8142
71aabce3142e
commit https://github.com/vim/vim/commit/befb366affa6309c6b4a469ec7f729821e3a36fa
Christian Brabandt <cb@256bit.org>
parents:
8116
diff
changeset
|
275 " 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
|
276 if argc() > 1 |
71aabce3142e
commit https://github.com/vim/vim/commit/befb366affa6309c6b4a469ec7f729821e3a36fa
Christian Brabandt <cb@256bit.org>
parents:
8116
diff
changeset
|
277 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
|
278 endif |
71aabce3142e
commit https://github.com/vim/vim/commit/befb366affa6309c6b4a469ec7f729821e3a36fa
Christian Brabandt <cb@256bit.org>
parents:
8116
diff
changeset
|
279 |
7540
b910bb01832a
commit https://github.com/vim/vim/commit/cfc0a350a9fa04f1b0cfa1ba31fbd2847376513f
Christian Brabandt <cb@256bit.org>
parents:
7454
diff
changeset
|
280 " Execute the tests in alphabetical order. |
8116
3c1bdf20c8b9
commit https://github.com/vim/vim/commit/93bf558caef2d507ef6baf56eaf6025b63da1e34
Christian Brabandt <cb@256bit.org>
parents:
8029
diff
changeset
|
281 for s:test in sort(s:tests) |
12616
4767939d10cc
patch 8.0.1186: still quite a few old style tests
Christian Brabandt <cb@256bit.org>
parents:
12381
diff
changeset
|
282 " Silence, please! |
4767939d10cc
patch 8.0.1186: still quite a few old style tests
Christian Brabandt <cb@256bit.org>
parents:
12381
diff
changeset
|
283 set belloff=all |
4767939d10cc
patch 8.0.1186: still quite a few old style tests
Christian Brabandt <cb@256bit.org>
parents:
12381
diff
changeset
|
284 |
8370
cd7ea16d1300
commit https://github.com/vim/vim/commit/b5760a1ce5b700fc32b8bd11948ee189a847c59e
Christian Brabandt <cb@256bit.org>
parents:
8142
diff
changeset
|
285 call RunTheTest(s:test) |
7277
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
286 |
8370
cd7ea16d1300
commit https://github.com/vim/vim/commit/b5760a1ce5b700fc32b8bd11948ee189a847c59e
Christian Brabandt <cb@256bit.org>
parents:
8142
diff
changeset
|
287 if len(v:errors) > 0 && index(s:flaky, s:test) >= 0 |
11185
eb050472e4b4
patch 8.0.0479: remote_peek() is not tested
Christian Brabandt <cb@256bit.org>
parents:
11181
diff
changeset
|
288 call add(s:messages, 'Found errors in ' . s:test . ':') |
eb050472e4b4
patch 8.0.0479: remote_peek() is not tested
Christian Brabandt <cb@256bit.org>
parents:
11181
diff
changeset
|
289 call extend(s:messages, v:errors) |
8370
cd7ea16d1300
commit https://github.com/vim/vim/commit/b5760a1ce5b700fc32b8bd11948ee189a847c59e
Christian Brabandt <cb@256bit.org>
parents:
8142
diff
changeset
|
290 call add(s:messages, 'Flaky test failed, running it again') |
11187
515db00c4676
patch 8.0.0480: the remote_peek() test fails on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11185
diff
changeset
|
291 let first_run = v:errors |
515db00c4676
patch 8.0.0480: the remote_peek() test fails on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11185
diff
changeset
|
292 |
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
|
293 " Flakiness is often caused by the system being very busy. Sleep a couple |
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
|
294 " of seconds to have a higher chance of succeeding the second time. |
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
|
295 sleep 2 |
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
|
296 |
8370
cd7ea16d1300
commit https://github.com/vim/vim/commit/b5760a1ce5b700fc32b8bd11948ee189a847c59e
Christian Brabandt <cb@256bit.org>
parents:
8142
diff
changeset
|
297 let v:errors = [] |
cd7ea16d1300
commit https://github.com/vim/vim/commit/b5760a1ce5b700fc32b8bd11948ee189a847c59e
Christian Brabandt <cb@256bit.org>
parents:
8142
diff
changeset
|
298 call RunTheTest(s:test) |
11187
515db00c4676
patch 8.0.0480: the remote_peek() test fails on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11185
diff
changeset
|
299 if len(v:errors) > 0 |
515db00c4676
patch 8.0.0480: the remote_peek() test fails on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11185
diff
changeset
|
300 let second_run = v:errors |
515db00c4676
patch 8.0.0480: the remote_peek() test fails on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11185
diff
changeset
|
301 let v:errors = ['First run:'] |
515db00c4676
patch 8.0.0480: the remote_peek() test fails on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11185
diff
changeset
|
302 call extend(v:errors, first_run) |
515db00c4676
patch 8.0.0480: the remote_peek() test fails on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11185
diff
changeset
|
303 call add(v:errors, 'Second run:') |
515db00c4676
patch 8.0.0480: the remote_peek() test fails on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11185
diff
changeset
|
304 call extend(v:errors, second_run) |
515db00c4676
patch 8.0.0480: the remote_peek() test fails on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
11185
diff
changeset
|
305 endif |
8370
cd7ea16d1300
commit https://github.com/vim/vim/commit/b5760a1ce5b700fc32b8bd11948ee189a847c59e
Christian Brabandt <cb@256bit.org>
parents:
8142
diff
changeset
|
306 endif |
7277
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
307 |
11181
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
308 call AfterTheTest() |
7277
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
309 endfor |
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
310 |
11181
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11169
diff
changeset
|
311 call FinishTesting() |
10388
6cdb0226d74a
commit https://github.com/vim/vim/commit/cc28e2d05d05552d8b72a520be8a193f3d9822d4
Christian Brabandt <cb@256bit.org>
parents:
10229
diff
changeset
|
312 |
6cdb0226d74a
commit https://github.com/vim/vim/commit/cc28e2d05d05552d8b72a520be8a193f3d9822d4
Christian Brabandt <cb@256bit.org>
parents:
10229
diff
changeset
|
313 " vim: shiftwidth=2 sts=2 expandtab |