summaryrefslogtreecommitdiff
path: root/src/testdir
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-01-13 15:16:13 +0100
committerBram Moolenaar <Bram@vim.org>2019-01-13 15:16:13 +0100
commitc0f5a78c15b194f23bedb82e6825e34f481e6532 (patch)
tree499198e36943d41843167eadc9e90efdad928369 /src/testdir
parent6e5ea8d2a995b32bbc5972edc4f827b959f2702f (diff)
downloadvim-git-c0f5a78c15b194f23bedb82e6825e34f481e6532.tar.gz
patch 8.1.0736: code for Blob not sufficiently testedv8.1.0736
Problem: Code for Blob not sufficiently tested. Solution: Add more tests. Fix uncovered crash. Add test_null_blob().
Diffstat (limited to 'src/testdir')
-rw-r--r--src/testdir/test49.vim6
-rw-r--r--src/testdir/test_assign.vim12
-rw-r--r--src/testdir/test_blob.vim63
-rw-r--r--src/testdir/test_eval_stuff.vim6
-rw-r--r--src/testdir/test_lambda.vim4
5 files changed, 83 insertions, 8 deletions
diff --git a/src/testdir/test49.vim b/src/testdir/test49.vim
index 0f825a255..97088f01e 100644
--- a/src/testdir/test49.vim
+++ b/src/testdir/test49.vim
@@ -1,6 +1,6 @@
" Vim script language tests
" Author: Servatius Brandt <Servatius.Brandt@fujitsu-siemens.com>
-" Last Change: 2019 Jan 09
+" Last Change: 2019 Jan 13
"-------------------------------------------------------------------------------
" Test environment {{{1
@@ -3694,7 +3694,7 @@ endif
if ExtraVim(msgfile)
try
Xpath 4194304 " X: 4194304
- let x = novar " error E121/E15; exception: E121
+ let x = novar " error E121; exception: E121
catch /E15:/ " should not catch
Xpath 8388608 " X: 0
endtry
@@ -3702,7 +3702,7 @@ if ExtraVim(msgfile)
endif
Xpath 33554432 " X: 33554432
-if !MESSAGES('E121', "Undefined variable", 'E15', "Invalid expression")
+if !MESSAGES('E121', "Undefined variable")
Xpath 67108864 " X: 0
endif
diff --git a/src/testdir/test_assign.vim b/src/testdir/test_assign.vim
index 317d45867..1715a3f03 100644
--- a/src/testdir/test_assign.vim
+++ b/src/testdir/test_assign.vim
@@ -23,11 +23,11 @@ func Test_let_termcap()
let &t_k1 = old_t_k1
endif
- call assert_fails('let x = &t_xx', 'E15')
+ call assert_fails('let x = &t_xx', 'E113')
let &t_xx = "yes"
call assert_equal("yes", &t_xx)
let &t_xx = ""
- call assert_fails('let x = &t_xx', 'E15')
+ call assert_fails('let x = &t_xx', 'E113')
endfunc
func Test_let_option_error()
@@ -43,3 +43,11 @@ func Test_let_option_error()
call assert_equal("vert:|", &fillchars)
let &fillchars = _w
endfunc
+
+func Test_let_errors()
+ let s = 'abcd'
+ call assert_fails('let s[1] = 5', 'E689:')
+
+ let l = [1, 2, 3]
+ call assert_fails('let l[:] = 5', 'E709:')
+endfunc
diff --git a/src/testdir/test_blob.vim b/src/testdir/test_blob.vim
index 4ab28eb4f..550b8f1b9 100644
--- a/src/testdir/test_blob.vim
+++ b/src/testdir/test_blob.vim
@@ -21,6 +21,12 @@ func Test_blob_create()
call assert_equal(0xDE, get(b, 0))
call assert_equal(0xEF, get(b, 3))
call assert_fails('let x = get(b, 4)')
+
+ call assert_fails('let b = 0z1', 'E973:')
+ call assert_fails('let b = 0z1x', 'E973:')
+ call assert_fails('let b = 0z12345', 'E973:')
+
+ call assert_equal(0z, test_null_blob())
endfunc
" assignment to a blob
@@ -32,6 +38,45 @@ func Test_blob_assign()
let bcopy = b[:]
call assert_equal(b, bcopy)
call assert_false(b is bcopy)
+
+ let b = 0zDEADBEEF
+ let b2 = b
+ call assert_true(b is b2)
+ let b[:] = 0z11223344
+ call assert_equal(0z11223344, b)
+ call assert_equal(0z11223344, b2)
+ call assert_true(b is b2)
+
+ let b = 0zDEADBEEF
+ let b[3:] = 0z66
+ call assert_equal(0zDEADBE66, b)
+ let b[:1] = 0z8899
+ call assert_equal(0z8899BE66, b)
+
+ call assert_fails('let b[2:3] = 0z112233', 'E972:')
+ call assert_fails('let b[2:3] = 0z11', 'E972:')
+ call assert_fails('let b[3:2] = 0z', 'E979:')
+
+ let b = 0zDEADBEEF
+ let b += 0z99
+ call assert_equal(0zDEADBEEF99, b)
+
+ call assert_fails('let b .= 0z33', 'E734:')
+ call assert_fails('let b .= "xx"', 'E734:')
+ call assert_fails('let b += "xx"', 'E734:')
+ call assert_fails('let b[1:1] .= 0z55', 'E734:')
+endfunc
+
+func Test_blob_get_range()
+ let b = 0z0011223344
+ call assert_equal(0z2233, b[2:3])
+ call assert_equal(0z223344, b[2:-1])
+ call assert_equal(0z00, b[0:-5])
+ call assert_equal(0z, b[0:-11])
+ call assert_equal(0z44, b[-1:])
+ call assert_equal(0z0011223344, b[:])
+ call assert_equal(0z0011223344, b[:-1])
+ call assert_equal(0z, b[5:6])
endfunc
func Test_blob_to_string()
@@ -44,8 +89,12 @@ endfunc
func Test_blob_compare()
let b1 = 0z0011
let b2 = 0z1100
+ let b3 = 0z001122
+ call assert_true(b1 == b1)
call assert_false(b1 == b2)
+ call assert_false(b1 == b3)
call assert_true(b1 != b2)
+ call assert_true(b1 != b3)
call assert_true(b1 == 0z0011)
call assert_false(b1 is b2)
@@ -65,7 +114,7 @@ func Test_blob_range_assign()
let b[1] = 0x11
let b[2] = 0x22
call assert_equal(0z001122, b)
- call assert_fails('let b[4] = 0x33')
+ call assert_fails('let b[4] = 0x33', 'E979:')
endfunc
func Test_blob_for_loop()
@@ -177,3 +226,15 @@ func Test_blob_json_encode()
call assert_equal('[222,173,190,239]', json_encode(0zDEADBEEF))
call assert_equal('[]', json_encode(0z))
endfunc
+
+func Test_blob_lock()
+ let b = 0z112233
+ lockvar b
+ call assert_fails('let b = 0z44', 'E741:')
+ unlockvar b
+ let b = 0z44
+endfunc
+
+func Test_blob_sort()
+ call assert_fails('call sort([1.0, 0z11], "f")', 'E975:')
+endfunc
diff --git a/src/testdir/test_eval_stuff.vim b/src/testdir/test_eval_stuff.vim
index a1aa78878..dc3cb8919 100644
--- a/src/testdir/test_eval_stuff.vim
+++ b/src/testdir/test_eval_stuff.vim
@@ -63,3 +63,9 @@ func Test_E963()
call assert_fails("let v:oldfiles=''", 'E963:')
call assert_equal(v_o, v:oldfiles)
endfunc
+
+func Test_for_invalid()
+ call assert_fails("for x in 99", 'E714:')
+ call assert_fails("for x in 'asdf'", 'E714:')
+ call assert_fails("for x in {'a': 9}", 'E714:')
+endfunc
diff --git a/src/testdir/test_lambda.vim b/src/testdir/test_lambda.vim
index 7a31dcc1e..4ff3e20f1 100644
--- a/src/testdir/test_lambda.vim
+++ b/src/testdir/test_lambda.vim
@@ -49,7 +49,7 @@ endfunc
function Test_lambda_fails()
call assert_equal(3, {a, b -> a + b}(1, 2))
- call assert_fails('echo {a, a -> a + a}(1, 2)', 'E15:')
+ call assert_fails('echo {a, a -> a + a}(1, 2)', 'E853:')
call assert_fails('echo {a, b -> a + b)}(1, 2)', 'E15:')
endfunc
@@ -169,7 +169,7 @@ func Test_lambda_scope()
let l:D = s:NewCounter2()
call assert_equal(1, l:C())
- call assert_fails(':call l:D()', 'E15:') " E121: then E15:
+ call assert_fails(':call l:D()', 'E121:')
call assert_equal(2, l:C())
endfunc