Mercurial > vim
diff src/testdir/test_vim9_disassemble.vim @ 28625:56860e29ce5d v8.2.4836
patch 8.2.4836: Vim9: some lines not covered by tests
Commit: https://github.com/vim/vim/commit/f6ced9863f931758a4cee0b6546e77d21150806d
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Apr 28 12:00:49 2022 +0100
patch 8.2.4836: Vim9: some lines not covered by tests
Problem: Vim9: some lines not covered by tests.
Solution: Remove dead code. Add disassemble tests.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 28 Apr 2022 13:15:04 +0200 |
parents | 1d92ba691dc4 |
children | bfd8e25fa207 |
line wrap: on
line diff
--- a/src/testdir/test_vim9_disassemble.vim +++ b/src/testdir/test_vim9_disassemble.vim @@ -265,6 +265,7 @@ enddef def s:PutRange() :$-2put a + :$-3put! b enddef def Test_disassemble_put_range() @@ -273,6 +274,10 @@ def Test_disassemble_put_range() ' :$-2put a\_s*' .. '\d RANGE $-2\_s*' .. '\d PUT a range\_s*' .. + + ' :$-3put! b\_s*' .. + '\d RANGE $-3\_s*' .. + '\d PUT b above range\_s*' .. '\d RETURN void', res) enddef @@ -684,6 +689,10 @@ def s:ScriptFuncUnlet() unlet g:somevar unlet! g:somevar unlet $SOMEVAR + + var l = [1, 2, 3] + unlet l[2] + unlet l[0 : 1] enddef def Test_disassemble_unlet() @@ -697,13 +706,33 @@ def Test_disassemble_unlet() 'unlet! g:somevar\_s*' .. '\d UNLET! g:somevar\_s*' .. 'unlet $SOMEVAR\_s*' .. - '\d UNLETENV $SOMEVAR\_s*', + '\d UNLETENV $SOMEVAR\_s*' .. + + 'var l = \[1, 2, 3]\_s*' .. + '\d\+ PUSHNR 1\_s*' .. + '\d\+ PUSHNR 2\_s*' .. + '\d\+ PUSHNR 3\_s*' .. + '\d\+ NEWLIST size 3\_s*' .. + '\d\+ SETTYPE list<number>\_s*' .. + '\d\+ STORE $0\_s*' .. + + 'unlet l\[2]\_s*' .. + '\d\+ PUSHNR 2\_s*' .. + '\d\+ LOAD $0\_s*' .. + '\d\+ UNLETINDEX\_s*' .. + + 'unlet l\[0 : 1]\_s*' .. + '\d\+ PUSHNR 0\_s*' .. + '\d\+ PUSHNR 1\_s*' .. + '\d\+ LOAD $0\_s*' .. + '\d\+ UNLETRANGE\_s*', res) enddef def s:LockLocal() var d = {a: 1} lockvar d.a + const nr = 22 enddef def Test_disassemble_lock_local() @@ -717,7 +746,12 @@ def Test_disassemble_lock_local() '\d STORE $0\_s*' .. 'lockvar d.a\_s*' .. '\d LOAD $0\_s*' .. - '\d LOCKUNLOCK lockvar 2 d.a\_s*', + '\d LOCKUNLOCK lockvar 2 d.a\_s*' .. + + 'const nr = 22\_s*' .. + '\d\+ PUSHNR 22\_s*' .. + '\d\+ LOCKCONST\_s*' .. + '\d\+ STORE $1', res) enddef @@ -2186,6 +2220,33 @@ def Test_disassemble_range_only() res) enddef +def s:StoreRange() + var l = [1, 2] + l[0 : 1] = [7, 8] +enddef + +def Test_disassemble_store_range() + var res = execute('disass s:StoreRange') + assert_match('\<SNR>\d*_StoreRange\_s*' .. + 'var l = \[1, 2]\_s*' .. + '\d PUSHNR 1\_s*' .. + '\d PUSHNR 2\_s*' .. + '\d NEWLIST size 2\_s*' .. + '\d SETTYPE list<number>\_s*' .. + '\d STORE $0\_s*' .. + + 'l\[0 : 1] = \[7, 8]\_s*' .. + '\d\+ PUSHNR 7\_s*' .. + '\d\+ PUSHNR 8\_s*' .. + '\d\+ NEWLIST size 2\_s*' .. + '\d\+ PUSHNR 0\_s*' .. + '\d\+ PUSHNR 1\_s*' .. + '\d\+ LOAD $0\_s*' .. + '\d\+ STORERANGE\_s*' .. + '\d\+ RETURN void', + res) +enddef + def s:Echomsg() echomsg 'some' 'message' echoconsole 'nothing'