[Tarantool-patches] [PATCH luajit] test: add test case for math.modf

Igor Munkin imun at tarantool.org
Thu Mar 2 18:40:42 MSK 2023


Max,

Thanks for the patch! LGTM, but there are some nits below.

On 03.02.23, Maksim Kokryashkin via Tarantool-patches wrote:
> Follows up commit 9b6c0cd8eafdd2e5a8a7ac4b33f6e33b3d8a93b9
> ("Don't compile math.modf() anymore.").
> 
> This patch introduces the test case for the issue with
> compiled `math.modf`, that was fixed by disabling the
> compilation for it.
> 
> Part of tarantool/tarantool#7230

Minor: It follows up the ticket, not a part of it.

> ---
> Branch: https://github.com/tarantool/luajit/tree/fckxorg/modf-test
> PR: https://github.com/tarantool/tarantool/pull/8251
> 
>  test/tarantool-tests/math-modf.test.lua | 31 +++++++++++++++++++++++++
>  1 file changed, 31 insertions(+)
>  create mode 100644 test/tarantool-tests/math-modf.test.lua
> 
> diff --git a/test/tarantool-tests/math-modf.test.lua b/test/tarantool-tests/math-modf.test.lua
> new file mode 100644
> index 00000000..2aaa5189
> --- /dev/null
> +++ b/test/tarantool-tests/math-modf.test.lua
> @@ -0,0 +1,31 @@
> +local tap = require('tap')
> +local test = tap.test('math-modf')
> +test:plan(1)
> +
> +local function isnan(x)
> +    return x ~= x
> +end
> +
> +local function array_is_consistent(res)
> +  for i = 1, #res - 1 do
> +    if res[i] ~= res[i + 1] and not (isnan(res[i]) and isnan(res[i + 1])) then
> +      return false
> +    end
> +  end
> +  return true
> +end
> +
> +jit.opt.start('hotloop=1')
> +jit.on()

This line is excess.

> +
> +local modf = math.modf
> +local inf = math.huge
> +
> +local r1 = {nil, nil, nil, nil}
> +local r2 = {nil, nil, nil, nil}

Minor: I'd rather use table.new here to make it clearer.

> +
> +for i = 1, 4 do
> +  r1[i], r2[i] = modf(inf)
> +end
> +
> +test:ok(array_is_consistent(r1) and array_is_consistent(r2), 'wrong modf')
> --
> 2.37.1 (Apple Git-137.1)
> 

-- 
Best regards,
IM


More information about the Tarantool-patches mailing list