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 592819FF432; Thu, 1 Feb 2024 11:43:20 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 592819FF432 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1706777000; bh=nLm3eFX9UEWlvHUTbzFHtN1pZ8+t8EZFD4DA3z9ptQg=; h=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=b4kMeP627EeMstVTOwiGuDx0aNjspA6x2Me/BemvvOhv2MLfWGj40YaNFfsogoUtJ nL338i581GFNfjuoaMr/Iwbrj0+qjegvRTS5oEgC5IdB3QDcjFJhq7oAM0cr0mYSLJ rkvqnUXWabMSXXRYg+jI+R9Sn/5mxloOAdfIu8tQ= Received: from smtp46.i.mail.ru (smtp46.i.mail.ru [95.163.41.84]) (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 86A1C9FF42B for ; Thu, 1 Feb 2024 11:43:18 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 86A1C9FF42B Received: by smtp46.i.mail.ru with esmtpa (envelope-from ) id 1rVSfF-000000027IA-3Oc7; Thu, 01 Feb 2024 11:43:18 +0300 Date: Thu, 1 Feb 2024 11:43:17 +0300 To: Sergey Kaplun Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Mailru-Src: smtp X-4EC0790: 10 X-7564579A: 646B95376F6C166E X-77F55803: 4F1203BC0FB41BD9A3FCF9DB4FFE09550F3821568BA28ED6F8DF3A4580FB22E5182A05F538085040D50EBFE48B2FC384F378A8CA21F699D68DF919D02A663DC38CACC14F0751AF36140F7B84D6E395BC X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE77E5C269A77776DF2EA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F79006375AFA801FF88E3EFD8638F802B75D45FF36EB9D2243A4F8B5A6FCA7DBDB1FC311F39EFFDF887939037866D6147AF826D870B452E015D9C8042A1594C75F2C1991A7C49A14DE12A0B6CC7F00164DA146DAFE8445B8C89999728AA50765F790063783E00425F71A4181389733CBF5DBD5E9C8A9BA7A39EFB766F5D81C698A659EA7CC7F00164DA146DA9985D098DBDEAEC8EDCF5861DED71B2F389733CBF5DBD5E9B5C8C57E37DE458BD9DD9810294C998ED8FC6C240DEA76428AA50765F79006379D8BEAEA37F56A0CD81D268191BDAD3DBD4B6F7A4D31EC0BE2F48590F00D11D6D81D268191BDAD3D78DA827A17800CE7AA7A4EF0F5BEAA0CEC76A7562686271ED91E3A1F190DE8FD2E808ACE2090B5E14AD6D5ED66289B5278DA827A17800CE754F43A495B1ACFC12EB15956EA79C166A417C69337E82CC275ECD9A6C639B01B78DA827A17800CE7E1BCFB2C0BE3F189731C566533BA786AA5CC5B56E945C8DA X-C1DE0DAB: 0D63561A33F958A53CCE752E390479F85002B1117B3ED696AD9C568EDD32D2B2C66B2B37046EC955823CB91A9FED034534781492E4B8EEADFB12F4B11BB5604FBDAD6C7F3747799A X-C8649E89: 1C3962B70DF3F0ADE00A9FD3E00BEEDF3FED46C3ACD6F73ED3581295AF09D3DF87807E0823442EA2ED31085941D9CD0AF7F820E7B07EA4CF8781630F87EFAD585B89224D991272EAED67385F33266CBCF664C0185C4A8A41792D7E5D32AAB0D0BAF4CF3B87E910B1B994CB83390E0F28968E5CA9F7A8A41A562471B9BC3B3D5C5F4332CA8FE04980913E6812662D5F2A54F6898A6FDCBDC72A617DFBE5FEC2C6383653B6C8D9AE0FD16FCAA6493B703A X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5ycPtXkTV4k65bRjmOUUP8cvGozZ33TWg5HZplvhhXbhDGzqmQDTd6OAevLeAnq3Ra9uf7zvY2zzsIhlcp/Y7m53TZgf2aB4JOg4gkr2biojqJaWtPsRtynnuJFJYqv1oQ== X-Mailru-Sender: 7940E2A4EB16C9970E7603824FE97C20749F9F5877CB80E191437EB218679B8210048753F523CB1AB6F7D78CE1F58EAD61AD1BC23DFB21333DDE9B364B0DF289BB83A8C3DAEBA78A61AAEF30F77CACB9EAB4BC95F72C04283CDA0F3B3F5B9367 X-Mras: Ok Subject: Re: [Tarantool-patches] [PATCH v2 luajit 17/26] test: enable in LuaJIT-tests 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: Maxim Kokryashkin via Tarantool-patches Reply-To: Maxim Kokryashkin Cc: tarantool-patches@dev.tarantool.org Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" Hi, Sergey! Thanks for the patch! Please consider my comments below. On Mon, Jan 29, 2024 at 01:45:17PM +0300, Sergey Kaplun wrote: > This patch changes `dofile()` (which uses an unreliable relative file > path and mutates `_G` with global functions to be defined) to the > corresponding require of the helper function. It adds groups with the > names of subtests and enables the test in . It renames structures > typedefs to avoid conflicts with cdef in other tests. The GC threshold > is increased since all tests run in a single process, so the number of > GC objects is greater. > > Part of tarantool/tarantool#9398 > --- > test/LuaJIT-tests/lib/ffi/ffi_new.lua | 50 +++++++++++++-------------- > test/LuaJIT-tests/lib/ffi/index | 1 + > 2 files changed, 26 insertions(+), 25 deletions(-) > > diff --git a/test/LuaJIT-tests/lib/ffi/ffi_new.lua b/test/LuaJIT-tests/lib/ffi/ffi_new.lua > index 9cdbd538..e5b19053 100644 > --- a/test/LuaJIT-tests/lib/ffi/ffi_new.lua > +++ b/test/LuaJIT-tests/lib/ffi/ffi_new.lua > @@ -1,37 +1,37 @@ > local ffi = require("ffi") > local bit = require("bit") > > -dofile("../common/ffi_util.inc") > +local fails = require("common.fails") > > ffi.cdef([[ > -typedef struct { int a,b,c; } foo1_t; > -typedef int foo2_t[?]; > +typedef struct { int a,b,c; } foo1_new_t; > +typedef int foo2_new_t[?]; `new` acts as a namespace here, which are conventionally go at the beginning. Here and below. > void *malloc(size_t size); > void free(void *ptr); > ]]) > > -do > - assert(ffi.sizeof("foo1_t") == 12) > - local cd = ffi.new("foo1_t") > +do --- foo1_new_t > + assert(ffi.sizeof("foo1_new_t") == 12) > + local cd = ffi.new("foo1_new_t") > assert(ffi.sizeof(cd) == 12) > - local foo1_t = ffi.typeof("foo1_t") > - assert(ffi.sizeof(foo1_t) == 12) > - cd = foo1_t() > + local foo1_new_t = ffi.typeof("foo1_new_t") > + assert(ffi.sizeof(foo1_new_t) == 12) > + cd = foo1_new_t() > assert(ffi.sizeof(cd) == 12) > end > > -do > - assert(ffi.sizeof("foo2_t", 3) == 12) > - local cd = ffi.new("foo2_t", 3) > +do --- foo2_new_t > + assert(ffi.sizeof("foo2_new_t", 3) == 12) > + local cd = ffi.new("foo2_new_t", 3) > assert(ffi.sizeof(cd) == 12) > - local foo2_t = ffi.typeof("foo2_t") > - fails(ffi.sizeof, foo2_t) > - assert(ffi.sizeof(foo2_t, 3) == 12) > - cd = foo2_t(3) > + local foo2_new_t = ffi.typeof("foo2_new_t") > + fails(ffi.sizeof, foo2_new_t) > + assert(ffi.sizeof(foo2_new_t, 3) == 12) > + cd = foo2_new_t(3) > assert(ffi.sizeof(cd) == 12) > end > > -do > +do --- byte to int cast > local tpi = ffi.typeof("int") > local tpb = ffi.typeof("uint8_t") > local t = {} > @@ -42,7 +42,7 @@ do > assert(x == 199*257 + 1) > end > > -do > +do --- aligned structure GC > local oc = collectgarbage("count") > for al=0,15 do > local align = 2^al -- 1, 2, 4, ..., 32768 > @@ -54,17 +54,17 @@ do > end > end > local nc = collectgarbage("count") > - assert(nc < oc + 3000, "GC step missing for ffi.new") > + assert(nc < oc * 10, "GC step missing for ffi.new") Are you sure that this is the lower bound of the GC threshold? > end > > -do > +do --- VLA > local t = {} > for i=1,100 do t[i] = ffi.new("int[?]", i) end > assert(ffi.sizeof(t[100]) == 400) > for i=0,99 do assert(t[100][i] == 0) end > end > > -do > +do --- VLS > local t = {} > local ct = ffi.typeof("struct { double x; int y[?];}") > for i=1,100 do t[i] = ct(i) end > @@ -72,7 +72,7 @@ do > for i=0,99 do assert(t[100].y[i] == 0) end > end > > -do > +do --- aligned(16) structure exit from trace > local ct = ffi.typeof("struct __attribute__((aligned(16))) { int x; }") > local y > for i=1,200 do > @@ -82,7 +82,7 @@ do > assert(bit.band(ffi.cast("intptr_t", ffi.cast("void *", y)), 15) == 0) > end > > -do > +do --- cdata resurrecting > local q > local p = ffi.gc(ffi.new("int[1]"), function(x) q = x end) > p = nil > @@ -93,13 +93,13 @@ do > assert(q == nil) > end > > -do > +do --- GC malloc free > local p = ffi.gc(ffi.C.malloc(2^20), ffi.C.free) > p = nil > collectgarbage() > end > > -do > +do --- test lua_close() cleanup > local p = ffi.gc(ffi.new("int[1]"), function(x) assert(type(x) == "cdata") end) > -- test for lua_close() cleanup. > end > diff --git a/test/LuaJIT-tests/lib/ffi/index b/test/LuaJIT-tests/lib/ffi/index > index 338a6930..e6c1fd0f 100644 > --- a/test/LuaJIT-tests/lib/ffi/index > +++ b/test/LuaJIT-tests/lib/ffi/index > @@ -15,6 +15,7 @@ ffi_jit_call.lua > ffi_jit_conv.lua > ffi_lex_number.lua > ffi_metatype.lua > +ffi_new.lua > istype.lua > jit_array.lua > jit_complex.lua > -- > 2.43.0 >