summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-04-02 13:50:27 +0200
committerBram Moolenaar <Bram@vim.org>2020-04-02 13:50:27 +0200
commita4d4cf490e2974843c80598e6f40f83aae658fd3 (patch)
tree4842a8add8041e188ee249e78555dfe718e8fcc8
parent80c34ca312506c2c65eef6b119e214f7e6f87eb9 (diff)
downloadvim-git-a4d4cf490e2974843c80598e6f40f83aae658fd3.tar.gz
patch 8.2.0496: Vim9: disassemble test failsv8.2.0496
Problem: Vim9: disassemble test fails. Solution: Separate test cases with recognized constant expressions.
-rw-r--r--src/testdir/test_vim9_disassemble.vim42
-rw-r--r--src/version.c2
2 files changed, 43 insertions, 1 deletions
diff --git a/src/testdir/test_vim9_disassemble.vim b/src/testdir/test_vim9_disassemble.vim
index 62602956b..95cd2894f 100644
--- a/src/testdir/test_vim9_disassemble.vim
+++ b/src/testdir/test_vim9_disassemble.vim
@@ -728,7 +728,6 @@ def Test_disassemble_compare()
\ ['111 =~ 222', 'COMPARENR =\~'],
\ ['111 !~ 222', 'COMPARENR !\~'],
\
- \ ['"xx" == "yy"', 'COMPARESTRING =='],
\ ['"xx" != "yy"', 'COMPARESTRING !='],
\ ['"xx" > "yy"', 'COMPARESTRING >'],
\ ['"xx" < "yy"', 'COMPARESTRING <'],
@@ -806,6 +805,47 @@ def Test_disassemble_compare()
delete('Xdisassemble')
enddef
+def Test_disassemble_compare_const()
+ let cases = [
+ \ ['"xx" == "yy"', false],
+ \ ['"aa" == "aa"', true],
+ \ ]
+
+ let nr = 1
+ for case in cases
+ writefile(['def TestCase' .. nr .. '()',
+ \ ' if ' .. case[0],
+ \ ' echo 42'
+ \ ' endif',
+ \ 'enddef'], 'Xdisassemble')
+ source Xdisassemble
+ let instr = execute('disassemble TestCase' .. nr)
+ if case[1]
+ " condition true, "echo 42" executed
+ assert_match('TestCase' .. nr .. '.*'
+ \ .. 'if ' .. substitute(case[0], '[[~]', '\\\0', 'g') .. '.*'
+ \ .. '\d PUSHNR 42.*'
+ \ .. '\d ECHO 1.*'
+ \ .. '\d PUSHNR 0.*'
+ \ .. '\d RETURN.*'
+ \, instr)
+ else
+ " condition false, function just returns
+ assert_match('TestCase' .. nr .. '.*'
+ \ .. 'if ' .. substitute(case[0], '[[~]', '\\\0', 'g') .. '[ \n]*'
+ \ .. 'echo 42[ \n]*'
+ \ .. 'endif[ \n]*'
+ \ .. '\s*\d PUSHNR 0.*'
+ \ .. '\d RETURN.*'
+ \, instr)
+ endif
+
+ nr += 1
+ endfor
+
+ delete('Xdisassemble')
+enddef
+
def s:Execute()
execute 'help vim9.txt'
let cmd = 'help vim9.txt'
diff --git a/src/version.c b/src/version.c
index 454dbd466..8973af793 100644
--- a/src/version.c
+++ b/src/version.c
@@ -739,6 +739,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 496,
+/**/
495,
/**/
494,