[Tarantool-patches] [PATCH v2 luajit 03/30] test: adapt Lua 5.1 suite for out-of-source build

Sergey Ostanevich sergos at tarantool.org
Fri Mar 26 14:07:06 MSK 2021


LGTM, just minor changes to commit message.

Sergos


> On 26 Mar 2021, at 10:42, Sergey Kaplun <skaplun at tarantool.org> wrote:
> 
> When tests are run out-of-source redefined `dofile()` function
                                  ^ I had problem reading here the 
‘out-of-source redefined’. Can you put the ‘when..’ to the appropriate
place at the end of the sentence? ’The redefined … when … ‘
 
> failed to find file to load. So, fullpath is detected considering
> `arg[0]` value. Moreover, some tests use `loadfile()` instead, so
> their argument is adjusted to the full path to the files.
> 
> However, test in <verybig.lua> creates a temporary file
> and executes it via `dofile()` too, so this case is handled by
> the second argument -- `prefix` equals an empty string for
> current working directory.
> 
> Part of tarantool/tarantool#5845
> Part of tarantool/tarantool#4473
> ---
> test/PUC-Lua-5.1-tests/all.lua     | 17 +++++++++++++----
> test/PUC-Lua-5.1-tests/verybig.lua |  4 +++-
> 2 files changed, 16 insertions(+), 5 deletions(-)
> 
> diff --git a/test/PUC-Lua-5.1-tests/all.lua b/test/PUC-Lua-5.1-tests/all.lua
> index 8c4afac..85beff8 100755
> --- a/test/PUC-Lua-5.1-tests/all.lua
> +++ b/test/PUC-Lua-5.1-tests/all.lua
> @@ -58,9 +58,18 @@ end
> --
> -- redefine dofile to run files through dump/undump
> --
> -dofile = function (n)
> +-- LuaJIT: Adapt tests for testing with out-of-source build.
> +-- XXX: Test in <verybig.lua> creates a temporary file
> +-- and executes it via `dofile()` too, so this case is handled by
> +-- the second argument -- `prefix` equals an empty string for
> +-- current working directory.
> +-- <all.lua> is in the same directory, where are other common
> +-- executed files situated.
> +local path_to_sources = arg[0]:gsub('([^/]+)%.lua$', '')
> +dofile = function (n, prefix)
> +  local pr = prefix or path_to_sources
>   showmem()
> -  local f = assert(loadfile(n))
> +  local f = assert(loadfile(pr..n))
>   local b = string.dump(f)
>   f = assert(loadstring(b))
>   return f()
> @@ -77,7 +86,7 @@ do
>   end
> end
> 
> -local f = assert(loadfile('gc.lua'))
> +local f = assert(loadfile(path_to_sources..'gc.lua'))
> f()
> dofile('db.lua')
> assert(dofile('calls.lua') == deep and deep)
> @@ -88,7 +97,7 @@ assert(dofile('locals.lua') == 5)
> dofile('constructs.lua')
> dofile('code.lua')
> do
> -  local f = coroutine.wrap(assert(loadfile('big.lua')))
> +  local f = coroutine.wrap(assert(loadfile(path_to_sources..'big.lua')))
>   assert(f() == 'b')
>   assert(f() == 'a')
> end
> diff --git a/test/PUC-Lua-5.1-tests/verybig.lua b/test/PUC-Lua-5.1-tests/verybig.lua
> index 59e0142..edb170d 100644
> --- a/test/PUC-Lua-5.1-tests/verybig.lua
> +++ b/test/PUC-Lua-5.1-tests/verybig.lua
> @@ -93,7 +93,9 @@ for s in string.gmatch(prog, "$([^$]+)") do
>   if not n then io.write(s) else F[n]() end
> end
> io.close()
> -result = dofile(file)
> +-- LuaJIT: Adapt test for testing with out-of-source build.
> +-- See comment in <all.lua> near `dofile()` redefinition.
> +result = dofile(file, "")
> assert(os.remove(file))
> print'OK'
> return result
> -- 
> 2.31.0
> 



More information about the Tarantool-patches mailing list