Hi! I see four ‘ok’s as a result of run. See the full output for the run with dump() below: s.ostanevich@s-ostanevich2:~/workspaces/t.sergos/third_party/luajit/test/tarantool-tests % ../../../../build-debug/src/tarantool -e 'require"jit.dump".start("ib")' lj-408-tonumber-cdata-record.test.lua TAP version 13 1..4 ---- TRACE 1 start lj-408-tonumber-cdata-record.test.lua:17 0001 GGET 1 0 ; "tonumber" 0002 MOV 3 0 0003 CALL 1 2 2 0000 . FUNCC ; tonumber 0004 RET1 1 2 ---- TRACE 1 IR 0001 fun SLOAD #0 R 0002 tab FLOAD 0001 func.env 0003 int FLOAD 0002 tab.hmask 0004 > int EQ 0003 +63 0005 p64 FLOAD 0002 tab.node 0006 > p64 HREFK 0005 "tonumber" @8 0007 > fun HLOAD 0006 0008 > cdt SLOAD #2 T 0009 > fun EQ 0007 tonumber ---- TRACE 1 stop -> return ok - recorded with NULL and not converted for NULL ---- TRACE 2 start tap.lua:44 0001 TGETS 4 0 0 ; "total" 0002 ADDVN 4 4 0 ; 1 0003 TSETS 4 0 0 ; "total" 0004 GGET 4 1 ; "io" 0005 TGETS 4 4 2 ; "write" 0006 GGET 6 3 ; "string" 0007 TGETS 6 6 4 ; "rep" 0008 KSTR 8 5 ; " " 0009 TGETS 9 0 6 ; "level" 0010 MULNV 9 9 1 ; 4 0011 CALL 6 0 3 0000 . FUNCC ; string.rep 0012 CALLM 4 1 0 0000 . FUNCC ; io.write 0013 ISF 1 0014 JMP 4 => 0025 0015 GGET 4 1 ; "io" 0016 TGETS 4 4 2 ; "write" 0017 GGET 6 3 ; "string" 0018 TGETS 6 6 7 ; "format" 0019 KSTR 8 8 ; "ok - %s\n" ---- TRACE 2 abort tap.lua:48 -- error thrown or hook called during recording ok - recorded with NULL and converted for 0LL ---- TRACE flush ---- TRACE 1 start lj-408-tonumber-cdata-record.test.lua:17 0001 GGET 1 0 ; "tonumber" 0002 MOV 3 0 0003 CALL 1 2 2 0000 . FUNCC ; tonumber 0004 RET1 1 2 ---- TRACE 1 IR 0001 fun SLOAD #0 R 0002 tab FLOAD 0001 func.env 0003 int FLOAD 0002 tab.hmask 0004 > int EQ 0003 +63 0005 p64 FLOAD 0002 tab.node 0006 > p64 HREFK 0005 "tonumber" @8 0007 > fun HLOAD 0006 0008 > cdt SLOAD #2 T 0009 > fun EQ 0007 tonumber 0010 u16 FLOAD 0008 cdata.ctypeid 0011 > int EQ 0010 +11 0012 i64 FLOAD 0008 cdata.int64 0013 num CONV 0012 num.i64 ---- TRACE 1 stop -> return ok - recorded with 0LL and converted for 0LL ---- TRACE 2 start tap.lua:44 0001 TGETS 4 0 0 ; "total" 0002 ADDVN 4 4 0 ; 1 0003 TSETS 4 0 0 ; "total" 0004 GGET 4 1 ; "io" 0005 TGETS 4 4 2 ; "write" 0006 GGET 6 3 ; "string" 0007 TGETS 6 6 4 ; "rep" 0008 KSTR 8 5 ; " " 0009 TGETS 9 0 6 ; "level" 0010 MULNV 9 9 1 ; 4 0011 CALL 6 0 3 0000 . FUNCC ; string.rep 0012 CALLM 4 1 0 0000 . FUNCC ; io.write 0013 ISF 1 0014 JMP 4 => 0025 0015 GGET 4 1 ; "io" 0016 TGETS 4 4 2 ; "write" 0017 GGET 6 3 ; "string" 0018 TGETS 6 6 7 ; "format" 0019 KSTR 8 8 ; "ok - %s\n" ---- TRACE 2 abort tap.lua:48 -- error thrown or hook called during recording ok - recorded with 0LL and not converted for NULL ---- TRACE 2 start tarantool.lua:66 0016 UGET 2 1 ; fiber 0017 TGETS 2 2 4 ; "sleep" 0018 MOV 4 1 0019 CALL 2 1 2 0000 . FUNCC ; C:10b23f5e0 ---- TRACE 2 IR 0001 fun SLOAD #0 R 0002 > p64 UREFC 0001 #1 0003 > tab ULOAD 0002 0004 int FLOAD 0003 tab.hmask 0005 > int EQ 0004 +31 0006 p64 FLOAD 0003 tab.node 0007 > p64 HREFK 0006 "sleep" @4 0008 > fun HLOAD 0007 0009 > num SLOAD #3 T 0010 > fun EQ 0008 C:10b23f5e0 ---- TRACE 2 stop -> stitch s.ostanevich@s-ostanevich2:~/workspaces/t.sergos/third_party/luajit/test/tarantool-tests % git status HEAD detached at ae79d993 Untracked files: (use "git add ..." to include in what will be committed) ../../patch ../../src/lj_opt_narrow.c.orig ../../src/lj_opt_narrow.c.rej gh-6976-narrowing-of-unary-minus.test.lua lj-408-tonumber-cdata-record.test.lua nothing added to commit but untracked files present (use "git add" to track) s.ostanevich@s-ostanevich2:~/workspaces/t.sergos/third_party/luajit/test/tarantool-tests % git diff s.ostanevich@s-ostanevich2:~/workspaces/t.sergos/third_party/luajit/test/tarantool-tests % s.ostanevich@s-ostanevich2:~/workspaces/t.sergos/third_party/luajit/test/tarantool-tests % git -C ../../../.. describe 2.11.0-entrypoint-494-gdc147ec91 > On 21 Sep 2022, at 15:03, Sergey Kaplun wrote: > > Hi, Sergos! > > Thanks for the review! > > On 20.09.22, sergos wrote: >> First of all: >> >> s.ostanevich@s-ostanevich2:~/workspaces/t.sergos % uname -a >> Darwin s-ostanevich2 21.6.0 Darwin Kernel Version 21.6.0: Mon Aug 22 20:17:10 PDT 2022; root:xnu-8020.140.49~2/RELEASE_X86_64 x86_64 >> >> Then I just built Tarantool with ninja: > > I tried run the test suite with ninja, but it's failed: > | $ ninja -C build tarantool-tests > | ... > | /home/burii/builds_workspace/tarantool/master/third_party/luajit/test/tarantool-tests/lj-408.test.lua ...................................... > | not ok - recorded with NULL and converted for 0LL > | Dubious, test returned 1 (wstat 256, 0x100) > | Failed 1/4 subtests > |... > | ninja: build stopped: subcommand failed. > >> >> Tarantool 2.11.0-entrypoint-494-gdc147ec91 >> Target: Darwin-x86_64-debug >> >> Then I brought the test as a patch from the mail and run ninja test. > > May you check the test output running without ninja like the follwing, > please: > > | $ ../src/tarantool app-tap/lj-408-tonumber-cdata-record.test.lua > | TAP version 13 > | 1..4 > | ok - recorded with NULL and not converted for NULL > | not ok - recorded with NULL and converted for 0LL > | --- > | filename: app-tap/lj-408-tonumber-cdata-record.test.lua > | line: 0 > | trace: > | - line: 0 > | source: '@app-tap/lj-408-tonumber-cdata-record.test.lua' > | filename: app-tap/lj-408-tonumber-cdata-record.test.lua > | what: main > | namewhat: > | src: app-tap/lj-408-tonumber-cdata-record.test.lua > | ... > | ok - recorded with 0LL and converted for 0LL > | ok - recorded with 0LL and not converted for NULL > | # failed subtest: 1 > > Also, please, check `jit.dump()` output. Maybe there is not trace for > some reason. > You can run the following command: > | $ ../src/tarantool -e 'require"jit.dump".start("ib")' app-tap/lj-408-tonumber-cdata-record.test.lua > > The start of output should be the following without the patch. > > | 1..4 > | ---- TRACE 1 start lj-408-tonumber-cdata-record.test.lua:17 > | 0001 GGET 1 0 ; "tonumber" > | 0002 MOV 2 0 > | 0003 CALL 1 2 2 > | 0000 . FUNCC ; tonumber > | 0004 RET1 1 2 > | ---- TRACE 1 IR > | 0001 fun SLOAD #0 R > | 0002 tab FLOAD 0001 func.env > | 0003 int FLOAD 0002 tab.hmask > | 0004 > int EQ 0003 +63 > | 0005 p32 FLOAD 0002 tab.node > | 0006 > p32 HREFK 0005 "tonumber" @8 > | 0007 > fun HLOAD 0006 > | 0008 > cdt SLOAD #1 T > | 0009 > fun EQ 0007 tonumber > | ---- TRACE 1 stop -> return > | ... > >> >> The output says the test passes, while sources contains no patch. Am I missing something? >> >> Sergos >> > > > >>> >> > > -- > Best regards, > Sergey Kaplun