Hi, Sergey! Thanks for the review!   New commit message with your comments in mind: ========================================================= test: adapt disabled tests from PUC-Rio   Version and status are printed in stdout instead of stderr since LuaJIT-2.0.0-beta11 (as it is not an error message). This behavior is the same as in Lua 5.2, so necessary changes in tests can be adapted from PUC-Rio Lua 5.2 test suite.   However, those tests are disabled for Tarantool since its interactive shell doesn't support '=' at the beginning of statements. Here is an example: |$ luajit |> = (6*2-6) -- === |6 | |$ tarantool |tarantool> = (6*2-6) -- === |--- |- error: ' (6*2-6) -- ===:1: unexpected symbol near ''=''' |...   Part of tarantool/tarantool#5870 Resolves tarantool/tarantool#5687 =========================================================   And here is the diff: ========================================================= diff --git a/test/PUC-Rio-Lua-5.1-tests/main.lua b/test/PUC-Rio-Lua-5.1-tests/main.lua index 38111560..9c1e5fa4 100644 --- a/test/PUC-Rio-Lua-5.1-tests/main.lua +++ b/test/PUC-Rio-Lua-5.1-tests/main.lua @@ -139,8 +139,9 @@ prepfile[[  RUN("lua - < %s > %s", prog, out)  checkout("1\tnil\n")   --- FIXME: The following chunk is disabled for Tarantool since its interactive --- shell doesn't support '=' at the beginning of statements. +-- FIXME: The following chunk is disabled for Tarantool since +-- its interactive shell doesn't support '=' at the beginning +-- of statements.  -- Here is an example:  -- $ luajit  -- LuaJIT 2.1.0-beta3 -- Copyright (C) 2005-2017 Mike Pall. http://luajit.org/ @@ -202,7 +203,7 @@ assert( a == b )    prepfile(s)    RUN([[lua -e"_PROMPT='' _PROMPT2=''" -i < %s > %s]], prog, out)    checkprogout("11\n1\t2\n\n") -end +end -- not _TARANTOOL    prepfile[[#comment in 1st line without \n at the end]]  RUN("lua %s", prog) =========================================================   New CI branch:  https://github.com/tarantool/tarantool/tree/fckxorg/gh-5687-adapt-disabled-tests-from-PUC-Rio-full-ci   Best regards, Maxim Kokryashkin   >  >>Hi, Maxim! >> >>Thanks for the fixes! >> >>LGTM, except a few nits below. >> >>On 13.10.21, Maxim Kokryashkin wrote: >>> Version and status are printed in stdout instead stderr >>> since LuaJIT-2.0.0-beta11 (as it is not an error message). This behavior >>> is the same as in Lua 5.2, so necessary changes in tests can be >>> adapted from PUC-Rio Lua 5.2 test suite. >>> >>> However, those tests are disabled for Tarantool since its interactive >>> shell doesn't support '=' at the beginning of statements. >>> Here is an example: >> >>OK, so maybe we should create a ticket for that (and _PROMPT feature)? >>At least to mention it and wait for thumbs up. >>Igor, thoughts? >> >>> ======================================================================== >> >>Nit: it's better to use "|" for quoting in commit messages (I use "===" >>only for separate iterative diff from the rest part of the mail). See >>git log 77c4a0747693a2a27745616894943746548df875 for example. >>But it's just my recommendation.:) >>Feel free to ignore. >> >>> $ luajit >>> > = (6*2-6) -- === >>> 6 >>> >>> $ tarantool >>> tarantool> = (6*2-6) -- === >>> --- >>> - error: ' (6*2-6) -- ===:1: unexpected symbol near ''=''' >>> ... >>> ======================================================================== >>> >>> Part of tarantool/tarantool#5870 >>> --- >>> Changes in v2: >>> - Fixed comments as per review by Sergey >>> - Disabled some tests for Tarantool >>> - Added link to CI jobs >>> >>> Issue: https://github.com/tarantool/tarantool/issues/5687 >>> Branch: https://github.com/tarantool/luajit/tree/fckxorg/gh-5687-adapt-tests-output-PUC-Rio >>> CI: https://github.com/tarantool/tarantool/tree/fckxorg/gh-5687-adapt-disabled-tests-from-PUC-Rio >>> >>> test/PUC-Rio-Lua-5.1-tests/main.lua | 97 ++++++++++++++++++++--------- >>> 1 file changed, 66 insertions(+), 31 deletions(-) >>> >>> diff --git a/test/PUC-Rio-Lua-5.1-tests/main.lua b/test/PUC-Rio-Lua-5.1-tests/main.lua >>> index 07facc4c..38111560 100644 >>> --- a/test/PUC-Rio-Lua-5.1-tests/main.lua >>> +++ b/test/PUC-Rio-Lua-5.1-tests/main.lua >>> @@ -24,11 +24,33 @@ local prepfile = function (s, p) >>> assert(io.close()) >>> end >>> >>> -function checkout (s) >>> +-- Taken from PUC-Rio Lua 5.2 test suite. >>> +-- See comment for checkprogout(). >>> +function getoutput () >>> io.input(out) >>> local t = io.read("*a") >>> io.input():close() >>> assert(os.remove(out)) >>> + return t >>> +end >>> + >>> +-- Version and status are printed in stdout instead stderr since >>> +-- LuaJIT-2.0.0-beta11 (as it is not an error message). >>> +-- See commit 0bd1a66f2f055211ef55834ccebca3b82d03c735 >>> +-- (Print version and JIT status to stdout, not stderr.). >>> +-- This behavior is the same as in Lua 5.2. >>> +-- See also https://github.com/tarantool/tarantool/issues/5687 . >>> +-- This function is adapted from PUC-Rio Lua 5.2 test suite. >>> +-- It is used for test commands with -i flag. >>> +function checkprogout (s) >>> + local t = getoutput() >>> + for line in string.gmatch(s, ".-\n") do >>> + assert(string.find(t, line, 1, true)) >>> + end >>> +end >>> + >>> +function checkout (s) >>> + local t = getoutput() >>> if s ~= t then print(string.format("'%s' - '%s'\n", s, t)) end >>> assert(s == t) >>> return t >>> @@ -117,39 +139,52 @@ prepfile[[ >>> RUN("lua - < %s > %s", prog, out) >>> checkout("1\tnil\n") >>> >>> --- FIXME: Version and status are printed to stdout instead of >>> --- stderr since LuaJIT-2.0.0-beta11 (as it is not an error >>> --- message). See commit 0bd1a66f2f055211ef55834ccebca3b82d03c735 >>> --- (Print version and JIT status to stdout, not stderr.). >>> --- This behavior is the same as in Lua 5.2. >>> --- In Lua 5.2 this feature was introduced via commit >>> --- 9e7de9473c65baee1f567852a778f2d33a47ea83. >>> --- See also https://github.com/tarantool/tarantool/issues/5687 . >>> -prepfile[[ >>> +-- FIXME: The following chunk is disabled for Tarantool since its interactive >>> +-- shell doesn't support '=' at the beginning of statements. >>> +-- Here is an example: >> >>Minor: linewidth for comments is 66 symbols. (Ignorable for comment with >>word-for-word quotes below.) >> >>> +-- $ luajit >>> +-- LuaJIT 2.1.0-beta3 -- Copyright (C) 2005-2017 Mike Pall. http://luajit.org/ >>> +-- JIT: ON SSE2 SSE3 SSE4.1 BMI2 fold cse dce fwd dse narrow loop abc sink fuse >>> +-- > = (6*2-6) -- === >>> +-- 6 >>> + >>> +-- $ tarantool >>> +-- Tarantool 2.10.0-beta1-80-g201905544 >>> +-- type 'help' for interactive help >>> +-- tarantool> = (6*2-6) -- === >>> +-- --- >>> +-- - error: ' (6*2-6) -- ===:1: unexpected symbol near ''=''' >>> +-- ... >>> +if not _TARANTOOL then >> >>Side note: like this solution much more than just comment out this >>chunk! >> >>> +-- Test is adapted from PUC-Rio Lua 5.2 test suite. >>> +-- See comment for checkprogout(). >>> + prepfile[[ >>> = (6*2-6) -- === >>> a >>> = 10 >>> print(a) >>> = a]] >>> --- FIXME: Behavior is different for LuaJIT. See the comment above. >>> --- RUN([[lua -e"_PROMPT='' _PROMPT2=''" -i < %s > %s]], prog, out) >>> --- checkout("6\n10\n10\n\n") >>> - >>> -prepfile("a = [[b\nc\nd\ne]]\n=a") >>> -print(prog) >>> --- FIXME: Behavior is different for LuaJIT. See the comment above. >>> --- RUN([[lua -e"_PROMPT='' _PROMPT2=''" -i < %s > %s]], prog, out) >>> --- checkout("b\nc\nd\ne\n\n") >>> - >>> -prompt = "alo" >>> -prepfile[[ -- >>> + RUN([[lua -e"_PROMPT='' _PROMPT2=''" -i < %s > %s]], prog, out) >>> + checkprogout("6\n10\n10\n\n") >>> + >>> +-- Test is adapted from PUC-Rio Lua 5.2 test suite. >>> +-- See comment for checkprogout(). >>> + prepfile("a = [[b\nc\nd\ne]]\n=a") >>> + print(prog) >>> + RUN([[lua -e"_PROMPT='' _PROMPT2=''" -i < %s > %s]], prog, out) >>> + checkprogout("b\nc\nd\ne\n\n") >>> + >>> +-- Test is adapted from PUC-Rio Lua 5.2 test suite. >>> +-- See comment for checkprogout(). >>> + prompt = "alo" >>> + prepfile[[ -- >>> a = 2 >>> ]] >>> --- FIXME: Behavior is different for LuaJIT. See the comment above. >>> --- RUN([[lua "-e_PROMPT='%s'" -i < %s > %s]], prompt, prog, out) >>> --- checkout(string.rep(prompt, 3).."\n") >>> + RUN([[lua "-e_PROMPT='%s'" -i < %s > %s]], prompt, prog, out) >>> + local t = getoutput() >>> + assert(string.find(t, prompt .. ".*" .. prompt .. ".*" .. prompt)) >>> >>> -s = [=[ -- >>> + s = [=[ -- >>> function f ( x ) >>> local a = [[ >>> xuxu >>> @@ -163,11 +198,11 @@ end >>> =( f( 10 ) ) >>> assert( a == b ) >>> =f( 11 ) ]=] >>> -s = string.gsub(s, ' ', '\n\n') >>> -prepfile(s) >>> --- FIXME: Behavior is different for LuaJIT. See the comment above. >>> --- RUN([[lua -e"_PROMPT='' _PROMPT2=''" -i < %s > %s]], prog, out) >>> --- checkout("11\n1\t2\n\n") >>> + s = string.gsub(s, ' ', '\n\n') >>> + prepfile(s) >>> + RUN([[lua -e"_PROMPT='' _PROMPT2=''" -i < %s > %s]], prog, out) >>> + checkprogout("11\n1\t2\n\n") >>> +end >> >>It's nothing bad in commenting "-- not _TARANTOOL" for this `end`. >>Feel free to ignore. >> >>> >>> prepfile[[#comment in 1st line without \n at the end]] >>> RUN("lua %s", prog) >>> -- >>> 2.33.0 >>> >> >>-- >>Best regards, >>Sergey Kaplun >