comparison src/testdir/test_ruby.vim @ 19249:2a017e9dc6da v8.2.0183

patch 8.2.0183: tests fail when the float feature is disabled Commit: https://github.com/vim/vim/commit/5feabe00c47fa66d5f4c95213f150488433f78e3 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Jan 30 18:24:53 2020 +0100 patch 8.2.0183: tests fail when the float feature is disabled Problem: Tests fail when the float feature is disabled. Solution: Skip tests that don't work without float support.
author Bram Moolenaar <Bram@vim.org>
date Thu, 30 Jan 2020 18:30:04 +0100
parents 69db186daf4c
children 04ef2ccf2519
comparison
equal deleted inserted replaced
19248:5e803caf5e9c 19249:2a017e9dc6da
32 call writefile(['raise "vim!"'], tempfile) 32 call writefile(['raise "vim!"'], tempfile)
33 call assert_fails('rubyfile ' . tempfile) 33 call assert_fails('rubyfile ' . tempfile)
34 call delete(tempfile) 34 call delete(tempfile)
35 endfunc 35 endfunc
36 36
37 func Test_set_cursor() 37 func Test_ruby_set_cursor()
38 " Check that setting the cursor position works. 38 " Check that setting the cursor position works.
39 new 39 new
40 call setline(1, ['first line', 'second line']) 40 call setline(1, ['first line', 'second line'])
41 normal gg 41 normal gg
42 rubydo $curwin.cursor = [1, 5] 42 rubydo $curwin.cursor = [1, 5]
52 \ 'ArgumentError: array length must be 2') 52 \ 'ArgumentError: array length must be 2')
53 bwipe! 53 bwipe!
54 endfunc 54 endfunc
55 55
56 " Test buffer.count and buffer.length (number of lines in buffer) 56 " Test buffer.count and buffer.length (number of lines in buffer)
57 func Test_buffer_count() 57 func Test_ruby_buffer_count()
58 new 58 new
59 call setline(1, ['one', 'two', 'three']) 59 call setline(1, ['one', 'two', 'three'])
60 call assert_equal(3, rubyeval('$curbuf.count')) 60 call assert_equal(3, rubyeval('$curbuf.count'))
61 call assert_equal(3, rubyeval('$curbuf.length')) 61 call assert_equal(3, rubyeval('$curbuf.length'))
62 bwipe! 62 bwipe!
63 endfunc 63 endfunc
64 64
65 " Test buffer.name (buffer name) 65 " Test buffer.name (buffer name)
66 func Test_buffer_name() 66 func Test_ruby_buffer_name()
67 new Xfoo 67 new Xfoo
68 call assert_equal(expand('%:p'), rubyeval('$curbuf.name')) 68 call assert_equal(expand('%:p'), rubyeval('$curbuf.name'))
69 bwipe 69 bwipe
70 call assert_equal(v:null, rubyeval('$curbuf.name')) 70 call assert_equal(v:null, rubyeval('$curbuf.name'))
71 endfunc 71 endfunc
72 72
73 " Test buffer.number (number of the buffer). 73 " Test buffer.number (number of the buffer).
74 func Test_buffer_number() 74 func Test_ruby_buffer_number()
75 new 75 new
76 call assert_equal(bufnr('%'), rubyeval('$curbuf.number')) 76 call assert_equal(bufnr('%'), rubyeval('$curbuf.number'))
77 new 77 new
78 call assert_equal(bufnr('%'), rubyeval('$curbuf.number')) 78 call assert_equal(bufnr('%'), rubyeval('$curbuf.number'))
79 79
80 %bwipe 80 %bwipe
81 endfunc 81 endfunc
82 82
83 " Test buffer.delete({n}) (delete line {n}) 83 " Test buffer.delete({n}) (delete line {n})
84 func Test_buffer_delete() 84 func Test_ruby_buffer_delete()
85 new 85 new
86 call setline(1, ['one', 'two', 'three']) 86 call setline(1, ['one', 'two', 'three'])
87 ruby $curbuf.delete(2) 87 ruby $curbuf.delete(2)
88 call assert_equal(['one', 'three'], getline(1, '$')) 88 call assert_equal(['one', 'three'], getline(1, '$'))
89 89
92 92
93 bwipe! 93 bwipe!
94 endfunc 94 endfunc
95 95
96 " Test buffer.append({str}, str) (append line {str} after line {n}) 96 " Test buffer.append({str}, str) (append line {str} after line {n})
97 func Test_buffer_append() 97 func Test_ruby_buffer_append()
98 new 98 new
99 ruby $curbuf.append(0, 'one') 99 ruby $curbuf.append(0, 'one')
100 ruby $curbuf.append(1, 'three') 100 ruby $curbuf.append(1, 'three')
101 ruby $curbuf.append(1, 'two') 101 ruby $curbuf.append(1, 'two')
102 ruby $curbuf.append(4, 'four') 102 ruby $curbuf.append(4, 'four')
110 110
111 bwipe! 111 bwipe!
112 endfunc 112 endfunc
113 113
114 " Test buffer.line (get or set the current line) 114 " Test buffer.line (get or set the current line)
115 func Test_buffer_line() 115 func Test_ruby_buffer_line()
116 new 116 new
117 call setline(1, ['one', 'two', 'three']) 117 call setline(1, ['one', 'two', 'three'])
118 2 118 2
119 call assert_equal('two', rubyeval('$curbuf.line')) 119 call assert_equal('two', rubyeval('$curbuf.line'))
120 120
123 123
124 bwipe! 124 bwipe!
125 endfunc 125 endfunc
126 126
127 " Test buffer.line_number (get current line number) 127 " Test buffer.line_number (get current line number)
128 func Test_buffer_line_number() 128 func Test_ruby_buffer_line_number()
129 new 129 new
130 call setline(1, ['one', 'two', 'three']) 130 call setline(1, ['one', 'two', 'three'])
131 2 131 2
132 call assert_equal(2, rubyeval('$curbuf.line_number')) 132 call assert_equal(2, rubyeval('$curbuf.line_number'))
133 133
134 bwipe! 134 bwipe!
135 endfunc 135 endfunc
136 136
137 func Test_buffer_get() 137 func Test_ruby_buffer_get()
138 new 138 new
139 call setline(1, ['one', 'two']) 139 call setline(1, ['one', 'two'])
140 call assert_equal('one', rubyeval('$curbuf[1]')) 140 call assert_equal('one', rubyeval('$curbuf[1]'))
141 call assert_equal('two', rubyeval('$curbuf[2]')) 141 call assert_equal('two', rubyeval('$curbuf[2]'))
142 142
146 \ 'IndexError: line number 3 out of range') 146 \ 'IndexError: line number 3 out of range')
147 147
148 bwipe! 148 bwipe!
149 endfunc 149 endfunc
150 150
151 func Test_buffer_set() 151 func Test_ruby_buffer_set()
152 new 152 new
153 call setline(1, ['one', 'two']) 153 call setline(1, ['one', 'two'])
154 ruby $curbuf[2] = 'TWO' 154 ruby $curbuf[2] = 'TWO'
155 ruby $curbuf[1] = 'ONE' 155 ruby $curbuf[1] = 'ONE'
156 156
160 \ 'IndexError: line number 3 out of range') 160 \ 'IndexError: line number 3 out of range')
161 bwipe! 161 bwipe!
162 endfunc 162 endfunc
163 163
164 " Test window.width (get or set window height). 164 " Test window.width (get or set window height).
165 func Test_window_height() 165 func Test_ruby_window_height()
166 new 166 new
167 167
168 " Test setting window height 168 " Test setting window height
169 ruby $curwin.height = 2 169 ruby $curwin.height = 2
170 call assert_equal(2, winheight(0)) 170 call assert_equal(2, winheight(0))
174 174
175 bwipe 175 bwipe
176 endfunc 176 endfunc
177 177
178 " Test window.width (get or set window width). 178 " Test window.width (get or set window width).
179 func Test_window_width() 179 func Test_ruby_window_width()
180 vnew 180 vnew
181 181
182 " Test setting window width 182 " Test setting window width
183 ruby $curwin.width = 2 183 ruby $curwin.width = 2
184 call assert_equal(2, winwidth(0)) 184 call assert_equal(2, winwidth(0))
188 188
189 bwipe 189 bwipe
190 endfunc 190 endfunc
191 191
192 " Test window.buffer (get buffer object of a window object). 192 " Test window.buffer (get buffer object of a window object).
193 func Test_window_buffer() 193 func Test_ruby_window_buffer()
194 new Xfoo1 194 new Xfoo1
195 new Xfoo2 195 new Xfoo2
196 ruby $b2 = $curwin.buffer 196 ruby $b2 = $curwin.buffer
197 ruby $w2 = $curwin 197 ruby $w2 = $curwin
198 wincmd j 198 wincmd j
207 ruby $b1, $w1, $b2, $w2 = nil 207 ruby $b1, $w1, $b2, $w2 = nil
208 %bwipe 208 %bwipe
209 endfunc 209 endfunc
210 210
211 " Test Vim::Window.current (get current window object) 211 " Test Vim::Window.current (get current window object)
212 func Test_Vim_window_current() 212 func Test_ruby_Vim_window_current()
213 let cw = rubyeval('$curwin') 213 let cw = rubyeval('$curwin')
214 call assert_equal(cw, rubyeval('Vim::Window.current')) 214 call assert_equal(cw, rubyeval('Vim::Window.current'))
215 call assert_match('^#<Vim::Window:0x\x\+>$', cw) 215 call assert_match('^#<Vim::Window:0x\x\+>$', cw)
216 endfunc 216 endfunc
217 217
218 " Test Vim::Window.count (number of windows) 218 " Test Vim::Window.count (number of windows)
219 func Test_Vim_window_count() 219 func Test_ruby_Vim_window_count()
220 new Xfoo1 220 new Xfoo1
221 new Xfoo2 221 new Xfoo2
222 split 222 split
223 call assert_equal(4, rubyeval('Vim::Window.count')) 223 call assert_equal(4, rubyeval('Vim::Window.count'))
224 %bwipe 224 %bwipe
225 call assert_equal(1, rubyeval('Vim::Window.count')) 225 call assert_equal(1, rubyeval('Vim::Window.count'))
226 endfunc 226 endfunc
227 227
228 " Test Vim::Window[n] (get window object of window n) 228 " Test Vim::Window[n] (get window object of window n)
229 func Test_Vim_window_get() 229 func Test_ruby_Vim_window_get()
230 new Xfoo1 230 new Xfoo1
231 new Xfoo2 231 new Xfoo2
232 call assert_match('Xfoo2$', rubyeval('Vim::Window[0].buffer.name')) 232 call assert_match('Xfoo2$', rubyeval('Vim::Window[0].buffer.name'))
233 wincmd j 233 wincmd j
234 call assert_match('Xfoo1$', rubyeval('Vim::Window[1].buffer.name')) 234 call assert_match('Xfoo1$', rubyeval('Vim::Window[1].buffer.name'))
236 call assert_equal(v:null, rubyeval('Vim::Window[2].buffer.name')) 236 call assert_equal(v:null, rubyeval('Vim::Window[2].buffer.name'))
237 %bwipe 237 %bwipe
238 endfunc 238 endfunc
239 239
240 " Test Vim::Buffer.current (return the buffer object of current buffer) 240 " Test Vim::Buffer.current (return the buffer object of current buffer)
241 func Test_Vim_buffer_current() 241 func Test_ruby_Vim_buffer_current()
242 let cb = rubyeval('$curbuf') 242 let cb = rubyeval('$curbuf')
243 call assert_equal(cb, rubyeval('Vim::Buffer.current')) 243 call assert_equal(cb, rubyeval('Vim::Buffer.current'))
244 call assert_match('^#<Vim::Buffer:0x\x\+>$', cb) 244 call assert_match('^#<Vim::Buffer:0x\x\+>$', cb)
245 endfunc 245 endfunc
246 246
247 " Test Vim::Buffer:.count (return the number of buffers) 247 " Test Vim::Buffer:.count (return the number of buffers)
248 func Test_Vim_buffer_count() 248 func Test_ruby_Vim_buffer_count()
249 new Xfoo1 249 new Xfoo1
250 new Xfoo2 250 new Xfoo2
251 call assert_equal(3, rubyeval('Vim::Buffer.count')) 251 call assert_equal(3, rubyeval('Vim::Buffer.count'))
252 %bwipe 252 %bwipe
253 call assert_equal(1, rubyeval('Vim::Buffer.count')) 253 call assert_equal(1, rubyeval('Vim::Buffer.count'))
254 endfunc 254 endfunc
255 255
256 " Test Vim::buffer[n] (return the buffer object of buffer number n) 256 " Test Vim::buffer[n] (return the buffer object of buffer number n)
257 func Test_Vim_buffer_get() 257 func Test_ruby_Vim_buffer_get()
258 new Xfoo1 258 new Xfoo1
259 new Xfoo2 259 new Xfoo2
260 260
261 " Index of Vim::Buffer[n] goes from 0 to the number of buffers. 261 " Index of Vim::Buffer[n] goes from 0 to the number of buffers.
262 call assert_equal(v:null, rubyeval('Vim::Buffer[0].name')) 262 call assert_equal(v:null, rubyeval('Vim::Buffer[0].name'))
267 %bwipe 267 %bwipe
268 endfunc 268 endfunc
269 269
270 " Test Vim::command({cmd}) (execute a Ex command)) 270 " Test Vim::command({cmd}) (execute a Ex command))
271 " Test Vim::command({cmd}) 271 " Test Vim::command({cmd})
272 func Test_Vim_command() 272 func Test_ruby_Vim_command()
273 new 273 new
274 call setline(1, ['one', 'two', 'three', 'four']) 274 call setline(1, ['one', 'two', 'three', 'four'])
275 ruby Vim::command('2,3d') 275 ruby Vim::command('2,3d')
276 call assert_equal(['one', 'four'], getline(1, '$')) 276 call assert_equal(['one', 'four'], getline(1, '$'))
277 bwipe! 277 bwipe!
278 endfunc 278 endfunc
279 279
280 " Test Vim::set_option (set a vim option) 280 " Test Vim::set_option (set a vim option)
281 func Test_Vim_set_option() 281 func Test_ruby_Vim_set_option()
282 call assert_equal(0, &number) 282 call assert_equal(0, &number)
283 ruby Vim::set_option('number') 283 ruby Vim::set_option('number')
284 call assert_equal(1, &number) 284 call assert_equal(1, &number)
285 ruby Vim::set_option('nonumber') 285 ruby Vim::set_option('nonumber')
286 call assert_equal(0, &number) 286 call assert_equal(0, &number)
287 endfunc 287 endfunc
288 288
289 func Test_Vim_evaluate() 289 func Test_ruby_Vim_evaluate()
290 call assert_equal(123, rubyeval('Vim::evaluate("123")')) 290 call assert_equal(123, rubyeval('Vim::evaluate("123")'))
291 " Vim::evaluate("123").class gives Integer or Fixnum depending 291 " Vim::evaluate("123").class gives Integer or Fixnum depending
292 " on versions of Ruby. 292 " on versions of Ruby.
293 call assert_match('^Integer\|Fixnum$', rubyeval('Vim::evaluate("123").class')) 293 call assert_match('^Integer\|Fixnum$', rubyeval('Vim::evaluate("123").class'))
294 294
295 call assert_equal(1.23, rubyeval('Vim::evaluate("1.23")')) 295 if has('float')
296 call assert_equal('Float', rubyeval('Vim::evaluate("1.23").class')) 296 call assert_equal(1.23, rubyeval('Vim::evaluate("1.23")'))
297 call assert_equal('Float', rubyeval('Vim::evaluate("1.23").class'))
298 endif
297 299
298 call assert_equal('foo', rubyeval('Vim::evaluate("\"foo\"")')) 300 call assert_equal('foo', rubyeval('Vim::evaluate("\"foo\"")'))
299 call assert_equal('String', rubyeval('Vim::evaluate("\"foo\"").class')) 301 call assert_equal('String', rubyeval('Vim::evaluate("\"foo\"").class'))
300 302
301 call assert_equal(["\x01\xAB"], rubyeval('Vim::evaluate("0z01ab").unpack("M")')) 303 call assert_equal(["\x01\xAB"], rubyeval('Vim::evaluate("0z01ab").unpack("M")'))
317 call assert_equal('TrueClass', rubyeval('Vim::evaluate("v:true").class')) 319 call assert_equal('TrueClass', rubyeval('Vim::evaluate("v:true").class'))
318 call assert_equal(v:false, rubyeval('Vim::evaluate("v:false")')) 320 call assert_equal(v:false, rubyeval('Vim::evaluate("v:false")'))
319 call assert_equal('FalseClass',rubyeval('Vim::evaluate("v:false").class')) 321 call assert_equal('FalseClass',rubyeval('Vim::evaluate("v:false").class'))
320 endfunc 322 endfunc
321 323
322 func Test_Vim_blob() 324 func Test_ruby_Vim_blob()
323 call assert_equal('0z', rubyeval('Vim::blob("")')) 325 call assert_equal('0z', rubyeval('Vim::blob("")'))
324 call assert_equal('0z31326162', rubyeval('Vim::blob("12ab")')) 326 call assert_equal('0z31326162', rubyeval('Vim::blob("12ab")'))
325 call assert_equal('0z00010203', rubyeval('Vim::blob("\x00\x01\x02\x03")')) 327 call assert_equal('0z00010203', rubyeval('Vim::blob("\x00\x01\x02\x03")'))
326 call assert_equal('0z8081FEFF', rubyeval('Vim::blob("\x80\x81\xfe\xff")')) 328 call assert_equal('0z8081FEFF', rubyeval('Vim::blob("\x80\x81\xfe\xff")'))
327 endfunc 329 endfunc
328 330
329 func Test_Vim_evaluate_list() 331 func Test_ruby_Vim_evaluate_list()
330 call setline(line('$'), ['2 line 2']) 332 call setline(line('$'), ['2 line 2'])
331 ruby Vim.command("normal /^2\n") 333 ruby Vim.command("normal /^2\n")
332 let l = ["abc", "def"] 334 let l = ["abc", "def"]
333 ruby << EOF 335 ruby << EOF
334 curline = $curbuf.line_number 336 curline = $curbuf.line_number
338 normal j 340 normal j
339 .rubydo $_ = $_.gsub(/\n/, '/') 341 .rubydo $_ = $_.gsub(/\n/, '/')
340 call assert_equal('abc/def', getline('$')) 342 call assert_equal('abc/def', getline('$'))
341 endfunc 343 endfunc
342 344
343 func Test_Vim_evaluate_dict() 345 func Test_ruby_Vim_evaluate_dict()
344 let d = {'a': 'foo', 'b': 123} 346 let d = {'a': 'foo', 'b': 123}
345 redir => l:out 347 redir => l:out
346 ruby d = Vim.evaluate("d"); print d 348 ruby d = Vim.evaluate("d"); print d
347 redir END 349 redir END
348 call assert_equal(['{"a"=>"foo", "b"=>123}'], split(l:out, "\n")) 350 call assert_equal(['{"a"=>"foo", "b"=>123}'], split(l:out, "\n"))
349 endfunc 351 endfunc
350 352
351 " Test Vim::message({msg}) (display message {msg}) 353 " Test Vim::message({msg}) (display message {msg})
352 func Test_Vim_message() 354 func Test_ruby_Vim_message()
353 ruby Vim::message('A message') 355 ruby Vim::message('A message')
354 let messages = split(execute('message'), "\n") 356 let messages = split(execute('message'), "\n")
355 call assert_equal('A message', messages[-1]) 357 call assert_equal('A message', messages[-1])
356 endfunc 358 endfunc
357 359
358 func Test_print() 360 func Test_ruby_print()
359 func RubyPrint(expr) 361 func RubyPrint(expr)
360 return trim(execute('ruby print ' . a:expr)) 362 return trim(execute('ruby print ' . a:expr))
361 endfunc 363 endfunc
362 364
363 call assert_equal('123', RubyPrint('123')) 365 call assert_equal('123', RubyPrint('123'))
372 call assert_match('Module', RubyPrint('Vim.class')) 374 call assert_match('Module', RubyPrint('Vim.class'))
373 375
374 delfunc RubyPrint 376 delfunc RubyPrint
375 endfunc 377 endfunc
376 378
377 func Test_p() 379 func Test_ruby_p()
378 ruby p 'Just a test' 380 ruby p 'Just a test'
379 let messages = split(execute('message'), "\n") 381 let messages = split(execute('message'), "\n")
380 call assert_equal('"Just a test"', messages[-1]) 382 call assert_equal('"Just a test"', messages[-1])
381 383
382 " Check return values of p method 384 " Check return values of p method