From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from [87.239.111.99] (localhost [127.0.0.1]) by dev.tarantool.org (Postfix) with ESMTP id 047F6257FF2; Mon, 13 Feb 2023 20:05:30 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 047F6257FF2 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1676307930; bh=qECuSMC/iSBBexHFiH7sFjrgpoFbwnZQBxYZAg8Hjnk=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=IgAIoGp3b/Dy2cqVh3fJ5B68CeMLI9reHoOI0jGW+BdIlOiD0s9ylAotbbjP425Uj s9GWtuRuJP6tpYbPmQpJ8N59vK3i0iEV53IjC+LJo9XpK3VAbHQW8ZvYCUjD7+69oO UheobN8AN2T82KKuoiRlsNYbPjT5QVDvp60Lz9i0= Received: from smtp46.i.mail.ru (smtp46.i.mail.ru [95.163.41.84]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id DCE86257FF8 for ; Mon, 13 Feb 2023 20:03:30 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org DCE86257FF8 Received: by smtp46.i.mail.ru with esmtpa (envelope-from ) id 1pRcEj-00Ft6R-R8; Mon, 13 Feb 2023 20:03:30 +0300 To: Sergey Kaplun , Maxim Kokryashkin Date: Mon, 13 Feb 2023 17:02:46 +0000 Message-Id: <813a3dbf14ec517cbfe7313c77aba3adbd5113ff.1676304797.git.imun@tarantool.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Mailru-Src: smtp X-4EC0790: 10 X-7564579A: 646B95376F6C166E X-77F55803: 4F1203BC0FB41BD9806C989EC2150E33C13C456498AA74328729F4FEF7F411FF182A05F538085040D04444A09E85596D66EF327A38FAC37DBA5C1F00B6E9AD8B75E89EF093D26E7D X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE7B8387EA37EC1BE7DEA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F790063748D05F5E01EE6C998638F802B75D45FF36EB9D2243A4F8B5A6FCA7DBDB1FC311F39EFFDF887939037866D6147AF826D833D22582C66CEF6DC843CFE64D8181B8117882F4460429724CE54428C33FAD305F5C1EE8F4F765FCC7A3838EBC35966AA471835C12D1D9774AD6D5ED66289B52BA9C0B312567BB23117882F4460429728776938767073520599709FD55CB46A6618001F51B5FD3F9D2E47CDBA5A96583BA9C0B312567BB2376E601842F6C81A19E625A9149C048EE41BF15D38FB6CB3AFCE65BE3358055BDD8FC6C240DEA7642DBF02ECDB25306B2B78CF848AE20165D0A6AB1C7CE11FEE3DA7BFA4571439BB2302FCEF25BFAB345C4224003CC836476E2F48590F00D11D6E2021AF6380DFAD1A18204E546F3947CB11811A4A51E3B096D1867E19FE1407959CC434672EE6371089D37D7C0E48F6C8AA50765F7900637FB177F6A8366F17BEFF80C71ABB335746BA297DBC24807EABDAD6C7F3747799A X-C1DE0DAB: 0D63561A33F958A5773F193363908434A59A189A3A238BDC3C89BB697E7BD7994EAF44D9B582CE87C8A4C02DF684249CC203C45FEA855C8F X-C8649E89: 4E36BF7865823D7055A7F0CF078B5EC49A30900B95165D34C786159FDC4342B0ECEA54E99CE5F8DB2F2C15C670F0A257F7813EBCCCD8897F9230CB7506509F421D7E09C32AA3244C110A72FF8D87FD91EB647A69CF125BD73C6EB905E3A8056B927AC6DF5659F194 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5ycPtXkTV4k65bRjmOUUP8cvGozZ33TWg5HZplvhhXbhDGzqmQDTd6OAevLeAnq3Ra9uf7zvY2zzsIhlcp/Y7m53TZgf2aB4JOg4gkr2biojgB/I+mAIlFE+4Zv3kPd02Q== X-Mailru-Sender: 2FEBA92C8E508479FE7B9A1DF348D531626392C2CE6982C616D3EBE5EE203691329FE07998C0EACE2326FE6F2A341ACE0FB9F97486540B4CD9E8847AB8CFED4D9ABF8A61C016C2CFB0DAF586E7D11B3E67EA787935ED9F1B X-Mras: Ok Subject: [Tarantool-patches] [PATCH luajit 4/7] test: make skipcond helper more convenient X-BeenThere: tarantool-patches@dev.tarantool.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Igor Munkin via Tarantool-patches Reply-To: Igor Munkin Cc: tarantool-patches@dev.tarantool.org Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" This patch provides two enhancements for : 1. As a result of the patch, becomes multi-conditional, so there is no need to concatenate one huge and complex condition with one huge unreadable reason. Now skipcond receives the table with conditions and skips the test if one of the given conditions is met. 2. yields the test object, that allows to chain skipcond call right next to the test constructor. Finally as a result of the aforementioned changes is moved to tap.lua. Relates to tarantool/tarantool#8252 Co-authored-by: Sergey Kaplun Signed-off-by: Igor Munkin --- .../gh-4199-gc64-fuse.test.lua | 11 +++++---- .../gh-4427-ffi-sandwich.test.lua | 11 ++++----- .../gh-5813-resolving-of-c-symbols.test.lua | 23 ++++++++----------- ...4-add-proto-trace-sysprof-default.test.lua | 14 ++++------- .../lj-430-maxirconst.test.lua | 10 ++++---- .../lj-603-err-snap-restore.test.lua | 18 ++++++++------- ...lj-672-cdata-allocation-recording.test.lua | 12 +++++----- .../lj-906-fix-err-mem.test.lua | 12 +++++----- .../lj-flush-on-trace.test.lua | 11 ++++----- .../misclib-getmetrics-capi.test.lua | 17 ++++++-------- .../misclib-getmetrics-lapi.test.lua | 13 ++++------- .../misclib-memprof-lapi.test.lua | 22 +++++++++--------- .../misclib-sysprof-capi.test.lua | 18 ++++++--------- .../misclib-sysprof-lapi.test.lua | 17 +++++--------- test/tarantool-tests/tap.lua | 12 ++++++++++ test/tarantool-tests/utils.lua | 8 ------- 16 files changed, 104 insertions(+), 125 deletions(-) diff --git a/test/tarantool-tests/gh-4199-gc64-fuse.test.lua b/test/tarantool-tests/gh-4199-gc64-fuse.test.lua index 4d69250f..65f9faac 100644 --- a/test/tarantool-tests/gh-4199-gc64-fuse.test.lua +++ b/test/tarantool-tests/gh-4199-gc64-fuse.test.lua @@ -1,11 +1,12 @@ --- The test is GC64 only. -local ffi = require('ffi') -require('utils').skipcond(not ffi.abi('gc64'), 'test is GC64 only') - local tap = require('tap') -local test = tap.test('gh-4199-gc64-fuse') +local test = tap.test('gh-4199-gc64-fuse'):skipcond({ + ['Test requires GC64 mode enabled'] = not require('ffi').abi('gc64'), +}) + test:plan(1) +local ffi = require('ffi') + collectgarbage() -- Chomp memory in currently allocated GC space. collectgarbage('stop') diff --git a/test/tarantool-tests/gh-4427-ffi-sandwich.test.lua b/test/tarantool-tests/gh-4427-ffi-sandwich.test.lua index f4795db0..2d6c3b06 100644 --- a/test/tarantool-tests/gh-4427-ffi-sandwich.test.lua +++ b/test/tarantool-tests/gh-4427-ffi-sandwich.test.lua @@ -1,14 +1,11 @@ -local utils = require('utils') - --- Disabled on *BSD due to #4819. -utils.skipcond(jit.os == 'BSD', 'Disabled due to #4819') - local tap = require('tap') +local test = tap.test('gh-4427-ffi-sandwich'):skipcond({ + ['Disabled on *BSD due to #4819'] = jit.os == 'BSD', +}) -local test = tap.test('gh-4427-ffi-sandwich') test:plan(2) -local script = utils.makecmd(arg, { +local script = require('utils').makecmd(arg, { -- TODO: Leave another toxic comment regarding SIP on macOS. env = { DYLD_LIBRARY_PATH = os.getenv('DYLD_LIBRARY_PATH') }, redirect = '2>&1', 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 index e0b6d86d..019fed29 100644 --- a/test/tarantool-tests/gh-5813-resolving-of-c-symbols.test.lua +++ b/test/tarantool-tests/gh-5813-resolving-of-c-symbols.test.lua @@ -1,18 +1,15 @@ --- Memprof is implemented for x86 and x64 architectures only. -local utils = require("utils") - -utils.skipcond( - jit.arch ~= "x86" and jit.arch ~= "x64" or jit.os ~= "Linux", - jit.arch.." architecture or "..jit.os.. - " OS is NIY for memprof c symbols resolving" -) - local tap = require("tap") -local test = tap.test("gh-5813-resolving-of-c-symbols") +local test = tap.test("gh-5813-resolving-of-c-symbols"):skipcond({ + ["Memprof is implemented for x86_64 only"] = jit.arch ~= "x86" and jit.arch ~= "x64", + ["Memprof is implemented for Linux only"] = jit.os ~= "Linux", +}) + test:plan(5) -jit.off() -jit.flush() +-- XXX: Run JIT tuning functions in a safe frame to avoid errors +-- thrown when LuaJIT is compiled with JIT engine disabled. +pcall(jit.off) +pcall(jit.flush) local bufread = require "utils.bufread" local symtab = require "utils.symtab" @@ -20,7 +17,7 @@ local testboth = require "resboth" local testhash = require "reshash" local testgnuhash = require "resgnuhash" -local TMP_BINFILE = utils.profilename("memprofdata.tmp.bin") +local TMP_BINFILE = require("utils").profilename("memprofdata.tmp.bin") local function tree_contains(node, name) if node == nil then 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 index 15bd0a8b..f139b6b5 100644 --- 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 @@ -1,13 +1,9 @@ --- Sysprof is implemented for x86 and x64 architectures only. -require('utils').skipcond( - jit.arch ~= 'x86' and jit.arch ~= 'x64' or jit.os ~= 'Linux' - or require('ffi').abi('gc64'), - jit.arch..' architecture or '..jit.os.. - ' OS is NIY for sysprof' -) - local tap = require('tap') -local test = tap.test('gh-7264-add-proto-trace-sysprof-default.test.lua') +local test = tap.test('gh-7264-add-proto-trace-sysprof-default'):skipcond({ + ['Sysprof is implemented for x86_64 only'] = jit.arch ~= 'x86' and jit.arch ~= 'x64', + ['Sysprof is implemented for Linux only'] = jit.os ~= 'Linux', +}) + test:plan(2) local chunk = [[ diff --git a/test/tarantool-tests/lj-430-maxirconst.test.lua b/test/tarantool-tests/lj-430-maxirconst.test.lua index 8bc523c2..633ab676 100644 --- a/test/tarantool-tests/lj-430-maxirconst.test.lua +++ b/test/tarantool-tests/lj-430-maxirconst.test.lua @@ -1,12 +1,12 @@ --- Disabled on *BSD due to #4819. -require('utils').skipcond(jit.os == 'BSD', 'Disabled due to #4819') - local tap = require('tap') -local traceinfo = require('jit.util').traceinfo +local test = tap.test('lj-430-maxirconst'):skipcond({ + ['Disabled on *BSD due to #4819'] = jit.os == 'BSD', +}) -local test = tap.test('lj-430-maxirconst') test:plan(2) +local traceinfo = require('jit.util').traceinfo + -- This function has only 3 IR constant. local function irconst3() end diff --git a/test/tarantool-tests/lj-603-err-snap-restore.test.lua b/test/tarantool-tests/lj-603-err-snap-restore.test.lua index b5353e85..c67da00e 100644 --- a/test/tarantool-tests/lj-603-err-snap-restore.test.lua +++ b/test/tarantool-tests/lj-603-err-snap-restore.test.lua @@ -1,9 +1,15 @@ local tap = require('tap') - -- Test to demonstrate the incorrect JIT behaviour when an error -- is raised on restoration from the snapshot. -- See also https://github.com/LuaJIT/LuaJIT/issues/603. -local test = tap.test('lj-603-err-snap-restore.test.lua') +local test = tap.test('lj-603-err-snap-restore'):skipcond({ + ['Disabled on *BSD due to #4819'] = jit.os == 'BSD', + -- XXX: The different amount of stack slots is in-use for + -- Tarantool at start, so just skip test for it. + -- luacheck: no global + ['Disable test for Tarantool'] = _TARANTOOL, +}) + test:plan(2) -- XXX: This is fragile. We need a specific amount of Lua stack @@ -15,7 +21,7 @@ test:plan(2) -- error handling"), etc.). -- This amount is suited well for GC64 and non-GC64 mode. -- luacheck: no unused -local _, _, _, _, _, _ +local _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ local handler_is_called = false local recursive_f @@ -38,11 +44,7 @@ end recursive_f() test:ok(true) --- Disabled on *BSD due to #4819. --- XXX: The different amount of stack slots is in-use for --- Tarantool at start, so just skip test for it. --- luacheck: no global -test:ok(jit.os == 'BSD' or _TARANTOOL or not handler_is_called) +test:ok(not handler_is_called) -- XXX: Don't use `os.exit()` here by intention. When error on -- snap restoration is raised, `err_unwind()` doesn't stop on diff --git a/test/tarantool-tests/lj-672-cdata-allocation-recording.test.lua b/test/tarantool-tests/lj-672-cdata-allocation-recording.test.lua index 1dc741d8..2165afe3 100644 --- a/test/tarantool-tests/lj-672-cdata-allocation-recording.test.lua +++ b/test/tarantool-tests/lj-672-cdata-allocation-recording.test.lua @@ -1,13 +1,13 @@ --- Disabled on *BSD due to #4819. -require('utils').skipcond(jit.os == 'BSD', 'Disabled due to #4819') +local tap = require('tap') +local test = tap.test('lj-672-cdata-allocation-recording'):skipcond({ + ['Disabled on *BSD due to #4819'] = jit.os == 'BSD', +}) + +test:plan(1) local ffi = require('ffi') local traceinfo = require('jit.util').traceinfo -local tap = require('tap') -local test = tap.test('lj-672-cdata-allocation-recording') -test:plan(1) - -- Structure with array. ffi.cdef('struct my_struct {int a; char d[8];}') diff --git a/test/tarantool-tests/lj-906-fix-err-mem.test.lua b/test/tarantool-tests/lj-906-fix-err-mem.test.lua index 450beeff..6c6df338 100644 --- a/test/tarantool-tests/lj-906-fix-err-mem.test.lua +++ b/test/tarantool-tests/lj-906-fix-err-mem.test.lua @@ -1,13 +1,13 @@ local tap = require('tap') -local ffi = require('ffi') -local table_new = require('table.new') - --- Avoid test to be killed. -require('utils').skipcond(ffi.abi('gc64'), 'test is not GC64 only') +local test = tap.test('lj-906-fix-err-mem'):skipcond({ + ['Test requires GC64 mode disabled'] = require('ffi').abi('gc64'), +}) -local test = tap.test('lj-906-fix-err-mem') test:plan(1) +local ffi = require('ffi') +local table_new = require('table.new') + local KB = 1024 local MB = 1024 * KB local sizes = {8 * MB, 8 * KB, 8} diff --git a/test/tarantool-tests/lj-flush-on-trace.test.lua b/test/tarantool-tests/lj-flush-on-trace.test.lua index cf92757c..60a0ccbd 100644 --- a/test/tarantool-tests/lj-flush-on-trace.test.lua +++ b/test/tarantool-tests/lj-flush-on-trace.test.lua @@ -1,14 +1,11 @@ -local utils = require('utils') - --- Disabled on *BSD due to #4819. -utils.skipcond(jit.os == 'BSD', 'Disabled due to #4819') - local tap = require('tap') +local test = tap.test('lj-flush-on-trace'):skipcond({ + ['Disabled on *BSD due to #4819'] = jit.os == 'BSD', +}) -local test = tap.test('lj-flush-on-trace') test:plan(2) -local script = utils.makecmd(arg, { +local script = require('utils').makecmd(arg, { -- TODO: Leave another toxic comment regarding SIP on macOS. env = { DYLD_LIBRARY_PATH = os.getenv('DYLD_LIBRARY_PATH') }, redirect = '2>&1', diff --git a/test/tarantool-tests/misclib-getmetrics-capi.test.lua b/test/tarantool-tests/misclib-getmetrics-capi.test.lua index 42a9adf9..a41a1c7a 100644 --- a/test/tarantool-tests/misclib-getmetrics-capi.test.lua +++ b/test/tarantool-tests/misclib-getmetrics-capi.test.lua @@ -1,12 +1,15 @@ -local utils = require('utils') +local tap = require('tap') +local test = tap.test("clib-misc-getmetrics"):skipcond({ + ['Disabled on *BSD due to #4819'] = jit.os == 'BSD', +}) --- Disabled on *BSD due to #4819. -utils.skipcond(jit.os == 'BSD', 'Disabled due to #4819') +test:plan(11) local path = arg[0]:gsub('%.test%.lua', '') local suffix = package.cpath:match('?.(%a+);') package.cpath = ('%s/?.%s;'):format(path, suffix)..package.cpath +local maxnins = require('utils').const.maxnins local jit_opt_default = { 3, -- level "hotloop=56", @@ -14,11 +17,6 @@ local jit_opt_default = { "minstitch=0", } -local tap = require('tap') - -local test = tap.test("clib-misc-getmetrics") -test:plan(11) - local testgetmetrics = require("testgetmetrics") test:ok(testgetmetrics.base()) @@ -96,8 +94,7 @@ 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=%d"):format(utils.const.maxnins)) + jit.opt.start(0, "hotloop=1", "hotexit=2", ("minstitch=%d"):format(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 0c170d0c..e5ee7902 100644 --- a/test/tarantool-tests/misclib-getmetrics-lapi.test.lua +++ b/test/tarantool-tests/misclib-getmetrics-lapi.test.lua @@ -2,16 +2,14 @@ -- 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. -utils.skipcond(jit.os == 'BSD', 'Disabled due to #4819') - local tap = require('tap') +local test = tap.test("lib-misc-getmetrics"):skipcond({ + ['Disabled on *BSD due to #4819'] = jit.os == 'BSD', +}) -local test = tap.test("lib-misc-getmetrics") test:plan(10) +local maxnins = require('utils').const.maxnins local jit_opt_default = { 3, -- level "hotloop=56", @@ -281,8 +279,7 @@ 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=%d"):format(utils.const.maxnins)) + jit.opt.start(0, "hotloop=1", "hotexit=2", ("minstitch=%d"):format(maxnins)) local function foo(i) -- math.fmod is not yet compiled! diff --git a/test/tarantool-tests/misclib-memprof-lapi.test.lua b/test/tarantool-tests/misclib-memprof-lapi.test.lua index bae0c27c..accb1ee1 100644 --- a/test/tarantool-tests/misclib-memprof-lapi.test.lua +++ b/test/tarantool-tests/misclib-memprof-lapi.test.lua @@ -1,14 +1,14 @@ --- Memprof is implemented for x86 and x64 architectures only. -local utils = require("utils") - -utils.skipcond( - jit.arch ~= "x86" and jit.arch ~= "x64", - jit.arch.." architecture is NIY for memprof" -) - +-- XXX: This comment is a reminder to reimplement memprof tests +-- assertions to make them more indepentent to the changes made. +-- Now I just leave this 5 lines comment to preserve line numbers. +-- TODO: This line will be removed in the next patch. +-- TODO: This line will be removed in the next patch. local tap = require("tap") +local test = tap.test("misc-memprof-lapi"):skipcond({ + ["Memprof is implemented for x86_64 only"] = jit.arch ~= "x86" and + jit.arch ~= "x64", +}) -local test = tap.test("misc-memprof-lapi") test:plan(5) local jit_opt_default = { @@ -28,8 +28,8 @@ local memprof = require "memprof.parse" local process = require "memprof.process" local symtab = require "utils.symtab" -local TMP_BINFILE = utils.profilename("memprofdata.tmp.bin") -local BAD_PATH = utils.profilename("memprofdata/tmp.bin") +local TMP_BINFILE = require("utils").profilename("memprofdata.tmp.bin") +local BAD_PATH = require("utils").profilename("memprofdata/tmp.bin") local SRC_PATH = "@"..arg[0] local function default_payload() diff --git a/test/tarantool-tests/misclib-sysprof-capi.test.lua b/test/tarantool-tests/misclib-sysprof-capi.test.lua index dad0fe4a..2b0e25ae 100644 --- a/test/tarantool-tests/misclib-sysprof-capi.test.lua +++ b/test/tarantool-tests/misclib-sysprof-capi.test.lua @@ -1,21 +1,17 @@ --- Sysprof is implemented for x86 and x64 architectures only. -local utils = require("utils") -utils.skipcond( - jit.arch ~= "x86" and jit.arch ~= "x64" or jit.os ~= "Linux", - jit.arch.." architecture or "..jit.os.. - " OS is NIY for sysprof" -) +local tap = require("tap") +local test = tap.test("clib-misc-sysprof"):skipcond({ + ["Sysprof is implemented for x86_64 only"] = jit.arch ~= "x86" and jit.arch ~= "x64", + ["Sysprof is implemented for Linux only"] = jit.os ~= "Linux", +}) + +test:plan(2) local testsysprof = require("testsysprof") -local tap = require("tap") local jit = require('jit') jit.off() -local test = tap.test("clib-misc-sysprof") -test:plan(2) - test:ok(testsysprof.base()) test:ok(testsysprof.validation()) diff --git a/test/tarantool-tests/misclib-sysprof-lapi.test.lua b/test/tarantool-tests/misclib-sysprof-lapi.test.lua index 4bf10e8d..8dc36592 100644 --- a/test/tarantool-tests/misclib-sysprof-lapi.test.lua +++ b/test/tarantool-tests/misclib-sysprof-lapi.test.lua @@ -1,14 +1,9 @@ --- Sysprof is implemented for x86 and x64 architectures only. -local utils = require("utils") -utils.skipcond( - jit.arch ~= "x86" and jit.arch ~= "x64" or jit.os ~= "Linux", - jit.arch.." architecture or "..jit.os.. - " OS is NIY for sysprof" -) - local tap = require("tap") +local test = tap.test("misc-sysprof-lapi"):skipcond({ + ["Sysprof is implemented for x86_64 only"] = jit.arch ~= "x86" and jit.arch ~= "x64", + ["Sysprof is implemented for Linux only"] = jit.os ~= "Linux", +}) -local test = tap.test("misc-sysprof-lapi") test:plan(19) jit.off() @@ -18,8 +13,8 @@ local bufread = require("utils.bufread") local symtab = require("utils.symtab") local sysprof = require("sysprof.parse") -local TMP_BINFILE = utils.profilename("sysprofdata.tmp.bin") -local BAD_PATH = utils.profilename("sysprofdata/tmp.bin") +local TMP_BINFILE = require("utils").profilename("sysprofdata.tmp.bin") +local BAD_PATH = require("utils").profilename("sysprofdata/tmp.bin") local function payload() local function fib(n) diff --git a/test/tarantool-tests/tap.lua b/test/tarantool-tests/tap.lua index a1f54d20..ac04c01d 100644 --- a/test/tarantool-tests/tap.lua +++ b/test/tarantool-tests/tap.lua @@ -304,6 +304,17 @@ local function check(test) return test.planned == test.total and test.failed == 0 end +local function skipcond(test, conditions) + for message, condition in pairs(conditions) do + if condition then + test:plan(1) + test:skip(message) + os.exit(test:check() and 0 or 1) + end + end + return test +end + test_mt = { __index = { test = new, @@ -313,6 +324,7 @@ test_mt = { ok = ok, fail = fail, skip = skip, + skipcond = skipcond, is = is, isnt = isnt, isnil = isnil, diff --git a/test/tarantool-tests/utils.lua b/test/tarantool-tests/utils.lua index 41a7c22a..4fb66600 100644 --- a/test/tarantool-tests/utils.lua +++ b/test/tarantool-tests/utils.lua @@ -67,14 +67,6 @@ function M.makecmd(arg, opts) }) end -function M.skipcond(condition, message) - if not condition then return end - local test = tap.test(arg[0]:match('/?(.+)%.test%.lua')) - test:plan(1) - test:skip(message) - os.exit(test:check() and 0 or 1) -end - function M.hasbc(f, bytecode) assert(type(f) == 'function', 'argument #1 should be a function') assert(type(bytecode) == 'string', 'argument #2 should be a string') -- 2.30.2