[Tarantool-patches] [PATCH v2 luajit 03/26] test: separate LuaJIT helpers from ffi_util.inc
Sergey Kaplun
skaplun at tarantool.org
Mon Jan 29 13:45:03 MSK 2024
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
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 ""
--
2.43.0
More information about the Tarantool-patches
mailing list