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