Tarantool development patches archive
 help / color / mirror / Atom feed
From: Igor Munkin via Tarantool-patches <tarantool-patches@dev.tarantool.org>
To: Maxim Kokryashkin <m.kokryashkin@tarantool.org>
Cc: tarantool-patches@dev.tarantool.org
Subject: Re: [Tarantool-patches] [PATCH 2/4] test: out-of-source testing
Date: Tue, 6 Jul 2021 23:29:34 +0300
Message-ID: <20210706202934.GC11494@tarantool.org> (raw)
In-Reply-To: <666cd23f865dbfe3b4986823fa3b9689493eff39.1625484589.git.max.kokryashkin@gmail.com>

Max,

Thanks for the patch! I left several comments below, please consider
them in addition to the main comments in the cover letter.

On 05.07.21, Maxim Kokryashkin wrote:
> From: Maxim Kokryashkin <m.kokryashkin@tarantool.org>
> 
> Part of tarantool/tarantool#5970
> 
> ---
> The patch `fperrad/lua-Harness@60da289` is similar to the patch 
> `tarantool/luajit@d11c5bb`, but `make_specific_checks()` was 
> renamed to `_dofile()` by maintainer. Another difference is that 
> it seems like there is no definition for `_dofile()` in mainline 
> lua-Harness, so it should be user-defined somewhere. If it is not, 
> then `_dofile()` will act like `dofile()`. Considering this, we 
> should keep `make_specific_checks` implementation from 
> `tarantool/luajit@d11c5bb`, but rename it to `_dofile` and move 
> to `tap.lua`.

In addition to all comments for the first patch, I would like to clarify
the semantics of the change. The general idea was to give the user an
opportunity to *overload* <_dofile> for his own purposes, but the
default behaviour should be the same as <dofile>. We have been already
using this technique for PUC-Rio Lua 5.1 test suite and <_dofile> is
already defined in luajit-test-init.lua (please adjust the comment,
since as a result of the patch, <_dofile> is also used in lua-Harness
suite). Considering all comments, I propose the following rewording:

| The patch[1] from lua-Harness suite is quite similar to commit
| d11c5bbc08a118b11167c5d455d4024607dab662 ('test: adjust lua-Harness
| tests that use dofile'), with the one difference (except the naming):
| `make_specific_checks()` provides the particular behaviour to run the
| tests for out-of-source build, however `_dofile()` allows user to
| overload this function considering his purposes. If user leave
| `_dofile()` untouched, it defaults to `dofile()` Lua standard library
| function.
|
| It's worth to mention, that LuaJIT testing machinery has been using
| such approach since commit 734cc0f1d508429c2c3c46bd1860398db0051060
| ('test: adapt PUC-Rio suite for out-of-source build') and `_dofile()`
| behaviour for running tests when out of source build is used is
| already defined in luajit-test-init.lua.
|
| [1]: https://framagit.org/fperrad/lua-Harness/-/commit/60da289
|
| Part of tarantool/tarantool#5970
| Part of tarantool/tarantool#4473

If you are OK with the part above, feel free to paste it as is into the
commit message for the next version of the patch.

> 
>  test/lua-Harness-tests/101-boolean.t   | 2 +-
>  test/lua-Harness-tests/102-function.t  | 2 +-
>  test/lua-Harness-tests/103-nil.t       | 2 +-
>  test/lua-Harness-tests/104-number.t    | 2 +-
>  test/lua-Harness-tests/105-string.t    | 2 +-
>  test/lua-Harness-tests/106-table.t     | 2 +-
>  test/lua-Harness-tests/107-thread.t    | 2 +-
>  test/lua-Harness-tests/108-userdata.t  | 2 +-
>  test/lua-Harness-tests/203-lexico.t    | 8 ++++----
>  test/lua-Harness-tests/231-metatable.t | 2 +-
>  test/lua-Harness-tests/301-basic.t     | 2 +-
>  test/lua-Harness-tests/305-utf8.t      | 2 +-
>  test/lua-Harness-tests/404-ext.t       | 2 +-
>  test/lua-Harness-tests/tap.lua         | 4 ++++
>  14 files changed, 20 insertions(+), 16 deletions(-)
> 

<snipped>

> diff --git a/test/lua-Harness-tests/305-utf8.t b/test/lua-Harness-tests/305-utf8.t
> index 6c125388..1e975e6d 100755
> --- a/test/lua-Harness-tests/305-utf8.t
> +++ b/test/lua-Harness-tests/305-utf8.t
> @@ -40,7 +40,7 @@ if not utf8 then
>      nok(has_utf8, "no has_utf8")
>  else
>      plan'no_plan'
> -    make_specific_checks'lexico53/utf8.t'
> +    _dofile'lexico53/utf8.t'
>      if _VERSION >= 'Lua 5.4' then
>          make_specific_checks'lexico54/utf8.t'

This one should be also changed to <_dofile>.

>      end

<snipped>

> diff --git a/test/lua-Harness-tests/tap.lua b/test/lua-Harness-tests/tap.lua
> index 86cca4e0..b17709e5 100644
> --- a/test/lua-Harness-tests/tap.lua
> +++ b/test/lua-Harness-tests/tap.lua
> @@ -9,6 +9,10 @@
>  
>  ]]
>  
> +function _dofile (filename)
> +    return dofile(arg[0]:gsub('([^/]+)%.t$', '') .. filename)
> +end

At first, <_dofile> should use <dofile> for the default behaviour.
Furthermore, such definition can redefine the function specified by
user, if this function is created after the user-defined one. So, you
need to check whether <_dofile> is defined or use <dofile> if it is not.
BTW, please drop <make_specific_checks> routine from tap.lua, since it's
not used anymore.

> +
>  function _retrieve_progname ()
>      local i = 0
>      while arg[i] do
> -- 
> 2.31.1
> 

-- 
Best regards,
IM

  reply	other threads:[~2021-07-06 20:53 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-05 11:49 [Tarantool-patches] [PATCH 0/4] test: bump lua-Harness suite Maxim Kokryashkin via Tarantool-patches
2021-07-05 11:49 ` [Tarantool-patches] [PATCH 1/4] test: resolving program name Maxim Kokryashkin via Tarantool-patches
2021-07-06 20:29   ` Igor Munkin via Tarantool-patches
2021-07-05 11:49 ` [Tarantool-patches] [PATCH 2/4] test: out-of-source testing Maxim Kokryashkin via Tarantool-patches
2021-07-06 20:29   ` Igor Munkin via Tarantool-patches [this message]
2021-07-05 11:49 ` [Tarantool-patches] [PATCH 3/4] test: CI-environment Maxim Kokryashkin via Tarantool-patches
2021-07-06 20:29   ` Igor Munkin via Tarantool-patches
2021-07-05 11:49 ` [Tarantool-patches] [PATCH 4/4] test: TAP module name collisions Maxim Kokryashkin via Tarantool-patches
2021-07-06 20:30   ` Igor Munkin via Tarantool-patches
2021-07-06 20:29 ` [Tarantool-patches] [PATCH 0/4] test: bump lua-Harness suite 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=20210706202934.GC11494@tarantool.org \
    --to=tarantool-patches@dev.tarantool.org \
    --cc=imun@tarantool.org \
    --cc=m.kokryashkin@tarantool.org \
    /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

Tarantool development patches archive

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://lists.tarantool.org/tarantool-patches/0 tarantool-patches/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 tarantool-patches tarantool-patches/ https://lists.tarantool.org/tarantool-patches \
		tarantool-patches@dev.tarantool.org.
	public-inbox-index tarantool-patches

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git