Tarantool development patches archive
 help / color / mirror / Atom feed
From: "Максим Корякшин via Tarantool-patches" <tarantool-patches@dev.tarantool.org>
To: "Sergey Kaplun" <skaplun@tarantool.org>
Cc: "Maxim Kokryashkin" <max.kokryashkin@gmail.com>,
	tarantool-patches@dev.tarantool.org
Subject: Re: [Tarantool-patches]  [PATCH luajit v2] test: adapt disabled tests from PUC-Rio
Date: Fri, 21 Jan 2022 14:41:05 +0300	[thread overview]
Message-ID: <1642765265.228458223@f472.i.mail.ru> (raw)
In-Reply-To: <YbtVebl5/148xMga@root>

[-- Attachment #1: Type: text/plain, Size: 9215 bytes --]


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
> 

[-- Attachment #2: Type: text/html, Size: 11822 bytes --]

  reply	other threads:[~2022-01-21 11:41 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-24 13:58 [Tarantool-patches] [PATCH luajit] " Maxim Kokryashkin via Tarantool-patches
2021-09-24 14:34 ` Максим Корякшин via Tarantool-patches
2021-10-08  8:58   ` Sergey Kaplun via Tarantool-patches
2021-10-13 15:55     ` [Tarantool-patches] [PATCH luajit v2] " Maxim Kokryashkin via Tarantool-patches
2021-12-16 15:04       ` Sergey Kaplun via Tarantool-patches
2022-01-21 11:41         ` Максим Корякшин via Tarantool-patches [this message]
2022-02-16 10:37           ` Igor Munkin via Tarantool-patches
2022-02-16 10:37         ` Igor Munkin via Tarantool-patches
2022-02-17 12:01           ` Maxim Kokryashkin via Tarantool-patches
2022-02-16 10:37       ` Igor Munkin via Tarantool-patches
2021-10-08  8:54 ` [Tarantool-patches] [PATCH luajit] " Sergey Kaplun via Tarantool-patches
2022-02-17 16:38 ` Igor Munkin via Tarantool-patches

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1642765265.228458223@f472.i.mail.ru \
    --to=tarantool-patches@dev.tarantool.org \
    --cc=m.kokryashkin@tarantool.org \
    --cc=max.kokryashkin@gmail.com \
    --cc=skaplun@tarantool.org \
    --subject='Re: [Tarantool-patches]  [PATCH luajit v2] test: adapt disabled tests from PUC-Rio' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox