Mercurial > vim
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)) |