@@ -7,14 +7,27 @@ Test helpers.
77
88-- The function determines a Lua version.
99local function lua_version ()
10- local maj , min = _VERSION :match (" ([%d]+)%.(%d+)" )
11- local maj_num , min_num = tonumber (maj ), tonumber (min )
10+ local major , minor = _VERSION :match (" ([%d]+)%.(%d+)" )
11+ local version = {
12+ major = tonumber (major ),
13+ minor = tonumber (minor ),
14+ }
1215 local is_luajit , _ = pcall (require , " jit" )
13- if is_luajit then
14- return " LuaJIT" , maj_num , min_num
16+ local lua_name = is_luajit and " LuaJIT" or " PUC Rio Lua"
17+ return lua_name , version
18+ end
19+
20+ local function version_ge (version1 , version2 )
21+ if version1 .major ~= version2 .major then
22+ return version1 .major > version2 .major
23+ else
24+ return version1 .minor > version2 .minor
1525 end
26+ end
1627
17- return _VERSION , maj_num , min_num
28+ local function lua_current_version_ge_than (major , minor )
29+ local _ , current_version = lua_version ()
30+ return version_ge (current_version , { major = major , minor = minor })
1831end
1932
2033-- By default `lua_Integer` is ptrdiff_t in Lua 5.1 and Lua 5.2
@@ -59,8 +72,7 @@ local function bitwise_op(op_name)
5972end
6073
6174local function math_pow (x , y )
62- local chunk = (" return %f ^ %f" ):format (x , y )
63- return assert (load (chunk ))()
75+ return x ^ y
6476end
6577
6678local function approx_equal (a , b , epsilon )
@@ -72,6 +84,7 @@ return {
7284 approx_equal = approx_equal ,
7385 bitwise_op = bitwise_op ,
7486 lua_version = lua_version ,
87+ lua_current_version_ge_than = lua_current_version_ge_than ,
7588 math_pow = math_pow ,
7689 MAX_INT64 = MAX_INT64 ,
7790 MIN_INT64 = MIN_INT64 ,
0 commit comments