comparison src/testdir/test_blob.vim @ 20158:94f05de75e9f v8.2.0634

patch 8.2.0634: crash with null partial and blob Commit: https://github.com/vim/vim/commit/92b83ccfda7a1d654ccaaf161a9c8a8e01fbcf76 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Apr 25 15:24:44 2020 +0200 patch 8.2.0634: crash with null partial and blob Problem: Crash with null partial and blob. Solution: Check for NULL pointer. Add more tests. (Yegappan Lakshmanan, closes #5984)
author Bram Moolenaar <Bram@vim.org>
date Sat, 25 Apr 2020 15:30:04 +0200
parents 49694eceaa55
children 505d97ea54da
comparison
equal deleted inserted replaced
20157:ada5332a22b7 20158:94f05de75e9f
31 call assert_equal(0z00112233445566778899aabbccdd, b) 31 call assert_equal(0z00112233445566778899aabbccdd, b)
32 call assert_fails('let b = 0z1.1') 32 call assert_fails('let b = 0z1.1')
33 call assert_fails('let b = 0z.') 33 call assert_fails('let b = 0z.')
34 call assert_fails('let b = 0z001122.') 34 call assert_fails('let b = 0z001122.')
35 call assert_fails('call get("", 1)', 'E896:') 35 call assert_fails('call get("", 1)', 'E896:')
36 call assert_equal(0, len(test_null_blob()))
36 endfunc 37 endfunc
37 38
38 " assignment to a blob 39 " assignment to a blob
39 func Test_blob_assign() 40 func Test_blob_assign()
40 let b = 0zDEADBEEF 41 let b = 0zDEADBEEF
98 call assert_equal(0x44, get(b, -1)) 99 call assert_equal(0x44, get(b, -1))
99 call assert_equal(-1, get(b, 5)) 100 call assert_equal(-1, get(b, 5))
100 call assert_equal(999, get(b, 5, 999)) 101 call assert_equal(999, get(b, 5, 999))
101 call assert_equal(-1, get(b, -8)) 102 call assert_equal(-1, get(b, -8))
102 call assert_equal(999, get(b, -8, 999)) 103 call assert_equal(999, get(b, -8, 999))
104 call assert_equal(10, get(test_null_blob(), 2, 10))
103 105
104 call assert_equal(0x00, b[0]) 106 call assert_equal(0x00, b[0])
105 call assert_equal(0x22, b[2]) 107 call assert_equal(0x22, b[2])
106 call assert_equal(0x44, b[4]) 108 call assert_equal(0x44, b[4])
107 call assert_equal(0x44, b[-1]) 109 call assert_equal(0x44, b[-1])
115 call assert_equal(b, eval(string(b))) 117 call assert_equal(b, eval(string(b)))
116 call remove(b, 4, -1) 118 call remove(b, 4, -1)
117 call assert_equal('0z00112233', string(b)) 119 call assert_equal('0z00112233', string(b))
118 call remove(b, 0, 3) 120 call remove(b, 0, 3)
119 call assert_equal('0z', string(b)) 121 call assert_equal('0z', string(b))
122 call assert_equal('0z', string(test_null_blob()))
120 endfunc 123 endfunc
121 124
122 func Test_blob_compare() 125 func Test_blob_compare()
123 let b1 = 0z0011 126 let b1 = 0z0011
124 let b2 = 0z1100 127 let b2 = 0z1100
249 call assert_fails("call remove(b, 5)", 'E979:') 252 call assert_fails("call remove(b, 5)", 'E979:')
250 call assert_fails("call remove(b, 1, 5)", 'E979:') 253 call assert_fails("call remove(b, 1, 5)", 'E979:')
251 call assert_fails("call remove(b, 3, 2)", 'E979:') 254 call assert_fails("call remove(b, 3, 2)", 'E979:')
252 call assert_fails("call remove(1, 0)", 'E896:') 255 call assert_fails("call remove(1, 0)", 'E896:')
253 call assert_fails("call remove(b, b)", 'E974:') 256 call assert_fails("call remove(b, b)", 'E974:')
257 call assert_fails("call remove(test_null_blob(), 1, 2)", 'E979:')
254 endfunc 258 endfunc
255 259
256 func Test_blob_read_write() 260 func Test_blob_read_write()
257 let b = 0zDEADBEEF 261 let b = 0zDEADBEEF
258 call writefile(b, 'Xblob') 262 call writefile(b, 'Xblob')
311 call assert_fails('call insert(b, 257)', 'E475:') 315 call assert_fails('call insert(b, 257)', 'E475:')
312 call assert_fails('call insert(b, 0, [9])', 'E745:') 316 call assert_fails('call insert(b, 0, [9])', 'E745:')
313 call assert_fails('call insert(b, 0, -20)', 'E475:') 317 call assert_fails('call insert(b, 0, -20)', 'E475:')
314 call assert_fails('call insert(b, 0, 20)', 'E475:') 318 call assert_fails('call insert(b, 0, 20)', 'E475:')
315 call assert_fails('call insert(b, [])', 'E745:') 319 call assert_fails('call insert(b, [])', 'E745:')
320 call assert_equal(0, insert(test_null_blob(), 0x33))
316 endfunc 321 endfunc
317 322
318 func Test_blob_reverse() 323 func Test_blob_reverse()
319 call assert_equal(0zEFBEADDE, reverse(0zDEADBEEF)) 324 call assert_equal(0zEFBEADDE, reverse(0zDEADBEEF))
320 call assert_equal(0zBEADDE, reverse(0zDEADBE)) 325 call assert_equal(0zBEADDE, reverse(0zDEADBE))
321 call assert_equal(0zADDE, reverse(0zDEAD)) 326 call assert_equal(0zADDE, reverse(0zDEAD))
322 call assert_equal(0zDE, reverse(0zDE)) 327 call assert_equal(0zDE, reverse(0zDE))
328 call assert_equal(0z, reverse(test_null_blob()))
323 endfunc 329 endfunc
324 330
325 func Test_blob_json_encode() 331 func Test_blob_json_encode()
326 call assert_equal('[222,173,190,239]', json_encode(0zDEADBEEF)) 332 call assert_equal('[222,173,190,239]', json_encode(0zDEADBEEF))
327 call assert_equal('[]', json_encode(0z)) 333 call assert_equal('[]', json_encode(0z))