[Tarantool-patches] [PATCH v2 luajit 01/30] test: add PUC-Rio Lua 5.1 test suite

Sergey Kaplun skaplun at tarantool.org
Thu Apr 1 11:11:46 MSK 2021


Igor,

Thanks for the review!

On 31.03.21, Igor Munkin wrote:
> Sergey,
> 
> Thanks for the patch! LGTM, except the nits below.
> 
> On 26.03.21, Sergey Kaplun wrote:
> > This patch adds PUC-Rio Lua 5.1 test suite as a part of the LuaJIT test
> > suite. Source code taken verbatim (except trailing whitespaces) from
> 
> Typo: s/code taken/code is taken/.
> Typo: I believe it's always singular: whitespace.

Fixed.

> 
> > https://www.lua.org/tests/lua5.1-tests.tar.gz.
> > 
> > Some tests may fail after this commit. They will be disabled
> > or adapted in the next patches.
> > 
> > Part of tarantool/tarantool#5845
> > Part of tarantool/tarantool#4473
> > ---
> >  .luacheckrc                                |    5 +-
> >  test/CMakeLists.txt                        |    2 +
> >  test/PUC-Lua-5.1-tests/CMakeLists.txt      |   45 +
> >  test/PUC-Lua-5.1-tests/README              |   41 +
> >  test/PUC-Lua-5.1-tests/all.lua             |  137 +++
> >  test/PUC-Lua-5.1-tests/api.lua             |  711 ++++++++++++
> >  test/PUC-Lua-5.1-tests/attrib.lua          |  339 ++++++
> >  test/PUC-Lua-5.1-tests/big.lua             |  381 +++++++
> >  test/PUC-Lua-5.1-tests/calls.lua           |  294 +++++
> >  test/PUC-Lua-5.1-tests/checktable.lua      |   77 ++
> >  test/PUC-Lua-5.1-tests/closure.lua         |  422 +++++++
> >  test/PUC-Lua-5.1-tests/code.lua            |  143 +++
> >  test/PUC-Lua-5.1-tests/constructs.lua      |  240 ++++
> >  test/PUC-Lua-5.1-tests/db.lua              |  499 +++++++++
> >  test/PUC-Lua-5.1-tests/errors.lua          |  250 +++++
> >  test/PUC-Lua-5.1-tests/etc/ltests.c        | 1147 ++++++++++++++++++++
> >  test/PUC-Lua-5.1-tests/etc/ltests.h        |   92 ++
> >  test/PUC-Lua-5.1-tests/events.lua          |  360 ++++++
> >  test/PUC-Lua-5.1-tests/files.lua           |  324 ++++++
> >  test/PUC-Lua-5.1-tests/gc.lua              |  312 ++++++
> >  test/PUC-Lua-5.1-tests/libs/CMakeLists.txt |   18 +
> >  test/PUC-Lua-5.1-tests/libs/lib1.c         |   40 +
> >  test/PUC-Lua-5.1-tests/libs/lib11.c        |   18 +
> >  test/PUC-Lua-5.1-tests/libs/lib2.c         |   28 +
> >  test/PUC-Lua-5.1-tests/libs/lib21.c        |   18 +
> >  test/PUC-Lua-5.1-tests/literals.lua        |  176 +++
> >  test/PUC-Lua-5.1-tests/locals.lua          |  127 +++
> >  test/PUC-Lua-5.1-tests/main.lua            |  159 +++
> >  test/PUC-Lua-5.1-tests/math.lua            |  208 ++++
> >  test/PUC-Lua-5.1-tests/nextvar.lua         |  396 +++++++
> >  test/PUC-Lua-5.1-tests/pm.lua              |  273 +++++
> >  test/PUC-Lua-5.1-tests/sort.lua            |   74 ++
> >  test/PUC-Lua-5.1-tests/strings.lua         |  176 +++
> >  test/PUC-Lua-5.1-tests/vararg.lua          |  126 +++
> >  test/PUC-Lua-5.1-tests/verybig.lua         |  100 ++
> >  35 files changed, 7756 insertions(+), 2 deletions(-)
> >  create mode 100644 test/PUC-Lua-5.1-tests/CMakeLists.txt
> >  create mode 100644 test/PUC-Lua-5.1-tests/README
> >  create mode 100755 test/PUC-Lua-5.1-tests/all.lua
> 
> Minor: I doubt all.lua need to be an executable. Feel free to ignore.

