From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpng1.m.smailru.net (smtpng1.m.smailru.net [94.100.181.251]) (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 0D3AF4696C3 for ; Fri, 10 Apr 2020 01:05:35 +0300 (MSK) References: <391b2b4e4c8c6d4875f00bdd4dafa08999cc59af.1585312984.git.imun@tarantool.org> <78c7de63-85c7-efbb-3cca-d5d67e151d04@tarantool.org> <20200407233345.GD5713@tarantool.org> From: Vladislav Shpilevoy Message-ID: <729e2d44-8a0d-3e98-b3f3-a84e8a1b9992@tarantool.org> Date: Fri, 10 Apr 2020 00:05:34 +0200 MIME-Version: 1.0 In-Reply-To: <20200407233345.GD5713@tarantool.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [Tarantool-patches] [PATCH 4/4] test: enable luajit-tap:lj-flush-on-trace tests List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Igor Munkin Cc: tarantool-patches@dev.tarantool.org Hi! >>> if (NOT ${PROJECT_BINARY_DIR} STREQUAL ${PROJECT_SOURCE_DIR}) >>> diff --git a/test/app-tap/lj-flush-on-trace.test.lua b/test/app-tap/lj-flush-on-trace.test.lua >>> new file mode 100755 >>> index 000000000..70b7bd9a2 >>> --- /dev/null >>> +++ b/test/app-tap/lj-flush-on-trace.test.lua >>> @@ -0,0 +1,30 @@ >>> +#!/usr/bin/env tarantool >>> + >>> +local tap = require('tap') >>> + >>> +local test = tap.test('lj-flush-on-trace') >>> + >>> +local cmd = string.gsub( >>> + 'LUA_CPATH=$/?.so LD_LIBRARY_PATH=$ tarantool 2>&1 $/test.lua %d %d', >>> + '%$', os.getenv('BUILDDIR') .. '/test/luajit-tap/lj-flush-on-trace') >>> + >>> +local checks = { >>> + { hotloop = 1, trigger = 1, success = true }, >>> + { hotloop = 1, trigger = 2, success = false }, >>> +} >>> + >>> +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 >>> + assert(res, 'proc:lines failed') >> >> This file is exactly the same as the other file for running a >> luajit test in the previous commit. I propose you to move this to >> a separate file, which would provide API to run arbitrary test via >> io.popen. Unless this won't be dropped if you find a way to make >> the new luajit tests runable via test-run as is. > > Sounds rational. They are not the same but quite similar (the difference > is only in the result values). At least first 24 lines of them match almost completely (except file name to start with io.popen), that is more than half of each. I think that part either should be simplified so as there is nothing to extract already (my proposal about io.popen() of self may help, or may not), or just extracted into a common file like test/app-tap/utils/utils.lua You can extract even more if you pass expected output with 'checks' array elements. If you want to do that in scope of luajit tests rework, then add it to the ticket description, please, so as not to forget. > I guess I can do it in scope of #4862[1] > if you're OK with it. > >> >>> + if ch.success then >>> + test:is(res, 'OK') >>> + else >>> + test:is(res, 'JIT mode change is detected while executing the trace') >>> + end >>> +end >>> + >>> +os.exit(test:check() and 0 or 1) >>> > > [1]: https://github.com/tarantool/tarantool/issues/4862 >