Hi, Igor! Thanks for the patch! LGTM, except for the single nit Sergey has already mentioned. -- Best regards, Maxim Kokryashkin     >  >>To test whether metric is counted right for side >>exits JIT engine parameter is tighted to prevent side trace >>compilation (considering being used for the corresponding >>branch of execution, the side trace will try to compile with stitching). >>However, if test is run on the platform configured with the option >>LUAJIT_ENABLE_CHECKHOOK enabled, the resulting trace exceeds the >>hardcoded limit and the metric is miscounted due to this new >>trace. To resolve this issue limit is set to the maximum >>amount of IRRef in the trace, preventing trace compilation for any >>LuaJIT configuration. >> >>Relates to tarantool/tarantool#7762 >> >>Signed-off-by: Igor Munkin < imun@tarantool.org > >>--- >> test/tarantool-tests/misclib-getmetrics-capi.test.lua | 7 +++++-- >> test/tarantool-tests/misclib-getmetrics-lapi.test.lua | 7 +++++-- >> test/tarantool-tests/utils.lua | 9 +++++++++ >> 3 files changed, 19 insertions(+), 4 deletions(-) >> >>diff --git a/test/tarantool-tests/misclib-getmetrics-capi.test.lua b/test/tarantool-tests/misclib-getmetrics-capi.test.lua >>index 0cbc6cae..42a9adf9 100644 >>--- a/test/tarantool-tests/misclib-getmetrics-capi.test.lua >>+++ b/test/tarantool-tests/misclib-getmetrics-capi.test.lua >>@@ -1,5 +1,7 @@ >>+local utils = require('utils') >>+ >> -- Disabled on *BSD due to #4819. >>-require('utils').skipcond(jit.os == 'BSD', 'Disabled due to #4819') >>+utils.skipcond(jit.os == 'BSD', 'Disabled due to #4819') >>  >> local path = arg[0]:gsub('%.test%.lua', '') >> local suffix = package.cpath:match('?.(%a+);') >>@@ -94,7 +96,8 @@ end)) >>  >> -- Compiled loop with a side exit which does not get compiled. >> test:ok(testgetmetrics.snap_restores(function() >>- jit.opt.start(0, "hotloop=1", "hotexit=2", "minstitch=15") >>+ jit.opt.start(0, "hotloop=1", "hotexit=2", >>+ ("minstitch=%d"):format(utils.const.maxnins)) >>  >>     local function foo(i) >>         -- math.fmod is not yet compiled! >>diff --git a/test/tarantool-tests/misclib-getmetrics-lapi.test.lua b/test/tarantool-tests/misclib-getmetrics-lapi.test.lua >>index 222e7d01..19dfd199 100644 >>--- a/test/tarantool-tests/misclib-getmetrics-lapi.test.lua >>+++ b/test/tarantool-tests/misclib-getmetrics-lapi.test.lua >>@@ -2,8 +2,10 @@ >> -- Major portions taken verbatim or adapted from the LuaVela testing suite. >> -- Copyright (C) 2015-2019 IPONWEB Ltd. >>  >>+local utils = require('utils') >>+ >> -- Disabled on *BSD due to #4819. >>-require('utils').skipcond(jit.os == 'BSD', 'Disabled due to #4819') >>+utils.skipcond(jit.os == 'BSD', 'Disabled due to #4819') >>  >> local tap = require('tap') >>  >>@@ -279,7 +281,8 @@ test:test("snap-restores-loop-side-exit-non-compiled", function(subtest) >>     -- Compiled loop with a side exit which does not get compiled. >>     subtest:plan(1) >>  >>- jit.opt.start(0, "hotloop=1", "hotexit=2", "minstitch=15") >>+ jit.opt.start(0, "hotloop=1", "hotexit=2", >>+ ("minstitch=%d"):format(utils.const.maxnins)) >>  >>     local function foo(i) >>         -- math.fmod is not yet compiled! >>diff --git a/test/tarantool-tests/utils.lua b/test/tarantool-tests/utils.lua >>index 87f7ff15..eb11d40d 100644 >>--- a/test/tarantool-tests/utils.lua >>+++ b/test/tarantool-tests/utils.lua >>@@ -135,4 +135,13 @@ function M.profilename(name) >>   return (arg[0]:gsub('^(.+)/([^/]+)%.test%.lua$', replacepattern)) >> end >>  >>+M.const = { >>+ -- XXX: Max nins is limited by max IRRef, that equals to >>+ -- REF_DROP - REF_BIAS. Unfortunately, these constants are not >>+ -- provided to Lua space, so we ought to make some math: >>+ -- * REF_DROP = 0xffff >>+ -- * REF_BIAS = 0x8000 >>+ maxnins = 0xffff - 0x8000, >>+} >>+ >> return M >>-- >>2.34.0 >