@@ -16,7 +16,18 @@ local err
1616local fdp
1717local res
1818
19- local MAX_INT = 2 ^ 51
19+ -- By default `lua_Integer` is long long, (usually a 64-bit
20+ -- two-complement integer), but that can be changed to long or
21+ -- int (usually a 32-bit two-complement integer), see LUA_INT_TYPE
22+ -- in <luaconf.h>. Lua 5.3+ has two functions:
23+ -- `math.maxinteger` and `math.mininteger` that returns an integer
24+ -- with the maximum value for an integer and an integer with the
25+ -- minimum value for an integer, see [1].
26+ --
27+ -- 1. https://www.lua.org/manual/5.3/manual.html#lua_Integer
28+ local MAX_INT64 = 0x7fffffffffffffff
29+ local MAX_INT = math.maxinteger or MAX_INT64
30+ local MIN_INT = math.mininteger or - MAX_INT64
2031
2132-- luzer.FuzzedDataProvider()
2233assert (type (luzer .FuzzedDataProvider ) == " function" )
@@ -138,7 +149,7 @@ assert(ok == false)
138149assert (err ~= nil )
139150
140151-- luzer.FuzzedDataProvider.consume_integer()
141- fdp = luzer .FuzzedDataProvider (" AB " )
152+ fdp = luzer .FuzzedDataProvider (string.rep ( " ABC " , 1000 ) )
142153assert (type (fdp .consume_integer ) == " function" )
143154
144155res = fdp :consume_integer (10 , 20 )
@@ -150,7 +161,15 @@ ok, err = pcall(fdp.consume_integer)
150161assert (ok == false )
151162assert (err ~= nil )
152163
153- local i = fdp :consume_integer (1 , MAX_INT )
164+ local max_int = fdp :consume_integer (MAX_INT , MAX_INT )
165+ assert (type (max_int ) == " number" )
166+ assert (max_int == MAX_INT )
167+
168+ local min_int = fdp :consume_integer (MIN_INT , MIN_INT )
169+ assert (type (min_int ) == " number" )
170+ assert (min_int == MIN_INT )
171+
172+ local i = fdp :consume_integer (MIN_INT , MAX_INT )
154173assert (type (i ) == " number" )
155174
156175-- luzer.FuzzedDataProvider.consume_integers()
0 commit comments