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