From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from [87.239.111.99] (localhost [127.0.0.1]) by dev.tarantool.org (Postfix) with ESMTP id 3D269EC2CC6; Fri, 23 Aug 2024 17:35:06 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 3D269EC2CC6 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1724423706; bh=yxgjOi6zxgWjyAuDPiFNTS3I0/+vNSMP1RR8phoY0Rc=; h=Date:To:Cc:References:In-Reply-To:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=V6XHpmCZiFc5gmc7XHNTWtjhECiLq3MyuBbZP9lzXrwuRAfsL00Fbc0HvhnKMRVnn oNYntNAJh/w5yhGNqR0yJecGuLE0ea9czQQKoTl7B2Ej0Gb7YxoMR2i8V8PDU+eP76 MquNR3+C74bVSo3TOeYen6TWcTDvLGSH8lLV7rss= Received: from smtp40.i.mail.ru (smtp40.i.mail.ru [95.163.41.81]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id E0899EC2CC0 for ; Fri, 23 Aug 2024 17:35:04 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org E0899EC2CC0 Received: by smtp40.i.mail.ru with esmtpa (envelope-from ) id 1shVNX-0000000Emem-2ovX; Fri, 23 Aug 2024 17:35:04 +0300 Content-Type: multipart/alternative; boundary="------------q0G0URzRNeQreM3baM8ViIiL" Message-ID: <51d1cf54-888e-43ea-84e9-d7c4b369c98d@tarantool.org> Date: Fri, 23 Aug 2024 17:35:03 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: Sergey Kaplun , Maxim Kokryashkin Cc: tarantool-patches@dev.tarantool.org References: <2e6f291e381ee18f9dd968d70631a56bad510a14.1724228998.git.skaplun@tarantool.org> In-Reply-To: <2e6f291e381ee18f9dd968d70631a56bad510a14.1724228998.git.skaplun@tarantool.org> X-Mailru-Src: smtp X-4EC0790: 10 X-7564579A: 78E4E2B564C1792B X-77F55803: 4F1203BC0FB41BD9A67092BE052B1D9EA61430DDA0B5420A52B39D973F530245182A05F538085040A972A88A68FA9DB203ED270C30F246C54AA1CFFECFF31C8852C09F2BC8B774E9B949C4EC051D72BC X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE7BC08626EA5717D14EA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F7900637F4DB495E34953D8A8638F802B75D45FF36EB9D2243A4F8B5A6FCA7DBDB1FC311F39EFFDF887939037866D6147AF826D82891F047AE265F38FC5EB4980AB4721811E5070C3ABD538CCC7F00164DA146DAFE8445B8C89999728AA50765F7900637F6B57BC7E64490618DEB871D839B7333395957E7521B51C2DFABB839C843B9C08941B15DA834481F8AA50765F7900637F3E38EE449E3E2AE389733CBF5DBD5E9B5C8C57E37DE458BD9DD9810294C998ED8FC6C240DEA76428AA50765F790063764D99B6458681F42D81D268191BDAD3DBD4B6F7A4D31EC0BE2F48590F00D11D6D81D268191BDAD3D78DA827A17800CE78F84DE33370BE723EC76A7562686271ED91E3A1F190DE8FD2E808ACE2090B5E14AD6D5ED66289B5259CC434672EE63711DD303D21008E298D5E8D9A59859A8B6B372FE9A2E580EFC725E5C173C3A84C3CD42BCEBB57B85E635872C767BF85DA2F004C90652538430E4A6367B16DE6309 X-C1DE0DAB: 0D63561A33F958A58DB95CD3D1CEFE645002B1117B3ED696EC07D3FE827BBD61886DC9BC01168B20823CB91A9FED034534781492E4B8EEAD21D4E6D365FE45D1BDAD6C7F3747799A X-C8649E89: 1C3962B70DF3F0ADE00A9FD3E00BEEDF3FED46C3ACD6F73ED3581295AF09D3DF87807E0823442EA2ED31085941D9CD0AF7F820E7B07EA4CFA46330326E894226CC79DBD0B583A310981E7744BBF956F222C1261DAF93DB6CDCB9935FD7D732072FB0CAD32ADFBF84A1258E5C7E10A9B9231DFB1439793E55CE3CCC46B01667F45F4332CA8FE04980913E6812662D5F2AB9AF64DB4688768036DF5FE9C0001AF333F2C28C22F508233FCF178C6DD14203 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5ycPtXkTV4k65bRjmOUUP8cvGozZ33TWg5HZplvhhXbhDGzqmQDTd6OAevLeAnq3Ra9uf7zvY2zzsIhlcp/Y7m53TZgf2aB4JOg4gkr2biojPqZSx9J9Ex2nAayyGA/LBw== X-Mailru-Sender: 520A125C2F17F0B1E52FEF5D219D6140728EC536191DDD738ACEB6D83B83DC05956942FB3ACAE6090152A3D17938EB451EB5A0BCEC6A560B3DDE9B364B0DF289BE2DA36745F2EEB5CEBA01FB949A1F1EEAB4BC95F72C04283CDA0F3B3F5B9367 X-Mras: Ok Subject: Re: [Tarantool-patches] [PATCH v2 luajit 16/45] test: enable LuaJIT test X-BeenThere: tarantool-patches@dev.tarantool.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Sergey Bronnikov via Tarantool-patches Reply-To: Sergey Bronnikov Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" This is a multi-part message in MIME format. --------------q0G0URzRNeQreM3baM8ViIiL Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Sergey, On 21.08.2024 11:58, Sergey Kaplun wrote: > This patch moves the aforementioned test from the to the > directory, includes it in , names the subtests, and slightly > reformates the code style to make it closer to ours. > > Part of tarantool/tarantool#9398 > --- thanks for the patch! LGTM > test/LuaJIT-tests/lang/hook_active.lua | 102 +++++++++++++++++++++++++ > test/LuaJIT-tests/lang/index | 1 + > test/LuaJIT-tests/misc/hook_active.lua | 95 ----------------------- > 3 files changed, 103 insertions(+), 95 deletions(-) > create mode 100644 test/LuaJIT-tests/lang/hook_active.lua > delete mode 100644 test/LuaJIT-tests/misc/hook_active.lua > > diff --git a/test/LuaJIT-tests/lang/hook_active.lua b/test/LuaJIT-tests/lang/hook_active.lua > new file mode 100644 > index 00000000..a5f38055 > --- /dev/null > +++ b/test/LuaJIT-tests/lang/hook_active.lua > @@ -0,0 +1,102 @@ > +local ctest = require("libctest") > + > +local called = 0 > +local function clearhook() debug.sethook(nil, "", 0) end > + > +do --- Return from pcall with active hook must prepend true. FF pcall. > + called = 0 > + debug.sethook(function() called = called + 1; assert(pcall(function() end) == true); clearhook() end, "", 1) > + do local x = 1 end > + assert(called == 1) > +end > + > +do --- Hook with special caught error must not unblock hooks. FF pcall. > + called = 0 > + debug.sethook(function() called = called + 1; pcall(nil); clearhook() end, "", 1) > + do local x = 1 end > + assert(called == 1) > +end > + > +do --- Hook with caught error must not unblock hooks. FF pcall. > + called = 0 > + local function p2() error("") end > + debug.sethook(function() called = called + 1; pcall(p2); clearhook() end, "", 1) > + do local x = 1 end > + assert(called == 1) > +end > + > +do --- Hook with special caught error must not unblock hooks. C pcall. > + called = 0 > + debug.sethook(function() called = called + 1; ctest.pcall(nil); clearhook() end, "", 1) > + do local x = 1 end > + assert(called == 1) > +end > + > +do --- Hook with caught error must not unblock hooks. C pcall. > + called = 0 > + local function p2() error("") end > + debug.sethook(function() called = called + 1; ctest.pcall(p2); clearhook() end, "", 1) > + do local x = 1 end > + assert(called == 1) > +end > + > +do --- Regular pcall must not block hooks. > + debug.sethook(function() called = called + 1 end, "", 1) > + pcall(function() end) > + called = 0 > + do local x = 1 end > + assert(called > 0) > + pcall(function() error("") end) > + called = 0 > + do local x = 1 end > + assert(called > 0) > + ctest.pcall(function() end) > + called = 0 > + do local x = 1 end > + assert(called > 0) > + ctest.pcall(function() error("") end) > + called = 0 > + do local x = 1 end > + assert(called > 0) > + clearhook() > +end > + > +do --- Hook with uncaught error must unblock hooks. FF pcall. > + called = 0 > + pcall(function() > + debug.sethook(function() > + local old = called > + called = 1 > + if old == 0 then error("") end > + end, "", 1) > + do local x = 1 end > + end) > + assert(called == 1) > + called = 2 > + do local x = 1 end > + assert(called == 1, "hook not unblocked after uncaught error") > + clearhook() > + called = 2 > + do local x = 1 end > + assert(called == 2) > +end > + > +do --- Hook with uncaught error must unblock hooks. C pcall. > + called = 0 > + ctest.pcall(function() > + debug.sethook(function() > + local old = called > + called = 1 > + if old == 0 then error("") end > + end, "", 1) > + do local x = 1 end > + end) > + assert(called == 1) > + called = 2 > + do local x = 1 end > + assert(called == 1, "hook not unblocked after uncaught error") > + clearhook() > + called = 2 > + do local x = 1 end > + assert(called == 2) > +end > diff --git a/test/LuaJIT-tests/lang/index b/test/LuaJIT-tests/lang/index > index 274425bf..8cecfa08 100644 > --- a/test/LuaJIT-tests/lang/index > +++ b/test/LuaJIT-tests/lang/index > @@ -8,6 +8,7 @@ compare_nan.lua > constant > dualnum.lua > for.lua > +hook_active.lua > length.lua > lightud.lua > modulo.lua > diff --git a/test/LuaJIT-tests/misc/hook_active.lua b/test/LuaJIT-tests/misc/hook_active.lua > deleted file mode 100644 > index 37dfc379..00000000 > --- a/test/LuaJIT-tests/misc/hook_active.lua > +++ /dev/null > @@ -1,95 +0,0 @@ > -local ctest = require("ctest") > - > -local called = 0 > -local function clearhook() debug.sethook(nil, "", 0) end > - > --- Return from pcall with active hook must prepend true. FF pcall. > -called = 0 > -debug.sethook(function() called=called+1; assert(pcall(function() end) == true); clearhook() end, "", 1) > -do local x = 1 end > -assert(called == 1) > - > --- Hook with special caught error must not unblock hooks. FF pcall. > -called = 0 > -debug.sethook(function() called=called+1; pcall(nil); clearhook() end, "", 1) > -do local x = 1 end > -assert(called == 1) > - > --- Hook with caught error must not unblock hooks. FF pcall. > -called = 0 > -local function p2() error("") end > -debug.sethook(function() called=called+1; pcall(p2); clearhook() end, "", 1) > -do local x = 1 end > -assert(called == 1) > - > --- Hook with special caught error must not unblock hooks. C pcall. > -called = 0 > -debug.sethook(function() called=called+1; ctest.pcall(nil); clearhook() end, "", 1) > -do local x = 1 end > -assert(called == 1) > - > --- Hook with caught error must not unblock hooks. C pcall > -called = 0 > -local function p2() error("") end > -debug.sethook(function() called=called+1; ctest.pcall(p2); clearhook() end, "", 1) > -do local x = 1 end > -assert(called == 1) > - > --- Regular pcall must not block hooks. > -debug.sethook(function() called=called+1 end, "", 1) > -pcall(function() end) > -called = 0 > -do local x = 1 end > -assert(called > 0) > -pcall(function() error("") end) > -called = 0 > -do local x = 1 end > -assert(called > 0) > -ctest.pcall(function() end) > -called = 0 > -do local x = 1 end > -assert(called > 0) > -ctest.pcall(function() error("") end) > -called = 0 > -do local x = 1 end > -assert(called > 0) > -clearhook() > - > --- Hook with uncaught error must unblock hooks. FF pcall > -called = 0 > -pcall(function() > - debug.sethook(function() > - local old = called > - called = 1 > - if old == 0 then error("") end > - end, "", 1) > - do local x = 1 end > -end) > -assert(called == 1) > -called = 2 > -do local x = 1 end > -assert(called == 1, "hook not unblocked after uncaught error") > -clearhook() > -called = 2 > -do local x = 1 end > -assert(called == 2) > - > --- Hook with uncaught error must unblock hooks. C pcall > -called = 0 > -ctest.pcall(function() > - debug.sethook(function() > - local old = called > - called = 1 > - if old == 0 then error("") end > - end, "", 1) > - do local x = 1 end > -end) > -assert(called == 1) > -called = 2 > -do local x = 1 end > -assert(called == 1, "hook not unblocked after uncaught error") > -clearhook() > -called = 2 > -do local x = 1 end > -assert(called == 2) > - --------------q0G0URzRNeQreM3baM8ViIiL Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 7bit

Sergey,

On 21.08.2024 11:58, Sergey Kaplun wrote:
This patch moves the aforementioned test from the <misc> to the <lang/>
directory, includes it in <index>, names the subtests, and slightly
reformates the code style to make it closer to ours.

Part of tarantool/tarantool#9398
---
thanks for the patch! LGTM
 test/LuaJIT-tests/lang/hook_active.lua | 102 +++++++++++++++++++++++++
 test/LuaJIT-tests/lang/index           |   1 +
 test/LuaJIT-tests/misc/hook_active.lua |  95 -----------------------
 3 files changed, 103 insertions(+), 95 deletions(-)
 create mode 100644 test/LuaJIT-tests/lang/hook_active.lua
 delete mode 100644 test/LuaJIT-tests/misc/hook_active.lua

diff --git a/test/LuaJIT-tests/lang/hook_active.lua b/test/LuaJIT-tests/lang/hook_active.lua
new file mode 100644
index 00000000..a5f38055
--- /dev/null
+++ b/test/LuaJIT-tests/lang/hook_active.lua
@@ -0,0 +1,102 @@
+local ctest = require("libctest")
+
+local called = 0
+local function clearhook() debug.sethook(nil, "", 0) end
+
+do --- Return from pcall with active hook must prepend true. FF pcall.
+  called = 0
+  debug.sethook(function() called = called + 1; assert(pcall(function() end) == true); clearhook() end, "", 1)
+  do local x = 1 end
+  assert(called == 1)
+end
+
+do --- Hook with special caught error must not unblock hooks. FF pcall.
+  called = 0
+  debug.sethook(function() called = called + 1; pcall(nil); clearhook() end, "", 1)
+  do local x = 1 end
+  assert(called == 1)
+end
+
+do --- Hook with caught error must not unblock hooks. FF pcall.
+  called = 0
+  local function p2() error("") end
+  debug.sethook(function() called = called + 1; pcall(p2); clearhook() end, "", 1)
+  do local x = 1 end
+  assert(called == 1)
+end
+
+do --- Hook with special caught error must not unblock hooks. C pcall.
+  called = 0
+  debug.sethook(function() called = called + 1; ctest.pcall(nil); clearhook() end, "", 1)
+  do local x = 1 end
+  assert(called == 1)
+end
+
+do --- Hook with caught error must not unblock hooks. C pcall.
+  called = 0
+  local function p2() error("") end
+  debug.sethook(function() called = called + 1; ctest.pcall(p2); clearhook() end, "", 1)
+  do local x = 1 end
+  assert(called == 1)
+end
+
+do --- Regular pcall must not block hooks.
+  debug.sethook(function() called = called + 1 end, "", 1)
+  pcall(function() end)
+  called = 0
+  do local x = 1 end
+  assert(called > 0)
+  pcall(function() error("") end)
+  called = 0
+  do local x = 1 end
+  assert(called > 0)
+  ctest.pcall(function() end)
+  called = 0
+  do local x = 1 end
+  assert(called > 0)
+  ctest.pcall(function() error("") end)
+  called = 0
+  do local x = 1 end
+  assert(called > 0)
+  clearhook()
+end
+
+do --- Hook with uncaught error must unblock hooks. FF pcall.
+  called = 0
+  pcall(function()
+    debug.sethook(function()
+      local old = called
+      called = 1
+      if old == 0 then error("") end
+    end, "", 1)
+    do local x = 1 end
+  end)
+  assert(called == 1)
+  called = 2
+  do local x = 1 end
+  assert(called == 1, "hook not unblocked after uncaught error")
+  clearhook()
+  called = 2
+  do local x = 1 end
+  assert(called == 2)
+end
+
+do --- Hook with uncaught error must unblock hooks. C pcall.
+  called = 0
+  ctest.pcall(function()
+    debug.sethook(function()
+      local old = called
+      called = 1
+      if old == 0 then error("") end
+    end, "", 1)
+    do local x = 1 end
+  end)
+  assert(called == 1)
+  called = 2
+  do local x = 1 end
+  assert(called == 1, "hook not unblocked after uncaught error")
+  clearhook()
+  called = 2
+  do local x = 1 end
+  assert(called == 2)
+end
diff --git a/test/LuaJIT-tests/lang/index b/test/LuaJIT-tests/lang/index
index 274425bf..8cecfa08 100644
--- a/test/LuaJIT-tests/lang/index
+++ b/test/LuaJIT-tests/lang/index
@@ -8,6 +8,7 @@ compare_nan.lua
 constant
 dualnum.lua
 for.lua
+hook_active.lua
 length.lua
 lightud.lua
 modulo.lua
diff --git a/test/LuaJIT-tests/misc/hook_active.lua b/test/LuaJIT-tests/misc/hook_active.lua
deleted file mode 100644
index 37dfc379..00000000
--- a/test/LuaJIT-tests/misc/hook_active.lua
+++ /dev/null
@@ -1,95 +0,0 @@
-local ctest = require("ctest")
-
-local called = 0
-local function clearhook() debug.sethook(nil, "", 0) end
-
--- Return from pcall with active hook must prepend true. FF pcall.
-called = 0
-debug.sethook(function() called=called+1; assert(pcall(function() end) == true); clearhook() end, "", 1)
-do local x = 1 end
-assert(called == 1)
-
--- Hook with special caught error must not unblock hooks. FF pcall.
-called = 0
-debug.sethook(function() called=called+1; pcall(nil); clearhook() end, "", 1)
-do local x = 1 end
-assert(called == 1)
-
--- Hook with caught error must not unblock hooks. FF pcall.
-called = 0
-local function p2() error("") end
-debug.sethook(function() called=called+1; pcall(p2); clearhook() end, "", 1)
-do local x = 1 end
-assert(called == 1)
-
--- Hook with special caught error must not unblock hooks. C pcall.
-called = 0
-debug.sethook(function() called=called+1; ctest.pcall(nil); clearhook() end, "", 1)
-do local x = 1 end
-assert(called == 1)
-
--- Hook with caught error must not unblock hooks. C pcall
-called = 0
-local function p2() error("") end
-debug.sethook(function() called=called+1; ctest.pcall(p2); clearhook() end, "", 1)
-do local x = 1 end
-assert(called == 1)
-
--- Regular pcall must not block hooks.
-debug.sethook(function() called=called+1 end, "", 1)
-pcall(function() end)
-called = 0
-do local x = 1 end
-assert(called > 0)
-pcall(function() error("") end)
-called = 0
-do local x = 1 end
-assert(called > 0)
-ctest.pcall(function() end)
-called = 0
-do local x = 1 end
-assert(called > 0)
-ctest.pcall(function() error("") end)
-called = 0
-do local x = 1 end
-assert(called > 0)
-clearhook()
-
--- Hook with uncaught error must unblock hooks. FF pcall
-called = 0
-pcall(function()
-  debug.sethook(function()
-    local old = called
-    called = 1
-    if old == 0 then error("") end
-  end, "", 1)
-  do local x = 1 end
-end)
-assert(called == 1)
-called = 2
-do local x = 1 end
-assert(called == 1, "hook not unblocked after uncaught error")
-clearhook()
-called = 2
-do local x = 1 end
-assert(called == 2)
-
--- Hook with uncaught error must unblock hooks. C pcall
-called = 0
-ctest.pcall(function()
-  debug.sethook(function()
-    local old = called
-    called = 1
-    if old == 0 then error("") end
-  end, "", 1)
-  do local x = 1 end
-end)
-assert(called == 1)
-called = 2
-do local x = 1 end
-assert(called == 1, "hook not unblocked after uncaught error")
-clearhook()
-called = 2
-do local x = 1 end
-assert(called == 2)
-
--------------q0G0URzRNeQreM3baM8ViIiL--