annotate src/testdir/test_options.vim @ 12847:14f287552218 v8.0.1300

patch 8.0.1300: file permissions may end up wrong when writing commit https://github.com/vim/vim/commit/cd142e3369db8888163a511dbe9907bcd138829c Author: Bram Moolenaar <Bram@vim.org> Date: Thu Nov 16 17:03:45 2017 +0100 patch 8.0.1300: file permissions may end up wrong when writing Problem: File permissions may end up wrong when writing. Solution: Use fchmod() instead of chmod() when possible. Don't truncate until we know we can change the file.
author Christian Brabandt <cb@256bit.org>
date Thu, 16 Nov 2017 17:15:06 +0100
parents 2334a8ae9ff6
children f64c5e636c9f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9798
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1 " Test for options
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
2
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
3 function! Test_whichwrap()
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
4 set whichwrap=b,s
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
5 call assert_equal('b,s', &whichwrap)
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
6
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
7 set whichwrap+=h,l
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
8 call assert_equal('b,s,h,l', &whichwrap)
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
9
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
10 set whichwrap+=h,l
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
11 call assert_equal('b,s,h,l', &whichwrap)
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
12
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
13 set whichwrap+=h,l
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
14 call assert_equal('b,s,h,l', &whichwrap)
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
15
10831
e926c5a7f9bf patch 8.0.0305: invalid memory access when option has duplicate flag
Christian Brabandt <cb@256bit.org>
parents: 10823
diff changeset
16 set whichwrap=h,h
e926c5a7f9bf patch 8.0.0305: invalid memory access when option has duplicate flag
Christian Brabandt <cb@256bit.org>
parents: 10823
diff changeset
17 call assert_equal('h', &whichwrap)
e926c5a7f9bf patch 8.0.0305: invalid memory access when option has duplicate flag
Christian Brabandt <cb@256bit.org>
parents: 10823
diff changeset
18
e926c5a7f9bf patch 8.0.0305: invalid memory access when option has duplicate flag
Christian Brabandt <cb@256bit.org>
parents: 10823
diff changeset
19 set whichwrap=h,h,h
e926c5a7f9bf patch 8.0.0305: invalid memory access when option has duplicate flag
Christian Brabandt <cb@256bit.org>
parents: 10823
diff changeset
20 call assert_equal('h', &whichwrap)
e926c5a7f9bf patch 8.0.0305: invalid memory access when option has duplicate flag
Christian Brabandt <cb@256bit.org>
parents: 10823
diff changeset
21
9798
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
22 set whichwrap&
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
23 endfunction
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
24
10932
141fe140976c patch 8.0.0355: using uninitialized memory when 'isfname' is empty
Christian Brabandt <cb@256bit.org>
parents: 10906
diff changeset
25 function! Test_isfname()
141fe140976c patch 8.0.0355: using uninitialized memory when 'isfname' is empty
Christian Brabandt <cb@256bit.org>
parents: 10906
diff changeset
26 " This used to cause Vim to access uninitialized memory.
141fe140976c patch 8.0.0355: using uninitialized memory when 'isfname' is empty
Christian Brabandt <cb@256bit.org>
parents: 10906
diff changeset
27 set isfname=
141fe140976c patch 8.0.0355: using uninitialized memory when 'isfname' is empty
Christian Brabandt <cb@256bit.org>
parents: 10906
diff changeset
28 call assert_equal("~X", expand("~X"))
141fe140976c patch 8.0.0355: using uninitialized memory when 'isfname' is empty
Christian Brabandt <cb@256bit.org>
parents: 10906
diff changeset
29 set isfname&
141fe140976c patch 8.0.0355: using uninitialized memory when 'isfname' is empty
Christian Brabandt <cb@256bit.org>
parents: 10906
diff changeset
30 endfunction
141fe140976c patch 8.0.0355: using uninitialized memory when 'isfname' is empty
Christian Brabandt <cb@256bit.org>
parents: 10906
diff changeset
31
10962
6da4287fd735 patch 8.0.0370: invalid memory access when setting wildchar empty
Christian Brabandt <cb@256bit.org>
parents: 10958
diff changeset
32 function Test_wildchar()
6da4287fd735 patch 8.0.0370: invalid memory access when setting wildchar empty
Christian Brabandt <cb@256bit.org>
parents: 10958
diff changeset
33 " Empty 'wildchar' used to access invalid memory.
6da4287fd735 patch 8.0.0370: invalid memory access when setting wildchar empty
Christian Brabandt <cb@256bit.org>
parents: 10958
diff changeset
34 call assert_fails('set wildchar=', 'E521:')
6da4287fd735 patch 8.0.0370: invalid memory access when setting wildchar empty
Christian Brabandt <cb@256bit.org>
parents: 10958
diff changeset
35 call assert_fails('set wildchar=abc', 'E521:')
6da4287fd735 patch 8.0.0370: invalid memory access when setting wildchar empty
Christian Brabandt <cb@256bit.org>
parents: 10958
diff changeset
36 set wildchar=<Esc>
6da4287fd735 patch 8.0.0370: invalid memory access when setting wildchar empty
Christian Brabandt <cb@256bit.org>
parents: 10958
diff changeset
37 let a=execute('set wildchar?')
6da4287fd735 patch 8.0.0370: invalid memory access when setting wildchar empty
Christian Brabandt <cb@256bit.org>
parents: 10958
diff changeset
38 call assert_equal("\n wildchar=<Esc>", a)
6da4287fd735 patch 8.0.0370: invalid memory access when setting wildchar empty
Christian Brabandt <cb@256bit.org>
parents: 10958
diff changeset
39 set wildchar=27
6da4287fd735 patch 8.0.0370: invalid memory access when setting wildchar empty
Christian Brabandt <cb@256bit.org>
parents: 10958
diff changeset
40 let a=execute('set wildchar?')
6da4287fd735 patch 8.0.0370: invalid memory access when setting wildchar empty
Christian Brabandt <cb@256bit.org>
parents: 10958
diff changeset
41 call assert_equal("\n wildchar=<Esc>", a)
6da4287fd735 patch 8.0.0370: invalid memory access when setting wildchar empty
Christian Brabandt <cb@256bit.org>
parents: 10958
diff changeset
42 set wildchar&
6da4287fd735 patch 8.0.0370: invalid memory access when setting wildchar empty
Christian Brabandt <cb@256bit.org>
parents: 10958
diff changeset
43 endfunction
6da4287fd735 patch 8.0.0370: invalid memory access when setting wildchar empty
Christian Brabandt <cb@256bit.org>
parents: 10958
diff changeset
44
9852
4eea48b76d03 commit https://github.com/vim/vim/commit/95ec9d6a6ab3117d60ff638670a803d43974ba51
Christian Brabandt <cb@256bit.org>
parents: 9798
diff changeset
45 function Test_options()
9798
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
46 let caught = 'ok'
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
47 try
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
48 options
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
49 catch
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
50 let caught = v:throwpoint . "\n" . v:exception
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
51 endtry
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
52 call assert_equal('ok', caught)
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
53
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
54 " close option-window
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
55 close
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
56 endfunction
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
57
9852
4eea48b76d03 commit https://github.com/vim/vim/commit/95ec9d6a6ab3117d60ff638670a803d43974ba51
Christian Brabandt <cb@256bit.org>
parents: 9798
diff changeset
58 function Test_path_keep_commas()
9798
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
59 " Test that changing 'path' keeps two commas.
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
60 set path=foo,,bar
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
61 set path-=bar
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
62 set path+=bar
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
63 call assert_equal('foo,,bar', &path)
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
64
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
65 set path&
e34e4547f3d1 commit https://github.com/vim/vim/commit/c8ce615299b4d8c1b2e6cf83496f48cd497d8a37
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
66 endfunction
9852
4eea48b76d03 commit https://github.com/vim/vim/commit/95ec9d6a6ab3117d60ff638670a803d43974ba51
Christian Brabandt <cb@256bit.org>
parents: 9798
diff changeset
67
4eea48b76d03 commit https://github.com/vim/vim/commit/95ec9d6a6ab3117d60ff638670a803d43974ba51
Christian Brabandt <cb@256bit.org>
parents: 9798
diff changeset
68 func Test_signcolumn()
9856
12c5c2614432 commit https://github.com/vim/vim/commit/ebcccad573a7722e16cf2dd435cc62b61f61d9cc
Christian Brabandt <cb@256bit.org>
parents: 9852
diff changeset
69 if has('signs')
12c5c2614432 commit https://github.com/vim/vim/commit/ebcccad573a7722e16cf2dd435cc62b61f61d9cc
Christian Brabandt <cb@256bit.org>
parents: 9852
diff changeset
70 call assert_equal("auto", &signcolumn)
12c5c2614432 commit https://github.com/vim/vim/commit/ebcccad573a7722e16cf2dd435cc62b61f61d9cc
Christian Brabandt <cb@256bit.org>
parents: 9852
diff changeset
71 set signcolumn=yes
12c5c2614432 commit https://github.com/vim/vim/commit/ebcccad573a7722e16cf2dd435cc62b61f61d9cc
Christian Brabandt <cb@256bit.org>
parents: 9852
diff changeset
72 set signcolumn=no
12c5c2614432 commit https://github.com/vim/vim/commit/ebcccad573a7722e16cf2dd435cc62b61f61d9cc
Christian Brabandt <cb@256bit.org>
parents: 9852
diff changeset
73 call assert_fails('set signcolumn=nope')
12c5c2614432 commit https://github.com/vim/vim/commit/ebcccad573a7722e16cf2dd435cc62b61f61d9cc
Christian Brabandt <cb@256bit.org>
parents: 9852
diff changeset
74 endif
9852
4eea48b76d03 commit https://github.com/vim/vim/commit/95ec9d6a6ab3117d60ff638670a803d43974ba51
Christian Brabandt <cb@256bit.org>
parents: 9798
diff changeset
75 endfunc
4eea48b76d03 commit https://github.com/vim/vim/commit/95ec9d6a6ab3117d60ff638670a803d43974ba51
Christian Brabandt <cb@256bit.org>
parents: 9798
diff changeset
76
10322
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
77 func Test_filetype_valid()
10324
ecbd3412f214 commit https://github.com/vim/vim/commit/9376f5f482a4d579436bf364778c2d8ab8e2f22d
Christian Brabandt <cb@256bit.org>
parents: 10322
diff changeset
78 if !has('autocmd')
ecbd3412f214 commit https://github.com/vim/vim/commit/9376f5f482a4d579436bf364778c2d8ab8e2f22d
Christian Brabandt <cb@256bit.org>
parents: 10322
diff changeset
79 return
ecbd3412f214 commit https://github.com/vim/vim/commit/9376f5f482a4d579436bf364778c2d8ab8e2f22d
Christian Brabandt <cb@256bit.org>
parents: 10322
diff changeset
80 endif
10322
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
81 set ft=valid_name
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
82 call assert_equal("valid_name", &filetype)
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
83 set ft=valid-name
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
84 call assert_equal("valid-name", &filetype)
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
85
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
86 call assert_fails(":set ft=wrong;name", "E474:")
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
87 call assert_fails(":set ft=wrong\\\\name", "E474:")
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
88 call assert_fails(":set ft=wrong\\|name", "E474:")
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
89 call assert_fails(":set ft=wrong/name", "E474:")
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
90 call assert_fails(":set ft=wrong\\\nname", "E474:")
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
91 call assert_equal("valid-name", &filetype)
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
92
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
93 exe "set ft=trunc\x00name"
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
94 call assert_equal("trunc", &filetype)
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
95 endfunc
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
96
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
97 func Test_syntax_valid()
10324
ecbd3412f214 commit https://github.com/vim/vim/commit/9376f5f482a4d579436bf364778c2d8ab8e2f22d
Christian Brabandt <cb@256bit.org>
parents: 10322
diff changeset
98 if !has('syntax')
ecbd3412f214 commit https://github.com/vim/vim/commit/9376f5f482a4d579436bf364778c2d8ab8e2f22d
Christian Brabandt <cb@256bit.org>
parents: 10322
diff changeset
99 return
ecbd3412f214 commit https://github.com/vim/vim/commit/9376f5f482a4d579436bf364778c2d8ab8e2f22d
Christian Brabandt <cb@256bit.org>
parents: 10322
diff changeset
100 endif
10322
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
101 set syn=valid_name
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
102 call assert_equal("valid_name", &syntax)
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
103 set syn=valid-name
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
104 call assert_equal("valid-name", &syntax)
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
105
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
106 call assert_fails(":set syn=wrong;name", "E474:")
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
107 call assert_fails(":set syn=wrong\\\\name", "E474:")
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
108 call assert_fails(":set syn=wrong\\|name", "E474:")
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
109 call assert_fails(":set syn=wrong/name", "E474:")
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
110 call assert_fails(":set syn=wrong\\\nname", "E474:")
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
111 call assert_equal("valid-name", &syntax)
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
112
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
113 exe "set syn=trunc\x00name"
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
114 call assert_equal("trunc", &syntax)
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
115 endfunc
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
116
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
117 func Test_keymap_valid()
10324
ecbd3412f214 commit https://github.com/vim/vim/commit/9376f5f482a4d579436bf364778c2d8ab8e2f22d
Christian Brabandt <cb@256bit.org>
parents: 10322
diff changeset
118 if !has('keymap')
ecbd3412f214 commit https://github.com/vim/vim/commit/9376f5f482a4d579436bf364778c2d8ab8e2f22d
Christian Brabandt <cb@256bit.org>
parents: 10322
diff changeset
119 return
ecbd3412f214 commit https://github.com/vim/vim/commit/9376f5f482a4d579436bf364778c2d8ab8e2f22d
Christian Brabandt <cb@256bit.org>
parents: 10322
diff changeset
120 endif
10322
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
121 call assert_fails(":set kmp=valid_name", "E544:")
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
122 call assert_fails(":set kmp=valid_name", "valid_name")
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
123 call assert_fails(":set kmp=valid-name", "E544:")
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
124 call assert_fails(":set kmp=valid-name", "valid-name")
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
125
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
126 call assert_fails(":set kmp=wrong;name", "E474:")
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
127 call assert_fails(":set kmp=wrong\\\\name", "E474:")
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
128 call assert_fails(":set kmp=wrong\\|name", "E474:")
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
129 call assert_fails(":set kmp=wrong/name", "E474:")
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
130 call assert_fails(":set kmp=wrong\\\nname", "E474:")
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
131
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
132 call assert_fails(":set kmp=trunc\x00name", "E544:")
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
133 call assert_fails(":set kmp=trunc\x00name", "trunc")
5adc318767be commit https://github.com/vim/vim/commit/d0b5138ba4bccff8a744c99836041ef6322ed39a
Christian Brabandt <cb@256bit.org>
parents: 9856
diff changeset
134 endfunc
10416
ef5474130b0e commit https://github.com/vim/vim/commit/7554da4033498c4da0af3cde542c3e87e9097b73
Christian Brabandt <cb@256bit.org>
parents: 10324
diff changeset
135
10420
7a631c6b0a20 commit https://github.com/vim/vim/commit/f422bcc7f9615fe91fa69b059cfe4785093d3d4a
Christian Brabandt <cb@256bit.org>
parents: 10416
diff changeset
136 func Check_dir_option(name)
10416
ef5474130b0e commit https://github.com/vim/vim/commit/7554da4033498c4da0af3cde542c3e87e9097b73
Christian Brabandt <cb@256bit.org>
parents: 10324
diff changeset
137 " Check that it's possible to set the option.
10420
7a631c6b0a20 commit https://github.com/vim/vim/commit/f422bcc7f9615fe91fa69b059cfe4785093d3d4a
Christian Brabandt <cb@256bit.org>
parents: 10416
diff changeset
138 exe 'set ' . a:name . '=/usr/share/dict/words'
7a631c6b0a20 commit https://github.com/vim/vim/commit/f422bcc7f9615fe91fa69b059cfe4785093d3d4a
Christian Brabandt <cb@256bit.org>
parents: 10416
diff changeset
139 call assert_equal('/usr/share/dict/words', eval('&' . a:name))
7a631c6b0a20 commit https://github.com/vim/vim/commit/f422bcc7f9615fe91fa69b059cfe4785093d3d4a
Christian Brabandt <cb@256bit.org>
parents: 10416
diff changeset
140 exe 'set ' . a:name . '=/usr/share/dict/words,/and/there'
7a631c6b0a20 commit https://github.com/vim/vim/commit/f422bcc7f9615fe91fa69b059cfe4785093d3d4a
Christian Brabandt <cb@256bit.org>
parents: 10416
diff changeset
141 call assert_equal('/usr/share/dict/words,/and/there', eval('&' . a:name))
7a631c6b0a20 commit https://github.com/vim/vim/commit/f422bcc7f9615fe91fa69b059cfe4785093d3d4a
Christian Brabandt <cb@256bit.org>
parents: 10416
diff changeset
142 exe 'set ' . a:name . '=/usr/share/dict\ words'
7a631c6b0a20 commit https://github.com/vim/vim/commit/f422bcc7f9615fe91fa69b059cfe4785093d3d4a
Christian Brabandt <cb@256bit.org>
parents: 10416
diff changeset
143 call assert_equal('/usr/share/dict words', eval('&' . a:name))
10416
ef5474130b0e commit https://github.com/vim/vim/commit/7554da4033498c4da0af3cde542c3e87e9097b73
Christian Brabandt <cb@256bit.org>
parents: 10324
diff changeset
144
ef5474130b0e commit https://github.com/vim/vim/commit/7554da4033498c4da0af3cde542c3e87e9097b73
Christian Brabandt <cb@256bit.org>
parents: 10324
diff changeset
145 " Check rejecting weird characters.
10420
7a631c6b0a20 commit https://github.com/vim/vim/commit/f422bcc7f9615fe91fa69b059cfe4785093d3d4a
Christian Brabandt <cb@256bit.org>
parents: 10416
diff changeset
146 call assert_fails("set " . a:name . "=/not&there", "E474:")
7a631c6b0a20 commit https://github.com/vim/vim/commit/f422bcc7f9615fe91fa69b059cfe4785093d3d4a
Christian Brabandt <cb@256bit.org>
parents: 10416
diff changeset
147 call assert_fails("set " . a:name . "=/not>there", "E474:")
7a631c6b0a20 commit https://github.com/vim/vim/commit/f422bcc7f9615fe91fa69b059cfe4785093d3d4a
Christian Brabandt <cb@256bit.org>
parents: 10416
diff changeset
148 call assert_fails("set " . a:name . "=/not.*there", "E474:")
10416
ef5474130b0e commit https://github.com/vim/vim/commit/7554da4033498c4da0af3cde542c3e87e9097b73
Christian Brabandt <cb@256bit.org>
parents: 10324
diff changeset
149 endfunc
10420
7a631c6b0a20 commit https://github.com/vim/vim/commit/f422bcc7f9615fe91fa69b059cfe4785093d3d4a
Christian Brabandt <cb@256bit.org>
parents: 10416
diff changeset
150
10938
3b82ab325d59 patch 8.0.0358: invalid memory access in C-indent code
Christian Brabandt <cb@256bit.org>
parents: 10936
diff changeset
151 func Test_cinkeys()
3b82ab325d59 patch 8.0.0358: invalid memory access in C-indent code
Christian Brabandt <cb@256bit.org>
parents: 10936
diff changeset
152 " This used to cause invalid memory access
3b82ab325d59 patch 8.0.0358: invalid memory access in C-indent code
Christian Brabandt <cb@256bit.org>
parents: 10936
diff changeset
153 set cindent cinkeys=0
3b82ab325d59 patch 8.0.0358: invalid memory access in C-indent code
Christian Brabandt <cb@256bit.org>
parents: 10936
diff changeset
154 norm a
3b82ab325d59 patch 8.0.0358: invalid memory access in C-indent code
Christian Brabandt <cb@256bit.org>
parents: 10936
diff changeset
155 set cindent& cinkeys&
3b82ab325d59 patch 8.0.0358: invalid memory access in C-indent code
Christian Brabandt <cb@256bit.org>
parents: 10936
diff changeset
156 endfunc
3b82ab325d59 patch 8.0.0358: invalid memory access in C-indent code
Christian Brabandt <cb@256bit.org>
parents: 10936
diff changeset
157
10420
7a631c6b0a20 commit https://github.com/vim/vim/commit/f422bcc7f9615fe91fa69b059cfe4785093d3d4a
Christian Brabandt <cb@256bit.org>
parents: 10416
diff changeset
158 func Test_dictionary()
7a631c6b0a20 commit https://github.com/vim/vim/commit/f422bcc7f9615fe91fa69b059cfe4785093d3d4a
Christian Brabandt <cb@256bit.org>
parents: 10416
diff changeset
159 call Check_dir_option('dictionary')
7a631c6b0a20 commit https://github.com/vim/vim/commit/f422bcc7f9615fe91fa69b059cfe4785093d3d4a
Christian Brabandt <cb@256bit.org>
parents: 10416
diff changeset
160 endfunc
7a631c6b0a20 commit https://github.com/vim/vim/commit/f422bcc7f9615fe91fa69b059cfe4785093d3d4a
Christian Brabandt <cb@256bit.org>
parents: 10416
diff changeset
161
7a631c6b0a20 commit https://github.com/vim/vim/commit/f422bcc7f9615fe91fa69b059cfe4785093d3d4a
Christian Brabandt <cb@256bit.org>
parents: 10416
diff changeset
162 func Test_thesaurus()
7a631c6b0a20 commit https://github.com/vim/vim/commit/f422bcc7f9615fe91fa69b059cfe4785093d3d4a
Christian Brabandt <cb@256bit.org>
parents: 10416
diff changeset
163 call Check_dir_option('thesaurus')
10823
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
164 endfun
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
165
10887
40939b171432 patch 8.0.0333: illegal memory access when 'complete' ends in a backslash
Christian Brabandt <cb@256bit.org>
parents: 10831
diff changeset
166 func Test_complete()
40939b171432 patch 8.0.0333: illegal memory access when 'complete' ends in a backslash
Christian Brabandt <cb@256bit.org>
parents: 10831
diff changeset
167 " Trailing single backslash used to cause invalid memory access.
40939b171432 patch 8.0.0333: illegal memory access when 'complete' ends in a backslash
Christian Brabandt <cb@256bit.org>
parents: 10831
diff changeset
168 set complete=s\
40939b171432 patch 8.0.0333: illegal memory access when 'complete' ends in a backslash
Christian Brabandt <cb@256bit.org>
parents: 10831
diff changeset
169 new
40939b171432 patch 8.0.0333: illegal memory access when 'complete' ends in a backslash
Christian Brabandt <cb@256bit.org>
parents: 10831
diff changeset
170 call feedkeys("i\<C-N>\<Esc>", 'xt')
40939b171432 patch 8.0.0333: illegal memory access when 'complete' ends in a backslash
Christian Brabandt <cb@256bit.org>
parents: 10831
diff changeset
171 bwipe!
40939b171432 patch 8.0.0333: illegal memory access when 'complete' ends in a backslash
Christian Brabandt <cb@256bit.org>
parents: 10831
diff changeset
172 set complete&
40939b171432 patch 8.0.0333: illegal memory access when 'complete' ends in a backslash
Christian Brabandt <cb@256bit.org>
parents: 10831
diff changeset
173 endfun
40939b171432 patch 8.0.0333: illegal memory access when 'complete' ends in a backslash
Christian Brabandt <cb@256bit.org>
parents: 10831
diff changeset
174
10823
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
175 func Test_set_completion()
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
176 call feedkeys(":set di\<C-A>\<C-B>\"\<CR>", 'tx')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
177 call assert_equal('"set dictionary diff diffexpr diffopt digraph directory display', @:)
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
178
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
179 " Expand boolan options. When doing :set no<Tab>
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
180 " vim displays the options names without "no" but completion uses "no...".
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
181 call feedkeys(":set nodi\<C-A>\<C-B>\"\<CR>", 'tx')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
182 call assert_equal('"set nodiff digraph', @:)
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
183
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
184 call feedkeys(":set invdi\<C-A>\<C-B>\"\<CR>", 'tx')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
185 call assert_equal('"set invdiff digraph', @:)
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
186
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
187 " Expand abbreviation of options.
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
188 call feedkeys(":set ts\<C-A>\<C-B>\"\<CR>", 'tx')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
189 call assert_equal('"set tabstop thesaurus ttyscroll', @:)
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
190
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
191 " Expand current value
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
192 call feedkeys(":set fileencodings=\<C-A>\<C-B>\"\<CR>", 'tx')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
193 call assert_equal('"set fileencodings=ucs-bom,utf-8,default,latin1', @:)
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
194
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
195 call feedkeys(":set fileencodings:\<C-A>\<C-B>\"\<CR>", 'tx')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
196 call assert_equal('"set fileencodings:ucs-bom,utf-8,default,latin1', @:)
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
197
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
198 " Expand key codes.
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
199 call feedkeys(":set <H\<C-A>\<C-B>\"\<CR>", 'tx')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
200 call assert_equal('"set <Help> <Home>', @:)
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
201
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
202 " Expand terminal options.
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
203 call feedkeys(":set t_A\<C-A>\<C-B>\"\<CR>", 'tx')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
204 call assert_equal('"set t_AB t_AF t_AL', @:)
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
205
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
206 " Expand directories.
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
207 call feedkeys(":set cdpath=./\<C-A>\<C-B>\"\<CR>", 'tx')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
208 call assert_match(' ./samples/ ', @:)
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
209 call assert_notmatch(' ./small.vim ', @:)
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
210
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
211 " Expand files and directories.
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
212 call feedkeys(":set tags=./\<C-A>\<C-B>\"\<CR>", 'tx')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
213 call assert_match(' ./samples/.* ./small.vim', @:)
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
214
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
215 call feedkeys(":set tags=./\\\\ dif\<C-A>\<C-B>\"\<CR>", 'tx')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
216 call assert_equal('"set tags=./\\ diff diffexpr diffopt', @:)
10420
7a631c6b0a20 commit https://github.com/vim/vim/commit/f422bcc7f9615fe91fa69b059cfe4785093d3d4a
Christian Brabandt <cb@256bit.org>
parents: 10416
diff changeset
217 endfunc
10823
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
218
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
219 func Test_set_errors()
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
220 call assert_fails('set scroll=-1', 'E49:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
221 call assert_fails('set backupcopy=', 'E474:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
222 call assert_fails('set regexpengine=3', 'E474:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
223 call assert_fails('set history=10001', 'E474:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
224 call assert_fails('set numberwidth=11', 'E474:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
225 call assert_fails('set colorcolumn=-a')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
226 call assert_fails('set colorcolumn=a')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
227 call assert_fails('set colorcolumn=1,')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
228 call assert_fails('set cmdheight=-1', 'E487:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
229 call assert_fails('set cmdwinheight=-1', 'E487:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
230 if has('conceal')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
231 call assert_fails('set conceallevel=-1', 'E487:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
232 call assert_fails('set conceallevel=4', 'E474:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
233 endif
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
234 call assert_fails('set helpheight=-1', 'E487:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
235 call assert_fails('set history=-1', 'E487:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
236 call assert_fails('set report=-1', 'E487:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
237 call assert_fails('set shiftwidth=-1', 'E487:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
238 call assert_fails('set sidescroll=-1', 'E487:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
239 call assert_fails('set tabstop=-1', 'E487:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
240 call assert_fails('set textwidth=-1', 'E487:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
241 call assert_fails('set timeoutlen=-1', 'E487:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
242 call assert_fails('set updatecount=-1', 'E487:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
243 call assert_fails('set updatetime=-1', 'E487:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
244 call assert_fails('set winheight=-1', 'E487:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
245 call assert_fails('set tabstop!', 'E488:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
246 call assert_fails('set xxx', 'E518:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
247 call assert_fails('set beautify?', 'E519:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
248 call assert_fails('set undolevels=x', 'E521:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
249 call assert_fails('set tabstop=', 'E521:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
250 call assert_fails('set comments=-', 'E524:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
251 call assert_fails('set comments=a', 'E525:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
252 call assert_fails('set foldmarker=x', 'E536:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
253 call assert_fails('set commentstring=x', 'E537:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
254 call assert_fails('set complete=x', 'E539:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
255 call assert_fails('set statusline=%{', 'E540:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
256 call assert_fails('set statusline=' . repeat("%p", 81), 'E541:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
257 call assert_fails('set statusline=%(', 'E542:')
10936
a516b6c279d9 patch 8.0.0357: crash when setting 'guicursor' to weird value
Christian Brabandt <cb@256bit.org>
parents: 10932
diff changeset
258 if has('cursorshape')
a516b6c279d9 patch 8.0.0357: crash when setting 'guicursor' to weird value
Christian Brabandt <cb@256bit.org>
parents: 10932
diff changeset
259 " This invalid value for 'guicursor' used to cause Vim to crash.
a516b6c279d9 patch 8.0.0357: crash when setting 'guicursor' to weird value
Christian Brabandt <cb@256bit.org>
parents: 10932
diff changeset
260 call assert_fails('set guicursor=i-ci,r-cr:h', 'E545:')
a516b6c279d9 patch 8.0.0357: crash when setting 'guicursor' to weird value
Christian Brabandt <cb@256bit.org>
parents: 10932
diff changeset
261 call assert_fails('set guicursor=i-ci', 'E545:')
a516b6c279d9 patch 8.0.0357: crash when setting 'guicursor' to weird value
Christian Brabandt <cb@256bit.org>
parents: 10932
diff changeset
262 call assert_fails('set guicursor=x', 'E545:')
a516b6c279d9 patch 8.0.0357: crash when setting 'guicursor' to weird value
Christian Brabandt <cb@256bit.org>
parents: 10932
diff changeset
263 call assert_fails('set guicursor=r-cr:horx', 'E548:')
a516b6c279d9 patch 8.0.0357: crash when setting 'guicursor' to weird value
Christian Brabandt <cb@256bit.org>
parents: 10932
diff changeset
264 call assert_fails('set guicursor=r-cr:hor0', 'E549:')
a516b6c279d9 patch 8.0.0357: crash when setting 'guicursor' to weird value
Christian Brabandt <cb@256bit.org>
parents: 10932
diff changeset
265 endif
10823
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
266 call assert_fails('set backupext=~ patchmode=~', 'E589:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
267 call assert_fails('set winminheight=10 winheight=9', 'E591:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
268 call assert_fails('set winminwidth=10 winwidth=9', 'E592:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
269 call assert_fails("set showbreak=\x01", 'E595:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
270 call assert_fails('set t_foo=', 'E846:')
a7da553980ee patch 8.0.0301: not enough testing for setting options
Christian Brabandt <cb@256bit.org>
parents: 10420
diff changeset
271 endfunc
10906
7fc1df5536c9 patch 8.0.0342: double free with EXITFREE and setting 'ttytype'
Christian Brabandt <cb@256bit.org>
parents: 10887
diff changeset
272
7fc1df5536c9 patch 8.0.0342: double free with EXITFREE and setting 'ttytype'
Christian Brabandt <cb@256bit.org>
parents: 10887
diff changeset
273 func Test_set_ttytype()
7fc1df5536c9 patch 8.0.0342: double free with EXITFREE and setting 'ttytype'
Christian Brabandt <cb@256bit.org>
parents: 10887
diff changeset
274 if !has('gui_running') && has('unix')
7fc1df5536c9 patch 8.0.0342: double free with EXITFREE and setting 'ttytype'
Christian Brabandt <cb@256bit.org>
parents: 10887
diff changeset
275 " Setting 'ttytype' used to cause a double-free when exiting vim and
7fc1df5536c9 patch 8.0.0342: double free with EXITFREE and setting 'ttytype'
Christian Brabandt <cb@256bit.org>
parents: 10887
diff changeset
276 " when vim is compiled with -DEXITFREE.
7fc1df5536c9 patch 8.0.0342: double free with EXITFREE and setting 'ttytype'
Christian Brabandt <cb@256bit.org>
parents: 10887
diff changeset
277 set ttytype=ansi
7fc1df5536c9 patch 8.0.0342: double free with EXITFREE and setting 'ttytype'
Christian Brabandt <cb@256bit.org>
parents: 10887
diff changeset
278 call assert_equal('ansi', &ttytype)
7fc1df5536c9 patch 8.0.0342: double free with EXITFREE and setting 'ttytype'
Christian Brabandt <cb@256bit.org>
parents: 10887
diff changeset
279 call assert_equal(&ttytype, &term)
7fc1df5536c9 patch 8.0.0342: double free with EXITFREE and setting 'ttytype'
Christian Brabandt <cb@256bit.org>
parents: 10887
diff changeset
280 set ttytype=xterm
7fc1df5536c9 patch 8.0.0342: double free with EXITFREE and setting 'ttytype'
Christian Brabandt <cb@256bit.org>
parents: 10887
diff changeset
281 call assert_equal('xterm', &ttytype)
7fc1df5536c9 patch 8.0.0342: double free with EXITFREE and setting 'ttytype'
Christian Brabandt <cb@256bit.org>
parents: 10887
diff changeset
282 call assert_equal(&ttytype, &term)
11348
4e5191165707 patch 8.0.0559: setting ttytype to xxx does not always fail
Christian Brabandt <cb@256bit.org>
parents: 11081
diff changeset
283 " "set ttytype=" gives E522 instead of E529
4e5191165707 patch 8.0.0559: setting ttytype to xxx does not always fail
Christian Brabandt <cb@256bit.org>
parents: 11081
diff changeset
284 " in travis on some builds. Why? Catch both for now
4e5191165707 patch 8.0.0559: setting ttytype to xxx does not always fail
Christian Brabandt <cb@256bit.org>
parents: 11081
diff changeset
285 try
4e5191165707 patch 8.0.0559: setting ttytype to xxx does not always fail
Christian Brabandt <cb@256bit.org>
parents: 11081
diff changeset
286 set ttytype=
4e5191165707 patch 8.0.0559: setting ttytype to xxx does not always fail
Christian Brabandt <cb@256bit.org>
parents: 11081
diff changeset
287 call assert_report('set ttype= did not fail')
4e5191165707 patch 8.0.0559: setting ttytype to xxx does not always fail
Christian Brabandt <cb@256bit.org>
parents: 11081
diff changeset
288 catch /E529\|E522/
4e5191165707 patch 8.0.0559: setting ttytype to xxx does not always fail
Christian Brabandt <cb@256bit.org>
parents: 11081
diff changeset
289 endtry
4e5191165707 patch 8.0.0559: setting ttytype to xxx does not always fail
Christian Brabandt <cb@256bit.org>
parents: 11081
diff changeset
290
4e5191165707 patch 8.0.0559: setting ttytype to xxx does not always fail
Christian Brabandt <cb@256bit.org>
parents: 11081
diff changeset
291 " Some systems accept any terminal name and return dumb settings,
4e5191165707 patch 8.0.0559: setting ttytype to xxx does not always fail
Christian Brabandt <cb@256bit.org>
parents: 11081
diff changeset
292 " check for failure of finding the entry and for missing 'cm' entry.
4e5191165707 patch 8.0.0559: setting ttytype to xxx does not always fail
Christian Brabandt <cb@256bit.org>
parents: 11081
diff changeset
293 try
4e5191165707 patch 8.0.0559: setting ttytype to xxx does not always fail
Christian Brabandt <cb@256bit.org>
parents: 11081
diff changeset
294 set ttytype=xxx
4e5191165707 patch 8.0.0559: setting ttytype to xxx does not always fail
Christian Brabandt <cb@256bit.org>
parents: 11081
diff changeset
295 call assert_report('set ttype=xxx did not fail')
4e5191165707 patch 8.0.0559: setting ttytype to xxx does not always fail
Christian Brabandt <cb@256bit.org>
parents: 11081
diff changeset
296 catch /E522\|E437/
4e5191165707 patch 8.0.0559: setting ttytype to xxx does not always fail
Christian Brabandt <cb@256bit.org>
parents: 11081
diff changeset
297 endtry
4e5191165707 patch 8.0.0559: setting ttytype to xxx does not always fail
Christian Brabandt <cb@256bit.org>
parents: 11081
diff changeset
298
10906
7fc1df5536c9 patch 8.0.0342: double free with EXITFREE and setting 'ttytype'
Christian Brabandt <cb@256bit.org>
parents: 10887
diff changeset
299 set ttytype&
7fc1df5536c9 patch 8.0.0342: double free with EXITFREE and setting 'ttytype'
Christian Brabandt <cb@256bit.org>
parents: 10887
diff changeset
300 call assert_equal(&ttytype, &term)
7fc1df5536c9 patch 8.0.0342: double free with EXITFREE and setting 'ttytype'
Christian Brabandt <cb@256bit.org>
parents: 10887
diff changeset
301 endif
7fc1df5536c9 patch 8.0.0342: double free with EXITFREE and setting 'ttytype'
Christian Brabandt <cb@256bit.org>
parents: 10887
diff changeset
302 endfunc
10958
e5896de85dcf patch 8.0.0368: not all options are tested with a range of values
Christian Brabandt <cb@256bit.org>
parents: 10938
diff changeset
303
e5896de85dcf patch 8.0.0368: not all options are tested with a range of values
Christian Brabandt <cb@256bit.org>
parents: 10938
diff changeset
304 func Test_set_all()
e5896de85dcf patch 8.0.0368: not all options are tested with a range of values
Christian Brabandt <cb@256bit.org>
parents: 10938
diff changeset
305 set tw=75
e5896de85dcf patch 8.0.0368: not all options are tested with a range of values
Christian Brabandt <cb@256bit.org>
parents: 10938
diff changeset
306 set iskeyword=a-z,A-Z
e5896de85dcf patch 8.0.0368: not all options are tested with a range of values
Christian Brabandt <cb@256bit.org>
parents: 10938
diff changeset
307 set nosplitbelow
e5896de85dcf patch 8.0.0368: not all options are tested with a range of values
Christian Brabandt <cb@256bit.org>
parents: 10938
diff changeset
308 let out = execute('set all')
e5896de85dcf patch 8.0.0368: not all options are tested with a range of values
Christian Brabandt <cb@256bit.org>
parents: 10938
diff changeset
309 call assert_match('textwidth=75', out)
e5896de85dcf patch 8.0.0368: not all options are tested with a range of values
Christian Brabandt <cb@256bit.org>
parents: 10938
diff changeset
310 call assert_match('iskeyword=a-z,A-Z', out)
e5896de85dcf patch 8.0.0368: not all options are tested with a range of values
Christian Brabandt <cb@256bit.org>
parents: 10938
diff changeset
311 call assert_match('nosplitbelow', out)
e5896de85dcf patch 8.0.0368: not all options are tested with a range of values
Christian Brabandt <cb@256bit.org>
parents: 10938
diff changeset
312 set tw& iskeyword& splitbelow&
e5896de85dcf patch 8.0.0368: not all options are tested with a range of values
Christian Brabandt <cb@256bit.org>
parents: 10938
diff changeset
313 endfunc
e5896de85dcf patch 8.0.0368: not all options are tested with a range of values
Christian Brabandt <cb@256bit.org>
parents: 10938
diff changeset
314
e5896de85dcf patch 8.0.0368: not all options are tested with a range of values
Christian Brabandt <cb@256bit.org>
parents: 10938
diff changeset
315 func Test_set_values()
e5896de85dcf patch 8.0.0368: not all options are tested with a range of values
Christian Brabandt <cb@256bit.org>
parents: 10938
diff changeset
316 if filereadable('opt_test.vim')
e5896de85dcf patch 8.0.0368: not all options are tested with a range of values
Christian Brabandt <cb@256bit.org>
parents: 10938
diff changeset
317 source opt_test.vim
11081
bbdb4f0134cb patch 8.0.0429: options test does not always test everything
Christian Brabandt <cb@256bit.org>
parents: 10962
diff changeset
318 else
bbdb4f0134cb patch 8.0.0429: options test does not always test everything
Christian Brabandt <cb@256bit.org>
parents: 10962
diff changeset
319 throw 'Skipped: opt_test.vim does not exist'
10958
e5896de85dcf patch 8.0.0368: not all options are tested with a range of values
Christian Brabandt <cb@256bit.org>
parents: 10938
diff changeset
320 endif
e5896de85dcf patch 8.0.0368: not all options are tested with a range of values
Christian Brabandt <cb@256bit.org>
parents: 10938
diff changeset
321 endfunc
11380
2334a8ae9ff6 patch 8.0.0575: using freed memory when resetting 'indentexpr'
Christian Brabandt <cb@256bit.org>
parents: 11348
diff changeset
322
2334a8ae9ff6 patch 8.0.0575: using freed memory when resetting 'indentexpr'
Christian Brabandt <cb@256bit.org>
parents: 11348
diff changeset
323 func ResetIndentexpr()
2334a8ae9ff6 patch 8.0.0575: using freed memory when resetting 'indentexpr'
Christian Brabandt <cb@256bit.org>
parents: 11348
diff changeset
324 set indentexpr=
2334a8ae9ff6 patch 8.0.0575: using freed memory when resetting 'indentexpr'
Christian Brabandt <cb@256bit.org>
parents: 11348
diff changeset
325 endfunc
2334a8ae9ff6 patch 8.0.0575: using freed memory when resetting 'indentexpr'
Christian Brabandt <cb@256bit.org>
parents: 11348
diff changeset
326
2334a8ae9ff6 patch 8.0.0575: using freed memory when resetting 'indentexpr'
Christian Brabandt <cb@256bit.org>
parents: 11348
diff changeset
327 func Test_set_indentexpr()
2334a8ae9ff6 patch 8.0.0575: using freed memory when resetting 'indentexpr'
Christian Brabandt <cb@256bit.org>
parents: 11348
diff changeset
328 " this was causing usage of freed memory
2334a8ae9ff6 patch 8.0.0575: using freed memory when resetting 'indentexpr'
Christian Brabandt <cb@256bit.org>
parents: 11348
diff changeset
329 set indentexpr=ResetIndentexpr()
2334a8ae9ff6 patch 8.0.0575: using freed memory when resetting 'indentexpr'
Christian Brabandt <cb@256bit.org>
parents: 11348
diff changeset
330 new
2334a8ae9ff6 patch 8.0.0575: using freed memory when resetting 'indentexpr'
Christian Brabandt <cb@256bit.org>
parents: 11348
diff changeset
331 call feedkeys("i\<c-f>", 'x')
2334a8ae9ff6 patch 8.0.0575: using freed memory when resetting 'indentexpr'
Christian Brabandt <cb@256bit.org>
parents: 11348
diff changeset
332 call assert_equal('', &indentexpr)
2334a8ae9ff6 patch 8.0.0575: using freed memory when resetting 'indentexpr'
Christian Brabandt <cb@256bit.org>
parents: 11348
diff changeset
333 bwipe!
2334a8ae9ff6 patch 8.0.0575: using freed memory when resetting 'indentexpr'
Christian Brabandt <cb@256bit.org>
parents: 11348
diff changeset
334 endfunc