[Tarantool-patches] [PATCH v2 luajit 03/26] test: separate LuaJIT helpers from ffi_util.inc

Sergey Bronnikov sergeyb at tarantool.org
Thu Feb 1 18:45:54 MSK 2024


Hi, Sergey

thanks for the patch! LGTM with a minor comment below

On 1/29/24 13:45, Sergey Kaplun wrote:
> This patch moves common helpers from <LuaJIT-tests/common/ffi_util.inc>
> into separate files by analogy with <common/expect_error.lua>. The
> `include()` helper isn't touched since it is used in system dependend
typo: dependent?
> tests, which won't be modified for now.
>
> Part of tarantool/tarantool#9398
> ---
>   test/LuaJIT-tests/common/fails.lua          |  3 +++
>   test/LuaJIT-tests/common/ffi/checkfail.lua  | 14 +++++++++++++
>   test/LuaJIT-tests/common/ffi/checktypes.lua | 15 ++++++++++++++
>   test/LuaJIT-tests/common/ffi_util.inc       | 23 ---------------------
>   4 files changed, 32 insertions(+), 23 deletions(-)
>   create mode 100644 test/LuaJIT-tests/common/fails.lua
>   create mode 100644 test/LuaJIT-tests/common/ffi/checkfail.lua
>   create mode 100644 test/LuaJIT-tests/common/ffi/checktypes.lua
>
> diff --git a/test/LuaJIT-tests/common/fails.lua b/test/LuaJIT-tests/common/fails.lua
> new file mode 100644
> index 00000000..d555a2b5
> --- /dev/null
> +++ b/test/LuaJIT-tests/common/fails.lua
> @@ -0,0 +1,3 @@
> +return function(f, ...)
> +  if pcall(f, ...) ~= false then error("failure expected", 2) end
> +end
> diff --git a/test/LuaJIT-tests/common/ffi/checkfail.lua b/test/LuaJIT-tests/common/ffi/checkfail.lua
> new file mode 100644
> index 00000000..d3ca74e8
> --- /dev/null
> +++ b/test/LuaJIT-tests/common/ffi/checkfail.lua
> @@ -0,0 +1,14 @@
> +local ffi = require("ffi")
> +
> +-- Checker that takes an array of strings that should represent
> +-- different invalid CTypes (a more common pattern). Also, the
> +-- second argument may be also the `loadstring` function to check
> +-- invalid literals or `ffi.cdef` to check invalid C definitions.
> +return function(t, f)
> +  f = f or ffi.typeof
> +  for i=1,1e9 do
> +    local tp = t[i]
> +    if not tp then break end
> +    assert(pcall(f, tp) == false, tp)
> +  end
> +end
> diff --git a/test/LuaJIT-tests/common/ffi/checktypes.lua b/test/LuaJIT-tests/common/ffi/checktypes.lua
> new file mode 100644
> index 00000000..c995d667
> --- /dev/null
> +++ b/test/LuaJIT-tests/common/ffi/checktypes.lua
> @@ -0,0 +1,15 @@
> +local ffi = require("ffi")
> +
> +-- Checker that takes an array with the following each 3 elements:
> +-- 1) Sizeof for the given C type to be checked.
> +-- 2) Alignof for the given C type to be checked.
> +-- 3) String representing the C type.
> +return function(t)
> +  for i=1,1e9,3 do
> +    local tp = t[i+2]
> +    if not tp then break end
> +    local id = ffi.typeof(tp)
> +    assert(ffi.sizeof(id) == t[i], tp)
> +    assert(ffi.alignof(id) == t[i+1], tp)
> +  end
> +end
> diff --git a/test/LuaJIT-tests/common/ffi_util.inc b/test/LuaJIT-tests/common/ffi_util.inc
> index 1eee8dd9..9604d7b0 100644
> --- a/test/LuaJIT-tests/common/ffi_util.inc
> +++ b/test/LuaJIT-tests/common/ffi_util.inc
> @@ -4,29 +4,6 @@
>   
>   local ffi = require("ffi")
>   
> -function checkfail(t, f)
> -  f = f or ffi.typeof
> -  for i=1,1e9 do
> -    local tp = t[i]
> -    if not tp then break end
> -    assert(pcall(f, tp) == false, tp)
> -  end
> -end
> -
> -function checktypes(t)
> -  for i=1,1e9,3 do
> -    local tp = t[i+2]
> -    if not tp then break end
> -    local id = ffi.typeof(tp)
> -    assert(ffi.sizeof(id) == t[i], tp)
> -    assert(ffi.alignof(id) == t[i+1], tp)
> -  end
> -end
> -
> -function fails(f, ...)
> -  if pcall(f, ...) ~= false then error("failure expected", 2) end
> -end
> -
>   local incroot = os.getenv("INCROOT") or "/usr/include"
>   local cdefs = os.getenv("CDEFS") or ""
>   


More information about the Tarantool-patches mailing list