[Tarantool-patches] [PATCH v2 luajit 3/5] test: adjust lua-Harness test suite for Tarantool

Sergey Kaplun skaplun at tarantool.org
Mon Mar 15 18:29:28 MSK 2021


This patch makes it possible to run lua-Harness test suite using
Tarantool.

203-lexico.t and 301-basic.t is adjusted to valid working with
out-of-source build in Tarantool CI.

Inside Tarantool's GitHub-CI there is no defined variable LOGNAME nor
USERNAME. This leads to test failure inside CI, because a string is
expected. So, now USERNAME is set manually via CMake.

Part of tarantool/tarantool#5844
Part of tarantool/tarantool#4473
---
 test/lua-Harness-tests/203-lexico.t   | 14 ++++++++++----
 test/lua-Harness-tests/301-basic.t    |  6 +++++-
 test/lua-Harness-tests/CMakeLists.txt |  4 ++++
 3 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/test/lua-Harness-tests/203-lexico.t b/test/lua-Harness-tests/203-lexico.t
index c1abebf..5f79b3f 100755
--- a/test/lua-Harness-tests/203-lexico.t
+++ b/test/lua-Harness-tests/203-lexico.t
@@ -117,20 +117,26 @@ do
     like(msg, "^[^:]+:%d+: unfinished long comment .-near")
 end
 
+-- XXX: If this test is run out of the tests source tree, the
+-- relative paths below become invalid. Hence, we need to
+-- prepend the directory from the script (i.e. test) name to
+-- the auxiliary files to be loaded and executed.
+local test_srcdir = arg[0]:gsub('([^/]+)%.t$', '')
+
 if _VERSION >= 'Lua 5.2' or jit then
-    dofile'lexico52/lexico.t'
+    dofile(test_srcdir .. 'lexico52/lexico.t')
 end
 
 if _VERSION >= 'Lua 5.3' or luajit21 then
-    dofile'lexico53/lexico.t'
+    dofile(test_srcdir .. 'lexico53/lexico.t')
 end
 
 if _VERSION >= 'Lua 5.4' then
-    dofile'lexico54/lexico.t'
+    dofile(test_srcdir .. 'lexico54/lexico.t')
 end
 
 if jit and pcall(require, 'ffi') then
-    dofile'lexicojit/lexico.t'
+    dofile(test_srcdir .. 'lexicojit/lexico.t')
 end
 
 done_testing()
diff --git a/test/lua-Harness-tests/301-basic.t b/test/lua-Harness-tests/301-basic.t
index f4f9235..c4ab594 100755
--- a/test/lua-Harness-tests/301-basic.t
+++ b/test/lua-Harness-tests/301-basic.t
@@ -843,7 +843,11 @@ do -- xpcall
 end
 
 if jit and pcall(require, 'ffi') then
-    dofile'lexicojit/basic.t'
+    -- XXX: If this test is run out of the tests source tree, the
+    -- relative paths below become invalid. Hence, we need to
+    -- prepend the directory from the script (i.e. test) name to
+    -- the auxiliary files to be loaded and executed.
+    dofile(arg[0]:gsub('([^/]+)%.t$', '') .. '/lexicojit/basic.t')
 end
 
 done_testing()
diff --git a/test/lua-Harness-tests/CMakeLists.txt b/test/lua-Harness-tests/CMakeLists.txt
index 9b35e5a..bac279f 100644
--- a/test/lua-Harness-tests/CMakeLists.txt
+++ b/test/lua-Harness-tests/CMakeLists.txt
@@ -40,6 +40,10 @@ add_custom_command(TARGET lua-Harness-tests
     # for more info.
     # So use less preferable way for tests.
     # See the root CMakeLists.txt for more info.
+    # XXX: 309-os.t checks os.getenv() function by examine of
+    # USERNAME or LOGNAME enviroment variable. It is not present
+    # inside CI by itself, so it is set here manually.
+    USERNAME="fperrad"
     ${PROVE} ${CMAKE_CURRENT_SOURCE_DIR}
       --exec '${LUAJIT_TEST_COMMAND} -l profile_luajit21'
       ${LUA_TEST_FLAGS}
-- 
2.28.0



More information about the Tarantool-patches mailing list