From: Maxim Kokryashkin via Tarantool-patches <tarantool-patches@dev.tarantool.org> To: tarantool-patches@dev.tarantool.org, imun@tarantool.org, skaplun@tarantool.org, m.shishatskiy@tarantool.org Subject: [Tarantool-patches] [PATCH luajit v2] test: adapt disabled tests from PUC-Rio Date: Wed, 13 Oct 2021 18:55:00 +0300 [thread overview] Message-ID: <20211013155500.2639254-1-m.kokryashkin@tarantool.org> (raw) In-Reply-To: <YWAIHA715lzzLa43@root> 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: ======================================================================== $ 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: +-- $ 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 +-- 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 prepfile[[#comment in 1st line without \n at the end]] RUN("lua %s", prog) -- 2.33.0
next prev parent reply other threads:[~2021-10-13 15:55 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 ` Maxim Kokryashkin via Tarantool-patches [this message] 2021-12-16 15:04 ` [Tarantool-patches] [PATCH luajit v2] " Sergey Kaplun via Tarantool-patches 2022-01-21 11:41 ` Максим Корякшин via Tarantool-patches 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=20211013155500.2639254-1-m.kokryashkin@tarantool.org \ --to=tarantool-patches@dev.tarantool.org \ --cc=imun@tarantool.org \ --cc=m.shishatskiy@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