annotate src/testdir/test_ex_z.vim @ 33189:c41b1cac349b v9.0.1874

patch 9.0.1874: CI may fail in test_recover_empty_swap Commit: https://github.com/vim/vim/commit/1c7397f3f1e168541f88bb1bbd93a9f0b1235852 Author: Christian Brabandt <cb@256bit.org> Date: Tue Sep 5 20:40:25 2023 +0200 patch 9.0.1874: CI may fail in test_recover_empty_swap Problem: CI may fail in test_recover_empty_swap Solution: Set directory option Fix failing Test_recover_empty_swap test :recover by default not only looks in the current directory, but also in ~/tmp for files to recover. If it finds some files to recover, it will interactively prompt for a file to recover. However, prompting doesn't work when running the test suite (and even if it would, there is no one that can answer the prompt). So it doesn't really make sense during testing, to inspect different directories for swap files and prompt and wait (which will lead to a timeout and therefore a failing test). So set the 'directory' option temporarily to the current directory only and reset it back once the test finishes. closes: #13038 Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Tue, 05 Sep 2023 20:45:03 +0200
parents 0f93e9423890
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11303
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1 " Test :z
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
2
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
3 func Test_z()
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
4 call setline(1, range(1, 100))
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
5
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
6 let a = execute('20z3')
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
7 call assert_equal("\n20\n21\n22", a)
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
8 call assert_equal(22, line('.'))
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
9 " 'window' should be set to the {count} value.
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
10 call assert_equal(3, &window)
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
11
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
12 " If there is only one window, then twice the amount of 'scroll' is used.
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
13 set scroll=2
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
14 let a = execute('20z')
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
15 call assert_equal("\n20\n21\n22\n23", a)
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
16 call assert_equal(23, line('.'))
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
17
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
18 let a = execute('20z+3')
25729
0f93e9423890 patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
19 " FIXME: I would expect the same result as '20z3' since 'help z'
0f93e9423890 patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
20 " says: Specifying no mark at all is the same as "+".
0f93e9423890 patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
21 " However it " gives "\n21\n22\n23" instead. Bug in Vim or in ":help :z"?
11303
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
22 "call assert_equal("\n20\n21\n22", a)
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
23 "call assert_equal(22, line('.'))
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
24
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
25 let a = execute('20z-3')
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
26 call assert_equal("\n18\n19\n20", a)
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
27 call assert_equal(20, line('.'))
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
28
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
29 let a = execute('20z=3')
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
30 call assert_match("^\n18\n19\n-\\+\n20\n-\\+\n21\n22$", a)
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
31 call assert_equal(20, line('.'))
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
32
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
33 let a = execute('20z^3')
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
34 call assert_equal("\n14\n15\n16\n17", a)
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
35 call assert_equal(17, line('.'))
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
36
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
37 let a = execute('20z.3')
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
38 call assert_equal("\n19\n20\n21", a)
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
39 call assert_equal(21, line('.'))
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
40
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
41 let a = execute('20z#3')
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
42 call assert_equal("\n 20 20\n 21 21\n 22 22", a)
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
43 call assert_equal(22, line('.'))
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
44
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
45 let a = execute('20z#-3')
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
46 call assert_equal("\n 18 18\n 19 19\n 20 20", a)
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
47 call assert_equal(20, line('.'))
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
48
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
49 let a = execute('20z#=3')
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
50 call assert_match("^\n 18 18\n 19 19\n-\\+\n 20 20\n-\\+\n 21 21\n 22 22$", a)
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
51 call assert_equal(20, line('.'))
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
52
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
53 " Test with {count} bigger than the number of lines in buffer.
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
54 let a = execute('20z1000')
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
55 call assert_match("^\n20\n21\n.*\n99\n100$", a)
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
56 call assert_equal(100, line('.'))
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
57
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
58 let a = execute('20z-1000')
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
59 call assert_equal(20, line('.'))
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
60
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
61 let a = execute('20z=1000')
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
62 call assert_match("^\n1\n.*\n-\\+\n20\n-\\\+\n.*\n100$", a)
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
63 call assert_equal(20, line('.'))
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
64
25729
0f93e9423890 patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
65 " Tests with multiple windows.
0f93e9423890 patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
66 5split
0f93e9423890 patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
67 call setline(1, range(1, 100))
0f93e9423890 patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
68 " Without a count, the number line is window height - 3.
0f93e9423890 patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
69 let a = execute('20z')
0f93e9423890 patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
70 call assert_equal("\n20\n21", a)
0f93e9423890 patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
71 call assert_equal(21, line('.'))
0f93e9423890 patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
72 " If window height - 3 is less than 1, it should be clamped to 1.
0f93e9423890 patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
73 resize 2
0f93e9423890 patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
74 let a = execute('20z')
0f93e9423890 patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
75 call assert_equal("\n20", a)
0f93e9423890 patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
76 call assert_equal(20, line('.'))
0f93e9423890 patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
77
11303
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
78 call assert_fails('20z=a', 'E144:')
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
79
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
80 set window& scroll&
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
81 bw!
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
82 endfunc
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
83
25729
0f93e9423890 patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
84 " :z! is the same as :z but count uses the Vim window height when not specified.
0f93e9423890 patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
85 func Test_z_bang()
0f93e9423890 patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
86 4split
0f93e9423890 patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
87 call setline(1, range(1, 20))
0f93e9423890 patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
88
0f93e9423890 patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
89 let a = execute('10z!')
0f93e9423890 patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
90 call assert_equal("\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20", a)
0f93e9423890 patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
91
0f93e9423890 patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
92 let a = execute('10z!#')
0f93e9423890 patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
93 call assert_equal("\n 10 10\n 11 11\n 12 12\n 13 13\n 14 14\n 15 15\n 16 16\n 17 17\n 18 18\n 19 19\n 20 20", a)
0f93e9423890 patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
94
0f93e9423890 patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
95 let a = execute('10z!3')
0f93e9423890 patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
96 call assert_equal("\n10\n11\n12", a)
0f93e9423890 patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
97
0f93e9423890 patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
98 %bwipe!
0f93e9423890 patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
99 endfunc
0f93e9423890 patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
100
11372
1074f58e1673 patch 8.0.0571: negative line number when using :z^ in an empty buffer
Christian Brabandt <cb@256bit.org>
parents: 11303
diff changeset
101 func Test_z_overflow()
11303
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
102 " This used to access invalid memory as a result of an integer overflow
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
103 " and freeze vim.
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
104 normal ox
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
105 normal Heat
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
106 z777777776666666
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
107 ')
ef32a5c74515 patch 8.0.0537: illegal memory access with :z and large count
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
108 endfunc
11372
1074f58e1673 patch 8.0.0571: negative line number when using :z^ in an empty buffer
Christian Brabandt <cb@256bit.org>
parents: 11303
diff changeset
109
1074f58e1673 patch 8.0.0571: negative line number when using :z^ in an empty buffer
Christian Brabandt <cb@256bit.org>
parents: 11303
diff changeset
110 func Test_z_negative_lnum()
1074f58e1673 patch 8.0.0571: negative line number when using :z^ in an empty buffer
Christian Brabandt <cb@256bit.org>
parents: 11303
diff changeset
111 new
1074f58e1673 patch 8.0.0571: negative line number when using :z^ in an empty buffer
Christian Brabandt <cb@256bit.org>
parents: 11303
diff changeset
112 z^
1074f58e1673 patch 8.0.0571: negative line number when using :z^ in an empty buffer
Christian Brabandt <cb@256bit.org>
parents: 11303
diff changeset
113 call assert_equal(1, line('.'))
1074f58e1673 patch 8.0.0571: negative line number when using :z^ in an empty buffer
Christian Brabandt <cb@256bit.org>
parents: 11303
diff changeset
114 bwipe!
1074f58e1673 patch 8.0.0571: negative line number when using :z^ in an empty buffer
Christian Brabandt <cb@256bit.org>
parents: 11303
diff changeset
115 endfunc
21765
08940efa6b4e patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents: 11372
diff changeset
116
08940efa6b4e patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents: 11372
diff changeset
117 " vim: shiftwidth=2 sts=2 expandtab