From a4d4cf490e2974843c80598e6f40f83aae658fd3 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Thu, 2 Apr 2020 13:50:27 +0200 Subject: [PATCH] patch 8.2.0496: Vim9: disassemble test fails Problem: Vim9: disassemble test fails. Solution: Separate test cases with recognized constant expressions. --- src/testdir/test_vim9_disassemble.vim | 42 ++++++++++++++++++++++++++- src/version.c | 2 ++ 2 files changed, 43 insertions(+), 1 deletion(-) 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 @@ -738,6 +738,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 496, /**/ 495, /**/