[Tarantool-patches] [PATCH luajit][v2] cmake: replace prove with CTest

Maxim Kokryashkin m.kokryashkin at tarantool.org
Thu Nov 16 19:15:41 MSK 2023


Hi, Sergey!
Thanks for the patch!
LGTM
--
Best regards,
Maxim Kokryashkin
 
  
>Суббота, 11 ноября 2023, 20:05 +03:00 от Sergey Bronnikov via Tarantool-patches <tarantool-patches at dev.tarantool.org>:
> 
>Hi, Igor
>
>On 10/31/23 22:17, Igor Munkin wrote:
>> Sergey,
>>
>> Thanks for the patch! I have some general comments prior to make more
>> precise review for the particular changeset.
>>
>> 1. Unfortunately, the old scenario is broken:
>> The recipe I used to run for building and running LuaJIT test is the
>> following one:
>> | $ cmake . -DCMAKE_BUILD_TYPE=Debug -DLUA_USE_ASSERT=ON -DLUA_USE_APICHECK=ON && make -j test
>> As a result of the changes, <test> target doesn't build the
>> dependencies (neither luajit per se, nor particular test helpers
>> required to be compiled). So the recipe is transformed to this one:
>> | $ cmake . -DCMAKE_BUILD_TYPE=Debug -DLUA_USE_ASSERT=ON -DLUA_USE_APICHECK=ON
>> | $ make -j # build LuaJIT
>> | $ make -j tarantool-tests # run the particular suite to build the requirements
>> | $ make -j tarantool-c-tests # ditto
>> | $ make -j PUC-Rio-Lua-5.1-tests # some binary artefacts for Lua suite
>> | $ make -j test
>> Looks not such convenient comparing to the old mantra.
>
>Updated patch a bit. Now steps are the same:
>
>     $ cmake -S . -B build
>     $ cmake --build build
>     $ cmake --build --target LuaJIT-test
>
>ctest and test target works too.
>
>
>>
>> 2. The new CTest targets should follow the existing naming practice
>> (i.e. use the directory name, or its distinctive prefix), since the
>> following command runs three suites.
>> | $ ctest -L lua # runs lua, luajit and lua-harness
>Updated labels, now labels are equals to prefix of appropriate testsuite.
>>
>> 3. It looks like the logs will not be showed in CI to debug a
>> hard-reproducible issue if one occurs. <--output-on-failure> can be a
>> saviour here for us.
>
>This option is already used by test targets, see TEST_FLAGS in
>test/CMakeLists.txt.
>
>If you run tests by ctest then you should set env variable
>CTEST_OUTPUT_ON_FAILURE=1.
>
>Another option is setting default ctest options via
>CMAKE_CTEST_ARGUMENTS, but it is available since CMake 3.17.
>
>>
>> 4. I'm afraid the current changes break integration with Tarantool
>> tests. The reason is duplication of <test> target both in LuaJIT and
>> Tarantool build systems. AFAIU, moving <enable_testing> under the
>> condition similar to the one handled with LUAJIT_USE_TEST option
>> doesn't solve the issue, since no test will be run as a result.
>> Please check this part: it might be the main technical blocker for
>> this changeset.
>
>No, it doesn't break integration. Letter with patch has  a link to PR to
>tarantool repository,
>
>all CI tests are passed.
>
>> 5. I remember that we're talking regarding running particular tests for
>> all suites, but I see this is done only for tarantool* and lua-Harness.
>> Is it experimental and you'll fix it later in scope of this PR? There
>> is definitely the way to run a particular test in LuaJIT suite
>> (AFAIR, you can just use its number). Regarding PUC-Rio-Lua-5.1 we
>> can think about replacing all.lua as a runner as it's done in uJIT.
>
>The patch replaces prove with ctest. Updating test runner for PUC Rio
>Lua and LuaJIT testsuites
>
>is out of scope for this patch. This could be done later and by someone
>else.
>
>>
>> I believe that's all for the starters.
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.tarantool.org/pipermail/tarantool-patches/attachments/20231116/6edaaeda/attachment.htm>


More information about the Tarantool-patches mailing list