Mercurial > vim
comparison src/testdir/test_blob.vim @ 15456:f01eb1aed348 v8.1.0736
patch 8.1.0736: code for Blob not sufficiently tested
commit https://github.com/vim/vim/commit/c0f5a78c15b194f23bedb82e6825e34f481e6532
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Jan 13 15:16:13 2019 +0100
patch 8.1.0736: code for Blob not sufficiently tested
Problem: Code for Blob not sufficiently tested.
Solution: Add more tests. Fix uncovered crash. Add test_null_blob().
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 13 Jan 2019 15:30:08 +0100 |
parents | 1d2b5c016f17 |
children | 1550cc188ff6 |
comparison
equal
deleted
inserted
replaced
15455:4e2baf1fe3eb | 15456:f01eb1aed348 |
---|---|
19 call assert_fails('let x = b[4]') | 19 call assert_fails('let x = b[4]') |
20 | 20 |
21 call assert_equal(0xDE, get(b, 0)) | 21 call assert_equal(0xDE, get(b, 0)) |
22 call assert_equal(0xEF, get(b, 3)) | 22 call assert_equal(0xEF, get(b, 3)) |
23 call assert_fails('let x = get(b, 4)') | 23 call assert_fails('let x = get(b, 4)') |
24 | |
25 call assert_fails('let b = 0z1', 'E973:') | |
26 call assert_fails('let b = 0z1x', 'E973:') | |
27 call assert_fails('let b = 0z12345', 'E973:') | |
28 | |
29 call assert_equal(0z, test_null_blob()) | |
24 endfunc | 30 endfunc |
25 | 31 |
26 " assignment to a blob | 32 " assignment to a blob |
27 func Test_blob_assign() | 33 func Test_blob_assign() |
28 let b = 0zDEADBEEF | 34 let b = 0zDEADBEEF |
30 call assert_equal(0zADBE, b2) | 36 call assert_equal(0zADBE, b2) |
31 | 37 |
32 let bcopy = b[:] | 38 let bcopy = b[:] |
33 call assert_equal(b, bcopy) | 39 call assert_equal(b, bcopy) |
34 call assert_false(b is bcopy) | 40 call assert_false(b is bcopy) |
41 | |
42 let b = 0zDEADBEEF | |
43 let b2 = b | |
44 call assert_true(b is b2) | |
45 let b[:] = 0z11223344 | |
46 call assert_equal(0z11223344, b) | |
47 call assert_equal(0z11223344, b2) | |
48 call assert_true(b is b2) | |
49 | |
50 let b = 0zDEADBEEF | |
51 let b[3:] = 0z66 | |
52 call assert_equal(0zDEADBE66, b) | |
53 let b[:1] = 0z8899 | |
54 call assert_equal(0z8899BE66, b) | |
55 | |
56 call assert_fails('let b[2:3] = 0z112233', 'E972:') | |
57 call assert_fails('let b[2:3] = 0z11', 'E972:') | |
58 call assert_fails('let b[3:2] = 0z', 'E979:') | |
59 | |
60 let b = 0zDEADBEEF | |
61 let b += 0z99 | |
62 call assert_equal(0zDEADBEEF99, b) | |
63 | |
64 call assert_fails('let b .= 0z33', 'E734:') | |
65 call assert_fails('let b .= "xx"', 'E734:') | |
66 call assert_fails('let b += "xx"', 'E734:') | |
67 call assert_fails('let b[1:1] .= 0z55', 'E734:') | |
68 endfunc | |
69 | |
70 func Test_blob_get_range() | |
71 let b = 0z0011223344 | |
72 call assert_equal(0z2233, b[2:3]) | |
73 call assert_equal(0z223344, b[2:-1]) | |
74 call assert_equal(0z00, b[0:-5]) | |
75 call assert_equal(0z, b[0:-11]) | |
76 call assert_equal(0z44, b[-1:]) | |
77 call assert_equal(0z0011223344, b[:]) | |
78 call assert_equal(0z0011223344, b[:-1]) | |
79 call assert_equal(0z, b[5:6]) | |
35 endfunc | 80 endfunc |
36 | 81 |
37 func Test_blob_to_string() | 82 func Test_blob_to_string() |
38 let b = 0zDEADBEEF | 83 let b = 0zDEADBEEF |
39 call assert_equal('[0xDE,0xAD,0xBE,0xEF]', string(b)) | 84 call assert_equal('[0xDE,0xAD,0xBE,0xEF]', string(b)) |
42 endfunc | 87 endfunc |
43 | 88 |
44 func Test_blob_compare() | 89 func Test_blob_compare() |
45 let b1 = 0z0011 | 90 let b1 = 0z0011 |
46 let b2 = 0z1100 | 91 let b2 = 0z1100 |
92 let b3 = 0z001122 | |
93 call assert_true(b1 == b1) | |
47 call assert_false(b1 == b2) | 94 call assert_false(b1 == b2) |
95 call assert_false(b1 == b3) | |
48 call assert_true(b1 != b2) | 96 call assert_true(b1 != b2) |
97 call assert_true(b1 != b3) | |
49 call assert_true(b1 == 0z0011) | 98 call assert_true(b1 == 0z0011) |
50 | 99 |
51 call assert_false(b1 is b2) | 100 call assert_false(b1 is b2) |
52 let b2 = b1 | 101 let b2 = b1 |
53 call assert_true(b1 is b2) | 102 call assert_true(b1 is b2) |
63 func Test_blob_range_assign() | 112 func Test_blob_range_assign() |
64 let b = 0z00 | 113 let b = 0z00 |
65 let b[1] = 0x11 | 114 let b[1] = 0x11 |
66 let b[2] = 0x22 | 115 let b[2] = 0x22 |
67 call assert_equal(0z001122, b) | 116 call assert_equal(0z001122, b) |
68 call assert_fails('let b[4] = 0x33') | 117 call assert_fails('let b[4] = 0x33', 'E979:') |
69 endfunc | 118 endfunc |
70 | 119 |
71 func Test_blob_for_loop() | 120 func Test_blob_for_loop() |
72 let blob = 0z00010203 | 121 let blob = 0z00010203 |
73 let i = 0 | 122 let i = 0 |
175 | 224 |
176 func Test_blob_json_encode() | 225 func Test_blob_json_encode() |
177 call assert_equal('[222,173,190,239]', json_encode(0zDEADBEEF)) | 226 call assert_equal('[222,173,190,239]', json_encode(0zDEADBEEF)) |
178 call assert_equal('[]', json_encode(0z)) | 227 call assert_equal('[]', json_encode(0z)) |
179 endfunc | 228 endfunc |
229 | |
230 func Test_blob_lock() | |
231 let b = 0z112233 | |
232 lockvar b | |
233 call assert_fails('let b = 0z44', 'E741:') | |
234 unlockvar b | |
235 let b = 0z44 | |
236 endfunc | |
237 | |
238 func Test_blob_sort() | |
239 call assert_fails('call sort([1.0, 0z11], "f")', 'E975:') | |
240 endfunc |