The suite is taken with no change; this file was executable, and I see no
reason to change it. Also, it highlights this file as the suite runner.
Ignoring for now.

> 
> >  create mode 100644 test/PUC-Lua-5.1-tests/api.lua
> >  create mode 100644 test/PUC-Lua-5.1-tests/attrib.lua
> >  create mode 100644 test/PUC-Lua-5.1-tests/big.lua
> >  create mode 100644 test/PUC-Lua-5.1-tests/calls.lua
> >  create mode 100644 test/PUC-Lua-5.1-tests/checktable.lua
> >  create mode 100644 test/PUC-Lua-5.1-tests/closure.lua
> >  create mode 100644 test/PUC-Lua-5.1-tests/code.lua
> >  create mode 100644 test/PUC-Lua-5.1-tests/constructs.lua
> >  create mode 100644 test/PUC-Lua-5.1-tests/db.lua
> >  create mode 100644 test/PUC-Lua-5.1-tests/errors.lua
> >  create mode 100644 test/PUC-Lua-5.1-tests/etc/ltests.c
> >  create mode 100644 test/PUC-Lua-5.1-tests/etc/ltests.h
> >  create mode 100644 test/PUC-Lua-5.1-tests/events.lua
> >  create mode 100644 test/PUC-Lua-5.1-tests/files.lua
> >  create mode 100644 test/PUC-Lua-5.1-tests/gc.lua
> >  create mode 100644 test/PUC-Lua-5.1-tests/libs/CMakeLists.txt
> >  create mode 100644 test/PUC-Lua-5.1-tests/libs/lib1.c
> >  create mode 100644 test/PUC-Lua-5.1-tests/libs/lib11.c
> >  create mode 100644 test/PUC-Lua-5.1-tests/libs/lib2.c
> >  create mode 100644 test/PUC-Lua-5.1-tests/libs/lib21.c
> >  create mode 100644 test/PUC-Lua-5.1-tests/literals.lua
> >  create mode 100644 test/PUC-Lua-5.1-tests/locals.lua
> >  create mode 100644 test/PUC-Lua-5.1-tests/main.lua
> >  create mode 100644 test/PUC-Lua-5.1-tests/math.lua
> >  create mode 100644 test/PUC-Lua-5.1-tests/nextvar.lua
> >  create mode 100644 test/PUC-Lua-5.1-tests/pm.lua
> >  create mode 100644 test/PUC-Lua-5.1-tests/sort.lua
> >  create mode 100644 test/PUC-Lua-5.1-tests/strings.lua
> >  create mode 100644 test/PUC-Lua-5.1-tests/vararg.lua
> >  create mode 100644 test/PUC-Lua-5.1-tests/verybig.lua
> > 
> 
> <snipped>
> 
> > diff --git a/test/PUC-Lua-5.1-tests/CMakeLists.txt b/test/PUC-Lua-5.1-tests/CMakeLists.txt
> > new file mode 100644
> > index 0000000..773db0d
> > --- /dev/null
> > +++ b/test/PUC-Lua-5.1-tests/CMakeLists.txt
> > @@ -0,0 +1,45 @@
> > +# Test suite that has been added from PUC-Rio Lua 5.1 test archive
> > +# in scope of https://github.com/tarantool/tarantool/issues/5845.
> > +
> > +# See the rationale in the root CMakeLists.txt.
> > +cmake_minimum_required(VERSION 3.1 FATAL_ERROR)
> > +
> > +# XXX: There are two ways to set up the proper environment
> > +# described in the suite's README:
> > +# * set LUA_PATH to "?;./?.lua"
> > +# * or, better yet, set LUA_PATH to "./?.lua;;" and LUA_INIT to
> > +#   "package.path = '?;'..package.path"
> > +# Unfortunately, Tarantool doesn't support LUA_INIT and most
> > +# likely it never will. For more info, see
> > +# https://github.com/tarantool/tarantool/issues/5744
> > +# Hence, there is no way other than set LUA_PATH environment
> > +# variable as proposed in the first case.
> > +set(LUA_PATH "?\;${CMAKE_CURRENT_SOURCE_DIR}/?.lua")
> > +
> > +# Set PUC-Lua-5.1-tests-prepare target that creates <libs/P1>
> 
> Minor: IMHO, "set" fits worse here than "create" or "introduce". Feel
> free to ignore.

