[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