<HTML><BODY><div>Hi, Igor!</div><div>Thanks for the patch!</div><div>LGTM</div><div data-signature-widget="container"><div data-signature-widget="content"><div>--<br>Best regards,</div><div>Maxim Kokryashkin</div></div></div><div> </div><div> </div><blockquote style="border-left:1px solid #0857A6; margin:10px; padding:0 0 0 10px;">Понедельник, 27 февраля 2023, 12:10 +03:00 от Igor Munkin <imun@tarantool.org>:<br> <div id=""><div class="js-helper js-readmsg-msg"><div><div id="style_16774890070367688748_BODY">This patch provides two enhancements for <utils.skipcond>:<br>1. As a result of the patch, <utils.skipcond> becomes multi-conditional,<br>   so there is no need to concatenate one huge and complex condition<br>   with one huge unreadable reason. Now skipcond receives the table with<br>   conditions and skips the test if one of the given conditions is met.<br>2. <utils.skipcond> yields the test object, that allows to chain<br>   skipcond call right next to the test constructor.<br><br>Finally as a result of the aforementioned changes <utils.skipcond> is<br>moved to tap.lua.<br><br>Co-authored-by: Sergey Kaplun <<a href="/compose?To=skaplun@tarantool.org">skaplun@tarantool.org</a>><br>Signed-off-by: Igor Munkin <<a href="/compose?To=imun@tarantool.org">imun@tarantool.org</a>><br>---<br> .../gh-4199-gc64-fuse.test.lua | 11 ++++----<br> .../gh-4427-ffi-sandwich.test.lua | 11 +++-----<br> .../gh-5813-resolving-of-c-symbols.test.lua | 19 ++++++-------<br> ...4-add-proto-trace-sysprof-default.test.lua | 15 ++++------<br> .../lj-430-maxirconst.test.lua | 10 +++----<br> .../lj-603-err-snap-restore.test.lua | 19 ++++++++-----<br> ...lj-672-cdata-allocation-recording.test.lua | 12 ++++----<br> .../lj-906-fix-err-mem.test.lua | 12 ++++----<br> .../lj-flush-on-trace.test.lua | 11 +++-----<br> .../misclib-getmetrics-capi.test.lua | 17 +++++------<br> .../misclib-getmetrics-lapi.test.lua | 13 ++++-----<br> .../misclib-memprof-lapi.test.lua | 28 ++++++++-----------<br> .../misclib-sysprof-capi.test.lua | 19 ++++++-------<br> .../misclib-sysprof-lapi.test.lua | 19 ++++++-------<br> test/tarantool-tests/tap.lua | 11 ++++++++<br> test/tarantool-tests/utils.lua | 8 ------<br> 16 files changed, 107 insertions(+), 128 deletions(-)<br><br>diff --git a/test/tarantool-tests/gh-4199-gc64-fuse.test.lua b/test/tarantool-tests/gh-4199-gc64-fuse.test.lua<br>index 4d69250f..65f9faac 100644<br>--- a/test/tarantool-tests/gh-4199-gc64-fuse.test.lua<br>+++ b/test/tarantool-tests/gh-4199-gc64-fuse.test.lua<br>@@ -1,11 +1,12 @@<br>--- The test is GC64 only.<br>-local ffi = require('ffi')<br>-require('utils').skipcond(not ffi.abi('gc64'), 'test is GC64 only')<br>-<br> local tap = require('tap')<br>-local test = tap.test('gh-4199-gc64-fuse')<br>+local test = tap.test('gh-4199-gc64-fuse'):skipcond({<br>+ ['Test requires GC64 mode enabled'] = not require('ffi').abi('gc64'),<br>+})<br>+<br> test:plan(1)<br> <br>+local ffi = require('ffi')<br>+<br> collectgarbage()<br> -- Chomp memory in currently allocated GC space.<br> collectgarbage('stop')<br>diff --git a/test/tarantool-tests/gh-4427-ffi-sandwich.test.lua b/test/tarantool-tests/gh-4427-ffi-sandwich.test.lua<br>index 06985dcd..ed3f50d1 100644<br>--- a/test/tarantool-tests/gh-4427-ffi-sandwich.test.lua<br>+++ b/test/tarantool-tests/gh-4427-ffi-sandwich.test.lua<br>@@ -1,16 +1,13 @@<br>-local utils = require('utils')<br>-<br>--- Disabled on *BSD due to #4819.<br>-utils.skipcond(jit.os == 'BSD', 'Disabled due to #4819')<br>-<br> local tap = require('tap')<br>+local test = tap.test('gh-4427-ffi-sandwich'):skipcond({<br>+ ['Disabled on *BSD due to #4819'] = jit.os == 'BSD',<br>+})<br> <br>-local test = tap.test('gh-4427-ffi-sandwich')<br> test:plan(2)<br> <br> -- <makecmd> runs %testname%/script.lua by <LUAJIT_TEST_BINARY><br> -- with the given environment, launch options and CLI arguments.<br>-local script = utils.makecmd(arg, {<br>+local script = require('utils').makecmd(arg, {<br>   -- XXX: Apple tries their best to "protect their users from<br>   -- malware". As a result SIP (see the link[1] below) has been<br>   -- designed and released. Now, Apple developers are so<br>diff --git a/test/tarantool-tests/gh-5813-resolving-of-c-symbols.test.lua b/test/tarantool-tests/gh-5813-resolving-of-c-symbols.test.lua<br>index e0b6d86d..3c6833fc 100644<br>--- a/test/tarantool-tests/gh-5813-resolving-of-c-symbols.test.lua<br>+++ b/test/tarantool-tests/gh-5813-resolving-of-c-symbols.test.lua<br>@@ -1,14 +1,10 @@<br>--- Memprof is implemented for x86 and x64 architectures only.<br>-local utils = require("utils")<br>-<br>-utils.skipcond(<br>- jit.arch ~= "x86" and jit.arch ~= "x64" or jit.os ~= "Linux",<br>- jit.arch.." architecture or "..jit.os..<br>- " OS is NIY for memprof c symbols resolving"<br>-)<br>-<br> local tap = require("tap")<br>-local test = tap.test("gh-5813-resolving-of-c-symbols")<br>+local test = tap.test("gh-5813-resolving-of-c-symbols"):skipcond({<br>+ ["Memprof is implemented for x86_64 only"] = jit.arch ~= "x86" and<br>+ jit.arch ~= "x64",<br>+ ["Memprof is implemented for Linux only"] = jit.os ~= "Linux",<br>+})<br>+<br> test:plan(5)<br> <br> jit.off()<br>@@ -19,8 +15,9 @@ local symtab = require "utils.symtab"<br> local testboth = require "resboth"<br> local testhash = require "reshash"<br> local testgnuhash = require "resgnuhash"<br>+local profilename = require("utils").profilename<br> <br>-local TMP_BINFILE = utils.profilename("memprofdata.tmp.bin")<br>+local TMP_BINFILE = profilename("memprofdata.tmp.bin")<br> <br> local function tree_contains(node, name)<br>   if node == nil then<br>diff --git a/test/tarantool-tests/gh-7264-add-proto-trace-sysprof-default.test.lua b/test/tarantool-tests/gh-7264-add-proto-trace-sysprof-default.test.lua<br>index 15bd0a8b..472bc2d1 100644<br>--- a/test/tarantool-tests/gh-7264-add-proto-trace-sysprof-default.test.lua<br>+++ b/test/tarantool-tests/gh-7264-add-proto-trace-sysprof-default.test.lua<br>@@ -1,13 +1,10 @@<br>--- Sysprof is implemented for x86 and x64 architectures only.<br>-require('utils').skipcond(<br>- jit.arch ~= 'x86' and jit.arch ~= 'x64' or jit.os ~= 'Linux'<br>- or require('ffi').abi('gc64'),<br>- jit.arch..' architecture or '..jit.os..<br>- ' OS is NIY for sysprof'<br>-)<br>-<br> local tap = require('tap')<br>-local test = tap.test('gh-7264-add-proto-trace-sysprof-default.test.lua')<br>+local test = tap.test('gh-7264-add-proto-trace-sysprof-default'):skipcond({<br>+ ['Sysprof is implemented for x86_64 only'] = jit.arch ~= 'x86' and<br>+ jit.arch ~= 'x64',<br>+ ['Sysprof is implemented for Linux only'] = jit.os ~= 'Linux',<br>+})<br>+<br> test:plan(2)<br> <br> local chunk = [[<br>diff --git a/test/tarantool-tests/lj-430-maxirconst.test.lua b/test/tarantool-tests/lj-430-maxirconst.test.lua<br>index 8bc523c2..633ab676 100644<br>--- a/test/tarantool-tests/lj-430-maxirconst.test.lua<br>+++ b/test/tarantool-tests/lj-430-maxirconst.test.lua<br>@@ -1,12 +1,12 @@<br>--- Disabled on *BSD due to #4819.<br>-require('utils').skipcond(jit.os == 'BSD', 'Disabled due to #4819')<br>-<br> local tap = require('tap')<br>-local traceinfo = require('jit.util').traceinfo<br>+local test = tap.test('lj-430-maxirconst'):skipcond({<br>+ ['Disabled on *BSD due to #4819'] = jit.os == 'BSD',<br>+})<br> <br>-local test = tap.test('lj-430-maxirconst')<br> test:plan(2)<br> <br>+local traceinfo = require('jit.util').traceinfo<br>+<br> -- This function has only 3 IR constant.<br> local function irconst3()<br> end<br>diff --git a/test/tarantool-tests/lj-603-err-snap-restore.test.lua b/test/tarantool-tests/lj-603-err-snap-restore.test.lua<br>index b5353e85..be54a5f3 100644<br>--- a/test/tarantool-tests/lj-603-err-snap-restore.test.lua<br>+++ b/test/tarantool-tests/lj-603-err-snap-restore.test.lua<br>@@ -1,9 +1,9 @@<br> local tap = require('tap')<br>-<br> -- Test to demonstrate the incorrect JIT behaviour when an error<br> -- is raised on restoration from the snapshot.<br> -- See also <a href="https://github.com/LuaJIT/LuaJIT/issues/603" target="_blank">https://github.com/LuaJIT/LuaJIT/issues/603</a>.<br>-local test = tap.test('lj-603-err-snap-restore.test.lua')<br>+local test = tap.test('lj-603-err-snap-restore')<br>+<br> test:plan(2)<br> <br> -- XXX: This is fragile. We need a specific amount of Lua stack<br>@@ -38,11 +38,16 @@ end<br> recursive_f()<br> <br> test:ok(true)<br>--- Disabled on *BSD due to #4819.<br>--- XXX: The different amount of stack slots is in-use for<br>--- Tarantool at start, so just skip test for it.<br>--- luacheck: no global<br>-test:ok(jit.os == 'BSD' or _TARANTOOL or not handler_is_called)<br>+<br>+test:skipcond({<br>+ ['Disabled on *BSD due to #4819'] = jit.os == 'BSD',<br>+ -- XXX: The different amount of stack slots is in-use for<br>+ -- Tarantool at start, so just skip test for it.<br>+ -- luacheck: no global<br>+ ['Disable test for Tarantool'] = _TARANTOOL,<br>+})<br>+<br>+test:ok(not handler_is_called)<br> <br> -- XXX: Don't use `os.exit()` here by intention. When error on<br> -- snap restoration is raised, `err_unwind()` doesn't stop on<br>diff --git a/test/tarantool-tests/lj-672-cdata-allocation-recording.test.lua b/test/tarantool-tests/lj-672-cdata-allocation-recording.test.lua<br>index 1dc741d8..2165afe3 100644<br>--- a/test/tarantool-tests/lj-672-cdata-allocation-recording.test.lua<br>+++ b/test/tarantool-tests/lj-672-cdata-allocation-recording.test.lua<br>@@ -1,13 +1,13 @@<br>--- Disabled on *BSD due to #4819.<br>-require('utils').skipcond(jit.os == 'BSD', 'Disabled due to #4819')<br>+local tap = require('tap')<br>+local test = tap.test('lj-672-cdata-allocation-recording'):skipcond({<br>+ ['Disabled on *BSD due to #4819'] = jit.os == 'BSD',<br>+})<br>+<br>+test:plan(1)<br> <br> local ffi = require('ffi')<br> local traceinfo = require('jit.util').traceinfo<br> <br>-local tap = require('tap')<br>-local test = tap.test('lj-672-cdata-allocation-recording')<br>-test:plan(1)<br>-<br> -- Structure with array.<br> ffi.cdef('struct my_struct {int a; char d[8];}')<br> <br>diff --git a/test/tarantool-tests/lj-906-fix-err-mem.test.lua b/test/tarantool-tests/lj-906-fix-err-mem.test.lua<br>index 450beeff..6c6df338 100644<br>--- a/test/tarantool-tests/lj-906-fix-err-mem.test.lua<br>+++ b/test/tarantool-tests/lj-906-fix-err-mem.test.lua<br>@@ -1,13 +1,13 @@<br> local tap = require('tap')<br>-local ffi = require('ffi')<br>-local table_new = require('table.new')<br>-<br>--- Avoid test to be killed.<br>-require('utils').skipcond(ffi.abi('gc64'), 'test is not GC64 only')<br>+local test = tap.test('lj-906-fix-err-mem'):skipcond({<br>+ ['Test requires GC64 mode disabled'] = require('ffi').abi('gc64'),<br>+})<br> <br>-local test = tap.test('lj-906-fix-err-mem')<br> test:plan(1)<br> <br>+local ffi = require('ffi')<br>+local table_new = require('table.new')<br>+<br> local KB = 1024<br> local MB = 1024 * KB<br> local sizes = {8 * MB, 8 * KB, 8}<br>diff --git a/test/tarantool-tests/lj-flush-on-trace.test.lua b/test/tarantool-tests/lj-flush-on-trace.test.lua<br>index 3351cc5a..099e9650 100644<br>--- a/test/tarantool-tests/lj-flush-on-trace.test.lua<br>+++ b/test/tarantool-tests/lj-flush-on-trace.test.lua<br>@@ -1,16 +1,13 @@<br>-local utils = require('utils')<br>-<br>--- Disabled on *BSD due to #4819.<br>-utils.skipcond(jit.os == 'BSD', 'Disabled due to #4819')<br>-<br> local tap = require('tap')<br>+local test = tap.test('lj-flush-on-trace'):skipcond({<br>+ ['Disabled on *BSD due to #4819'] = jit.os == 'BSD',<br>+})<br> <br>-local test = tap.test('lj-flush-on-trace')<br> test:plan(2)<br> <br> -- <makecmd> runs %testname%/script.lua by <LUAJIT_TEST_BINARY><br> -- with the given environment, launch options and CLI arguments.<br>-local script = utils.makecmd(arg, {<br>+local script = require('utils').makecmd(arg, {<br>   -- XXX: Apple tries their best to "protect their users from<br>   -- malware". As a result SIP (see the link[1] below) has been<br>   -- designed and released. Now, Apple developers are so<br>diff --git a/test/tarantool-tests/misclib-getmetrics-capi.test.lua b/test/tarantool-tests/misclib-getmetrics-capi.test.lua<br>index 42a9adf9..c5a91955 100644<br>--- a/test/tarantool-tests/misclib-getmetrics-capi.test.lua<br>+++ b/test/tarantool-tests/misclib-getmetrics-capi.test.lua<br>@@ -1,12 +1,15 @@<br>-local utils = require('utils')<br>+local tap = require('tap')<br>+local test = tap.test("clib-misc-getmetrics"):skipcond({<br>+ ['Disabled on *BSD due to #4819'] = jit.os == 'BSD',<br>+})<br> <br>--- Disabled on *BSD due to #4819.<br>-utils.skipcond(jit.os == 'BSD', 'Disabled due to #4819')<br>+test:plan(11)<br> <br> local path = arg[0]:gsub('%.test%.lua', '')<br> local suffix = package.cpath:match('?.(%a+);')<br> package.cpath = ('%s/?.%s;'):format(path, suffix)..package.cpath<br> <br>+local MAXNINS = require('utils').const.maxnins<br> local jit_opt_default = {<br>     3, -- level<br>     "hotloop=56",<br>@@ -14,11 +17,6 @@ local jit_opt_default = {<br>     "minstitch=0",<br> }<br> <br>-local tap = require('tap')<br>-<br>-local test = tap.test("clib-misc-getmetrics")<br>-test:plan(11)<br>-<br> local testgetmetrics = require("testgetmetrics")<br> <br> test:ok(testgetmetrics.base())<br>@@ -96,8 +94,7 @@ end))<br> <br> -- Compiled loop with a side exit which does not get compiled.<br> test:ok(testgetmetrics.snap_restores(function()<br>- jit.opt.start(0, "hotloop=1", "hotexit=2",<br>- ("minstitch=%d"):format(utils.const.maxnins))<br>+ jit.opt.start(0, "hotloop=1", "hotexit=2", ("minstitch=%d"):format(MAXNINS))<br> <br>     local function foo(i)<br>         -- math.fmod is not yet compiled!<br>diff --git a/test/tarantool-tests/misclib-getmetrics-lapi.test.lua b/test/tarantool-tests/misclib-getmetrics-lapi.test.lua<br>index 0c170d0c..e71bc239 100644<br>--- a/test/tarantool-tests/misclib-getmetrics-lapi.test.lua<br>+++ b/test/tarantool-tests/misclib-getmetrics-lapi.test.lua<br>@@ -2,16 +2,14 @@<br> -- Major portions taken verbatim or adapted from the LuaVela testing suite.<br> -- Copyright (C) 2015-2019 IPONWEB Ltd.<br> <br>-local utils = require('utils')<br>-<br>--- Disabled on *BSD due to #4819.<br>-utils.skipcond(jit.os == 'BSD', 'Disabled due to #4819')<br>-<br> local tap = require('tap')<br>+local test = tap.test("lib-misc-getmetrics"):skipcond({<br>+ ['Disabled on *BSD due to #4819'] = jit.os == 'BSD',<br>+})<br> <br>-local test = tap.test("lib-misc-getmetrics")<br> test:plan(10)<br> <br>+local MAXNINS = require('utils').const.maxnins<br> local jit_opt_default = {<br>     3, -- level<br>     "hotloop=56",<br>@@ -281,8 +279,7 @@ test:test("snap-restores-loop-side-exit-non-compiled", function(subtest)<br>     -- Compiled loop with a side exit which does not get compiled.<br>     subtest:plan(1)<br> <br>- jit.opt.start(0, "hotloop=1", "hotexit=2",<br>- ("minstitch=%d"):format(utils.const.maxnins))<br>+ jit.opt.start(0, "hotloop=1", "hotexit=2", ("minstitch=%d"):format(MAXNINS))<br> <br>     local function foo(i)<br>         -- math.fmod is not yet compiled!<br>diff --git a/test/tarantool-tests/misclib-memprof-lapi.test.lua b/test/tarantool-tests/misclib-memprof-lapi.test.lua<br>index bae0c27c..18c8aaab 100644<br>--- a/test/tarantool-tests/misclib-memprof-lapi.test.lua<br>+++ b/test/tarantool-tests/misclib-memprof-lapi.test.lua<br>@@ -1,14 +1,13 @@<br>--- Memprof is implemented for x86 and x64 architectures only.<br>-local utils = require("utils")<br>-<br>-utils.skipcond(<br>- jit.arch ~= "x86" and jit.arch ~= "x64",<br>- jit.arch.." architecture is NIY for memprof"<br>-)<br>-<br>+-- XXX: This comment is a reminder to reimplement memprof tests<br>+-- assertions to make them more indepentent to the changes made.<br>+-- Now I just leave this 3 lines comment to preserve line numbers.<br> local tap = require("tap")<br>+local test = tap.test("misc-memprof-lapi"):skipcond({<br>+ ['Disabled on *BSD due to #4819'] = jit.os == 'BSD',<br>+ ["Memprof is implemented for x86_64 only"] = jit.arch ~= "x86" and<br>+ jit.arch ~= "x64",<br>+})<br> <br>-local test = tap.test("misc-memprof-lapi")<br> test:plan(5)<br> <br> local jit_opt_default = {<br>@@ -27,9 +26,10 @@ local bufread = require "utils.bufread"<br> local memprof = require "memprof.parse"<br> local process = require "memprof.process"<br> local symtab = require "utils.symtab"<br>+local profilename = require("utils").profilename<br> <br>-local TMP_BINFILE = utils.profilename("memprofdata.tmp.bin")<br>-local BAD_PATH = utils.profilename("memprofdata/tmp.bin")<br>+local TMP_BINFILE = profilename("memprofdata.tmp.bin")<br>+local BAD_PATH = profilename("memprofdata/tmp.bin")<br> local SRC_PATH = "@"..arg[0]<br> <br> local function default_payload()<br>@@ -267,12 +267,6 @@ end)<br> jit.on()<br> <br> test:test("jit-output", function(subtest)<br>- -- Disabled on *BSD due to #4819.<br>- if jit.os == 'BSD' then<br>- subtest:plan(1)<br>- subtest:skip('Disabled due to #4819')<br>- return<br>- end<br> <br>   subtest:plan(4)<br> <br>diff --git a/test/tarantool-tests/misclib-sysprof-capi.test.lua b/test/tarantool-tests/misclib-sysprof-capi.test.lua<br>index dad0fe4a..a9b712a5 100644<br>--- a/test/tarantool-tests/misclib-sysprof-capi.test.lua<br>+++ b/test/tarantool-tests/misclib-sysprof-capi.test.lua<br>@@ -1,21 +1,18 @@<br>--- Sysprof is implemented for x86 and x64 architectures only.<br>-local utils = require("utils")<br>-utils.skipcond(<br>- jit.arch ~= "x86" and jit.arch ~= "x64" or jit.os ~= "Linux",<br>- jit.arch.." architecture or "..jit.os..<br>- " OS is NIY for sysprof"<br>-)<br>+local tap = require("tap")<br>+local test = tap.test("clib-misc-sysprof"):skipcond({<br>+ ["Sysprof is implemented for x86_64 only"] = jit.arch ~= "x86" and<br>+ jit.arch ~= "x64",<br>+ ["Sysprof is implemented for Linux only"] = jit.os ~= "Linux",<br>+})<br>+<br>+test:plan(2)<br> <br> local testsysprof = require("testsysprof")<br> <br>-local tap = require("tap")<br> local jit = require('jit')<br> <br> jit.off()<br> <br>-local test = tap.test("clib-misc-sysprof")<br>-test:plan(2)<br>-<br> test:ok(testsysprof.base())<br> test:ok(testsysprof.validation())<br> <br>diff --git a/test/tarantool-tests/misclib-sysprof-lapi.test.lua b/test/tarantool-tests/misclib-sysprof-lapi.test.lua<br>index 4bf10e8d..fff89dfd 100644<br>--- a/test/tarantool-tests/misclib-sysprof-lapi.test.lua<br>+++ b/test/tarantool-tests/misclib-sysprof-lapi.test.lua<br>@@ -1,14 +1,10 @@<br>--- Sysprof is implemented for x86 and x64 architectures only.<br>-local utils = require("utils")<br>-utils.skipcond(<br>- jit.arch ~= "x86" and jit.arch ~= "x64" or jit.os ~= "Linux",<br>- jit.arch.." architecture or "..jit.os..<br>- " OS is NIY for sysprof"<br>-)<br>-<br> local tap = require("tap")<br>+local test = tap.test("misc-sysprof-lapi"):skipcond({<br>+ ["Sysprof is implemented for x86_64 only"] = jit.arch ~= "x86" and<br>+ jit.arch ~= "x64",<br>+ ["Sysprof is implemented for Linux only"] = jit.os ~= "Linux",<br>+})<br> <br>-local test = tap.test("misc-sysprof-lapi")<br> test:plan(19)<br> <br> jit.off()<br>@@ -17,9 +13,10 @@ jit.flush()<br> local bufread = require("utils.bufread")<br> local symtab = require("utils.symtab")<br> local sysprof = require("sysprof.parse")<br>+local profilename = require("utils").profilename<br> <br>-local TMP_BINFILE = utils.profilename("sysprofdata.tmp.bin")<br>-local BAD_PATH = utils.profilename("sysprofdata/tmp.bin")<br>+local TMP_BINFILE = profilename("sysprofdata.tmp.bin")<br>+local BAD_PATH = profilename("sysprofdata/tmp.bin")<br> <br> local function payload()<br>   local function fib(n)<br>diff --git a/test/tarantool-tests/tap.lua b/test/tarantool-tests/tap.lua<br>index 343f97e3..47a8fe87 100644<br>--- a/test/tarantool-tests/tap.lua<br>+++ b/test/tarantool-tests/tap.lua<br>@@ -327,6 +327,16 @@ local function check(test)<br>   return test.planned == test.total and test.failed == 0<br> end<br> <br>+local function skipcond(test, conditions)<br>+ for reason, condition in pairs(conditions) do<br>+ if condition then<br>+ local skipfunc = test.planned and skiprest or skipall<br>+ skipfunc(test, reason)<br>+ end<br>+ end<br>+ return test<br>+end<br>+<br> test_mt = {<br>   __index = {<br>     test = new,<br>@@ -338,6 +348,7 @@ test_mt = {<br>     skip = skip,<br>     skipall = skipall,<br>     skiprest = skiprest,<br>+ skipcond = skipcond,<br>     is = is,<br>     isnt = isnt,<br>     isnil = isnil,<br>diff --git a/test/tarantool-tests/utils.lua b/test/tarantool-tests/utils.lua<br>index <span class="js-phone-number">8355149</span>b..83716bb3 100644<br>--- a/test/tarantool-tests/utils.lua<br>+++ b/test/tarantool-tests/utils.lua<br>@@ -81,14 +81,6 @@ function M.makecmd(arg, opts)<br>   })<br> end<br> <br>-function M.skipcond(condition, message)<br>- if not condition then return end<br>- local test = tap.test(arg[0]:match('/?(.+)%.test%.lua'))<br>- test:plan(1)<br>- test:skip(message)<br>- os.exit(test:check() and 0 or 1)<br>-end<br>-<br> function M.hasbc(f, bytecode)<br>   assert(type(f) == 'function', 'argument #1 should be a function')<br>   assert(type(bytecode) == 'string', 'argument #2 should be a string')<br>--<br>2.30.2</div></div></div></div></blockquote><div> </div></BODY></HTML>