From: Maxim Kokryashkin via Tarantool-patches <tarantool-patches@dev.tarantool.org>
To: "Igor Munkin" <imun@tarantool.org>
Cc: tarantool-patches@dev.tarantool.org
Subject: Re: [Tarantool-patches] [PATCH luajit 3/5] test: introduce test:skipall TAP helper
Date: Tue, 28 Feb 2023 10:51:10 +0300 [thread overview]
Message-ID: <1677570670.756422405@f552.i.mail.ru> (raw)
In-Reply-To: <2b510bb3d602fb66b7ee0310ca027f9e8be66480.1677236706.git.imun@tarantool.org>
[-- Attachment #1: Type: text/plain, Size: 3045 bytes --]
Hi, Igor!
Thanks for the patch!
LGTM, except for a few nits regarding the commit message.
>
>>Sometimes one need to skip all tests in the script. TAP13 protocol
>Typo: s/TAP 13/The TAP 13/
>>supports this via the following line:
>>| 1..0 # SKIP <reason>
>>
>>Within this commit <test:skipall> helper is introduced that yields the
>>aforementined line to the TAP consumer and exits the test script. It's
>>worth to mention, that skipall helper is implemented only for root (i.e.
>Typo: s/worth to mention/worth mentioning/
>>test with no parent) tests and subtests are not supported at the moment.
>>The corresponding assertion with FIXME reason is added to <finalize>.
>Typo: s/with/with a/
>>
>>Signed-off-by: Igor Munkin < imun@tarantool.org >
>>---
>> test/tarantool-tests/tap.lua | 23 ++++++++++++++++++++---
>> 1 file changed, 20 insertions(+), 3 deletions(-)
>>
>>diff --git a/test/tarantool-tests/tap.lua b/test/tarantool-tests/tap.lua
>>index a1f54d20..92d59ce9 100644
>>--- a/test/tarantool-tests/tap.lua
>>+++ b/test/tarantool-tests/tap.lua
>>@@ -7,6 +7,12 @@
>> local ffi = require("ffi")
>> local NULL = ffi.new("void *")
>>
>>+local function finalize(test)
>>+ -- TODO: implement finalization for subtests too.
>>+ assert(test.parent == nil, 'FIXME: There is no way to use finalize subtest')
>>+ os.exit(test:check() and 0 or 1)
>>+end
>>+
>> local function indent(level, size)
>> -- Use the default indent size if none is specified.
>> size = tonumber(size) or 4
>>@@ -90,6 +96,11 @@ local function skip(test, message, extra)
>> ok(test, true, message .. " # skip", extra)
>> end
>>
>>+local function skipall(test, reason)
>>+ test:plan(0, reason)
>>+ finalize(test)
>>+end
>>+
>> local function like(test, got, pattern, message, extra)
>> extra = extra or {}
>> extra.got = got
>>@@ -246,7 +257,7 @@ local function new(parent, name, fun, ...)
>> level = level,
>> total = 0,
>> failed = 0,
>>- planned = 0,
>>+ planned = nil,
>> trace = parent == nil and true or parent.trace,
>> -- Set test.strict = true if test:is, test:isnt and
>> -- test:is_deeply must be compared strictly with nil.
>>@@ -266,9 +277,14 @@ local function new(parent, name, fun, ...)
>> return test:check()
>> end
>>
>>-local function plan(test, planned)
>>+local function plan(test, planned, reason)
>>+ if test.planned then
>>+ -- Use <plan> call location in the error message.
>>+ error("plan called twice", 2)
>>+ end
>> test.planned = planned
>>- io.write(indent(test.level), ("1..%d\n"):format(planned))
>>+ local tail = planned == 0 and (" # SKIP %s"):format(reason) or ""
>>+ io.write(indent(test.level), ("1..%d%s\n"):format(planned, tail))
>> end
>>
>> local function check(test)
>>@@ -313,6 +329,7 @@ test_mt = {
>> ok = ok,
>> fail = fail,
>> skip = skip,
>>+ skipall = skipall,
>> is = is,
>> isnt = isnt,
>> isnil = isnil,
>>--
>>2.30.2
>--
>Best regards,
>Maxim Kokryashkin
>
[-- Attachment #2: Type: text/html, Size: 4554 bytes --]
next prev parent reply other threads:[~2023-02-28 7:51 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-27 9:07 [Tarantool-patches] [PATCH luajit 0/5] Tarantool tests enhancements Igor Munkin via Tarantool-patches
2023-02-27 9:07 ` [Tarantool-patches] [PATCH luajit 1/5] ci: use LuaJIT-test target in testing workflows Igor Munkin via Tarantool-patches
2023-02-27 9:41 ` Sergey Kaplun via Tarantool-patches
2023-02-28 7:42 ` Maxim Kokryashkin via Tarantool-patches
2023-02-27 9:07 ` [Tarantool-patches] [PATCH luajit 2/5] test: stop using utils.selfrun in tests Igor Munkin via Tarantool-patches
2023-02-27 10:08 ` Sergey Kaplun via Tarantool-patches
2023-02-27 18:04 ` Igor Munkin via Tarantool-patches
2023-02-28 7:46 ` Maxim Kokryashkin via Tarantool-patches
2023-02-27 9:07 ` [Tarantool-patches] [PATCH luajit 3/5] test: introduce test:skipall TAP helper Igor Munkin via Tarantool-patches
2023-02-27 9:51 ` Sergey Kaplun via Tarantool-patches
2023-02-27 18:04 ` Igor Munkin via Tarantool-patches
2023-02-28 7:51 ` Maxim Kokryashkin via Tarantool-patches [this message]
2023-02-28 16:26 ` Igor Munkin via Tarantool-patches
2023-02-27 9:07 ` [Tarantool-patches] [PATCH luajit 4/5] test: introduce test:skiprest " Igor Munkin via Tarantool-patches
2023-02-27 9:56 ` Sergey Kaplun via Tarantool-patches
2023-02-27 18:04 ` Igor Munkin via Tarantool-patches
2023-02-28 7:55 ` Maxim Kokryashkin via Tarantool-patches
2023-02-28 16:26 ` Igor Munkin via Tarantool-patches
2023-02-27 9:07 ` [Tarantool-patches] [PATCH luajit 5/5] test: make skipcond helper more convenient Igor Munkin via Tarantool-patches
2023-02-27 10:01 ` Sergey Kaplun via Tarantool-patches
2023-02-28 8:10 ` Maxim Kokryashkin via Tarantool-patches
2023-03-02 17:07 ` [Tarantool-patches] [PATCH luajit 0/5] Tarantool tests enhancements Igor Munkin via Tarantool-patches
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1677570670.756422405@f552.i.mail.ru \
--to=tarantool-patches@dev.tarantool.org \
--cc=imun@tarantool.org \
--cc=m.kokryashkin@tarantool.org \
--subject='Re: [Tarantool-patches] [PATCH luajit 3/5] test: introduce test:skipall TAP helper' \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox