From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp56.i.mail.ru (smtp56.i.mail.ru [217.69.128.36]) (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 015C24696C4 for ; Sun, 5 Apr 2020 22:32:47 +0300 (MSK) References: <0f113c2f2f746a26f85575d7904235e8920dc5a3.1585312984.git.imun@tarantool.org> From: Vladislav Shpilevoy Message-ID: <0376106b-1398-f888-16a8-1498212a2915@tarantool.org> Date: Sun, 5 Apr 2020 21:32:45 +0200 MIME-Version: 1.0 In-Reply-To: <0f113c2f2f746a26f85575d7904235e8920dc5a3.1585312984.git.imun@tarantool.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [Tarantool-patches] [PATCH 3/4] test: enable luajit-tap:gh-4427-ffi-sandwich tests List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Igor Munkin , Sergey Ostanevich Cc: tarantool-patches@dev.tarantool.org > if (NOT ${PROJECT_BINARY_DIR} STREQUAL ${PROJECT_SOURCE_DIR}) > diff --git a/test/app-tap/gh-4427-ffi-sandwich.test.lua b/test/app-tap/gh-4427-ffi-sandwich.test.lua > new file mode 100755 > index 000000000..602af88d4 > --- /dev/null > +++ b/test/app-tap/gh-4427-ffi-sandwich.test.lua > @@ -0,0 +1,30 @@ > +#!/usr/bin/env tarantool > + > +local tap = require('tap') > + > +local test = tap.test('gh-4427-ffi-sandwich') > + > +local cmd = string.gsub( > + 'LUA_CPATH=$/?.so LD_LIBRARY_PATH=$ tarantool 2>&1 $/test.lua %d %d', > + '%$', os.getenv('BUILDDIR') .. '/test/luajit-tap/gh-4427-ffi-sandwich') > + > +local checks = { > + { hotloop = 1, trigger = 1, success = true }, > + { hotloop = 1, trigger = 2, success = false }, Why hotloop is needed, if it is always 1? > +} > + > +test:plan(#checks) > + > +for _, ch in pairs(checks) do > + local res > + local proc = io.popen(cmd:format(ch.hotloop, ch.trigger)) > + for s in proc:lines('*l') do res = s end What is '*l'? > + assert(res, 'proc:lines failed') > + if ch.success then > + test:is(tonumber(res), ch.hotloop + ch.trigger + 1) > + else > + test:is(res, 'Lua VM re-entrancy is detected while executing the trace') > + end > +end > + > +os.exit(test:check() and 0 or 1) Oh God. So luajit already contains cyclic dependencies. It stores suite.ini file in its test folder, which of course is useless for the luajit alone. Since suite.ini file is here, why do you need to run tests from there in such a complex way? Test-run should already be able to peek tests from there (and it does). It probably does not work for your test only because you put it into a folder. I propose you to flatten it, like it is done for function1.test.lua. You still can keep issue name in form of 'gh-####-' in file names to keep them related. They would be gh-4427-ffi-sandwich.test.lua gh-4427-ffi-sandwich.c And after build: + gh-4427-ffi.sandwich.so/.dylib Then you don't a need separate file in app-tap.