Changed to "Establish" ("Introduce" fits more for the new
functionality, not single target, in my opinion). I wanted to use
"Create" first, but it invokes a tautology with "creates" later
in the sentence. May be "Set up" will be better here.

> 
> > +# subdirectory.
> > +add_subdirectory(libs)
> > +
> > +# TODO: PUC-Rio Lua 5.1 test suite also has special header
> > +# <ltests.h> and <ltests.c> translation unit to check some
> > +# internal behaviour of the Lua implementation (see etc/
> > +# directory). It modifies realloc function to check memory
> > +# consistency and also contains tests for yield in hooks
> > +# and for the Lua C API.
> > +# But, unfortunately, <ltests.c> depends on specific PUC-Rio
> > +# Lua 5.1 internal headers and should be adapted for LuaJIT.
> > +
> > +add_custom_target(PUC-Lua-5.1-tests
> > +  DEPENDS ${LUAJIT_TEST_BINARY} PUC-Lua-5.1-tests-prepare
> > +)
> > +
> > +add_custom_command(TARGET PUC-Lua-5.1-tests
> > +  COMMENT "Running PUC-Rio Lua 5.1 tests"
> > +  COMMAND
> > +  env
> > +    LUA_PATH="${LUA_PATH}\;\;"
> > +    ${LUAJIT_TEST_COMMAND} ${CMAKE_CURRENT_SOURCE_DIR}/all.lua
> > +  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
> > +)
> > +
> > +# vim: expandtab tabstop=2 shiftwidth=2
> 
> <snipped>
> 
> > diff --git a/test/PUC-Lua-5.1-tests/libs/CMakeLists.txt b/test/PUC-Lua-5.1-tests/libs/CMakeLists.txt
> > new file mode 100644
> > index 0000000..f24e7f3
> > --- /dev/null
> > +++ b/test/PUC-Lua-5.1-tests/libs/CMakeLists.txt
> > @@ -0,0 +1,18 @@
> > +# Test suite that has been added from PUC-Rio Lua 5.1 test archive
> > +# in scope of https://github.com/tarantool/tarantool/issues/5845.
> > +
> > +# See the rationale in the root CMakeLists.txt.
> > +cmake_minimum_required(VERSION 3.1 FATAL_ERROR)
> > +
> 
> Minor: What about TODO for building libs/*.c sources? Anyway, you did it
> in the following patch, so feel free to ignore.

Yep, ignoring, because the are added in the next patch for consistency.

> 
> > +# The original tarball contains subdirectory "libs" with an empty
> > +# subdirectory "libs/P1", to be used by tests.
> > +# Instead of tracking empty directory with some anchor-file for
> > +# git, create this directory via CMake.
> > +add_custom_target(PUC-Lua-5.1-tests-prepare)
> > +add_custom_command(TARGET PUC-Lua-5.1-tests-prepare
> > +  COMMENT "Create directory for PUC-Rio Lua 5.1 tests"
> > +  COMMAND ${CMAKE_COMMAND} -E make_directory P1
> > +  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
> > +)
> > +
> > +# vim: expandtab tabstop=2 shiftwidth=2
> 
> <snipped>
> 
> > -- 
> > 2.31.0
> > 
> 
> -- 
> Best regards,
> IM

-- 
Best regards,
Sergey Kaplun


More information about the Tarantool-patches mailing list