Tarantool development patches archive
 help / color / mirror / Atom feed
From: Igor Munkin via Tarantool-patches <tarantool-patches@dev.tarantool.org>
To: Sergey Kaplun <skaplun@tarantool.org>
Cc: tarantool-patches@dev.tarantool.org
Subject: Re: [Tarantool-patches] [PATCH v4 luajit 0/6] Reworking C tests
Date: Tue, 4 Jul 2023 17:10:33 +0000	[thread overview]
Message-ID: <ZKRSiSUzJOTnApJT@tarantool.org> (raw)
In-Reply-To: <cover.1686383897.git.skaplun@tarantool.org>

Sergey,

I've checked the patchset into all long-term branches in
tarantool/luajit and bumped a new version in master, release/2.11 and
release/2.10.

On 10.06.23, Sergey Kaplun wrote:
> The whole idea of the patch-set introduce module for LuaJIT C tests. It
> also, can be used for unit tests.
> * The first patch is the prerequisite for the patch-set. It fixes
>   LD_LIBRARY_PATH definition.
> * The 2nd and 3d patches provides an API and helper for writing the tests.
> * The last 3 patches rewrite existing tests that should be written in C in
>   the proper way.
> 
> Branch: https://github.com/tarantool/luajit/tree/skaplun/gh-noticket-tarantool-c-tests
> PR: https://github.com/tarantool/tarantool/pull/8444
> Related Issue:
> * https://github.com/tarantool/tarantool/issues/7900
> * https://github.com/tarantool/tarantool/issues/781
> 
> Changes in v2:
> 1) use
> 
> | int _test_run_group(const char *group_name, const struct test_unit tests[],
> | 		    size_t n_tests, void *test_state);
> 
> instead of
> 
> | int _test_run_group(const char *group_name, const struct test_unit *tests,
> | 		    size_t n_tests, void *test_state);
> 
> 2) `skip()` `skip_all()` and `todo()` helpers now return values to be
> return to runner.
> i.e. change usage from
> | if (cond)
> | 	skip("NIY");
> to
> | if (cond)
> | 	return skip("NIY");
> 
> `bail_out()` helper still just exits with error code, which corresponding
> its standard specification.
> 
> But now some parts of the code start to look "alya cringe":
> | return todo("Need to replace backtrace with libunwind first");
> | lua_State *L = test_state;
> | utils_get_aux_lfunc(L);
> | (void)luaJIT_setmode(L, 0, LUAJIT_MODE_ENGINE | LUAJIT_MODE_OFF);
> | (void)luaJIT_setmode(L, 0, LUAJIT_MODE_ENGINE | LUAJIT_MODE_FLUSH);
> | check_profile_func(L);
> | (void)luaJIT_setmode(L, 0, LUAJIT_MODE_ENGINE | LUAJIT_MODE_ON);
> | return TEST_EXIT_SUCCESS;
> 
> (Yes, we want to use unconditional `todo()`).
> So I commented the similar code, helper `check_profile_func()`, etc.
> with `#if 0`.
> 
> 3) In 4th patch use subtest group for snap-related tests to skip all at
> once with disabled JIT.
> 
> 4) lj-49-bad-lightuserdata is moved in C tests, too.
> 
> Changes in the v3:
> 
> 1) Now helper `utils_load_aux_script()` from <utils.h> accepts the
>    filename of the Lua script to load (so, now define for test contains
>    the directory instead of the test filename).
> 2) Add README.md for the 3rd commit with an example of usage.
> 3) Add unit tests (ok, skip, todo) for <test.c> lib.
> 4) Move test builds to the 2nd commit to launch unit test
>    (<unit-tap.test.c>), updating here <.gitignore> too.
> 5) Fix typos.
> 
> Changes in v4:
> 1) Describe why the 1st patch is neccessary for this patchset in the
>    commit message.
> 2) Move adding of the README.md in the second commit with description of
>    directives and assert macros.
> 3) More verbose comments.
> 
> Sergey Kaplun (6):
>   test: fix setting of {DY}LD_LIBRARY_PATH variables
>   test: introduce module for C tests
>   test: introduce utils.h helper for C tests
>   test: rewrite misclib-getmetrics-capi test in C
>   test: rewrite misclib-sysprof-capi test in C
>   test: rewrite lj-49-bad-lightuserdata test in C
> 

<snipped>

> 
> -- 
> 2.34.1
> 

-- 
Best regards,
IM

      parent reply	other threads:[~2023-07-04 17:21 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-10  8:03 Sergey Kaplun via Tarantool-patches
2023-06-10  8:03 ` [Tarantool-patches] [PATCH v4 luajit 1/6] test: fix setting of {DY}LD_LIBRARY_PATH variables Sergey Kaplun via Tarantool-patches
2023-06-14  8:42   ` Sergey Bronnikov via Tarantool-patches
2023-06-10  8:03 ` [Tarantool-patches] [PATCH v4 luajit 2/6] test: introduce module for C tests Sergey Kaplun via Tarantool-patches
2023-06-14  8:47   ` Sergey Bronnikov via Tarantool-patches
2023-06-10  8:03 ` [Tarantool-patches] [PATCH v4 luajit 3/6] test: introduce utils.h helper " Sergey Kaplun via Tarantool-patches
2023-06-14  8:49   ` Sergey Bronnikov via Tarantool-patches
2023-06-10  8:03 ` [Tarantool-patches] [PATCH v4 luajit 4/6] test: rewrite misclib-getmetrics-capi test in C Sergey Kaplun via Tarantool-patches
2023-06-14  8:49   ` Sergey Bronnikov via Tarantool-patches
2023-06-10  8:03 ` [Tarantool-patches] [PATCH v4 luajit 5/6] test: rewrite misclib-sysprof-capi " Sergey Kaplun via Tarantool-patches
2023-06-14  8:50   ` Sergey Bronnikov via Tarantool-patches
2023-06-10  8:03 ` [Tarantool-patches] [PATCH v4 luajit 6/6] test: rewrite lj-49-bad-lightuserdata " Sergey Kaplun via Tarantool-patches
2023-07-04 17:10 ` Igor Munkin via Tarantool-patches [this message]

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=ZKRSiSUzJOTnApJT@tarantool.org \
    --to=tarantool-patches@dev.tarantool.org \
    --cc=imun@tarantool.org \
    --cc=skaplun@tarantool.org \
    --subject='Re: [Tarantool-patches] [PATCH v4 luajit 0/6] Reworking C tests' \
    /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