Tarantool development patches archive
 help / color / mirror / Atom feed
From: Igor Munkin via Tarantool-patches <tarantool-patches@dev.tarantool.org>
To: Timur Safin <tsafin@tarantool.org>
Cc: tarantool-patches@dev.tarantool.org
Subject: Re: [Tarantool-patches] [PATCH luajit 3/5] test: run LuaJIT tests via CMake
Date: Mon, 8 Feb 2021 19:29:30 +0300
Message-ID: <20210208162930.GF5448@tarantool.org> (raw)
In-Reply-To: <01d401d6fe2b$dd80c160$98824420$@tarantool.org>

Timur,

Thanks for your review!

On 08.02.21, Timur Safin wrote:
> Some code changes proposals below...
> 
> : From: Igor Munkin <imun@tarantool.org>
> : Subject: [PATCH luajit 3/5] test: run LuaJIT tests via CMake
> : 
> : diff --git a/test/tarantool-tests/CMakeLists.txt b/test/tarantool-
> : tests/CMakeLists.txt
> : new file mode 100644
> : index 0000000..0be4b34
> : --- /dev/null
> : +++ b/test/tarantool-tests/CMakeLists.txt
> : @@ -0,0 +1,92 @@
> : +# Test suite that has been moved from Tarantool repository in
> : +# scope of https://github.com/tarantool/tarantool/issues/4478.
> : +
> : +# See the rationale in the root CMakeLists.txt.
> : +cmake_minimum_required(VERSION 3.1 FATAL_ERROR)
> : +
> : +find_program(PROVE prove)
> : +if(NOT PROVE)
> : +  message(WARNING "`prove' is not found, so tarantool-tests target is not
> : generated")
> : +  return()
> : +endif()
> : +
> : +macro(BuildTestLib lib sources)
> : +  add_library(${lib} SHARED EXCLUDE_FROM_ALL ${sources})
> : +  target_include_directories(${lib} PRIVATE
> : +    ${LUAJIT_SOURCE_DIR}
> : +    ${CMAKE_CURRENT_SOURCE_DIR}
> : +  )
> ...
> : +  # XXX: Append the lib to be built to the dependecy list.
> : +  # Unfortunately, CMake is a crap and there is no other way to
> : +  # extend the list in parent scope but join two strings with
> : +  # semicolon. If one finds the normal way to make it work, feel
> : +  # free to reach me.
> : +  set(TESTLIBS "${lib};${TESTLIBS}" PARENT_SCOPE)
> 
> I don't like this. It reminds me of bad examples of this note
> in the libev code like "this is so uncontrollably lame" which
> actually distract users. We should rather put comments in more
> neutral way (IMVHO). 

Unfortunately... CMake is a crap and I can't fix it. Well, honestly I
don't want to fix it. But you're right: I can fix all these comments
(athough I don't really want to). I have no idea how to express this in
a more neutral way, so I propose the following:
1. s/CMake is a crap/there is no convenient way to make it in CMake/g.
2. Leave everything else unchanged.

This is not only emotions. Such comments prevent one from unintentional
refactoring of such fragile places with no failures and also from
bothering the oldies with the questions kinda "dude, why is this done so
badly". In other words, primarily I have left this for the history.

If you're OK, then I'll fix the way described above.

> 
> : +  # Add the directory where the lib is built to the LUA_CPATH
> : +  # environment variable, so interpreter can find and load it.
> : +  # XXX: Here we see the other side of the coin. If one joins two
> : +  # strings with semicolon, the value automatically becomes the
> : +  # list. I have no idea what is wrong with this tool, but I found
> : +  # a single working solution to make LUA_CPATH be a string via
> : +  # "escaping" the semicolon right in string interpolation.
> : +  set(LUA_CPATH
> : "${CMAKE_CURRENT_BINARY_DIR}/?${CMAKE_SHARED_LIBRARY_SUFFIX}\;${LUA_CPATH}"
> : PARENT_SCOPE)
> : +  # Also add this directory to LD_LIBRARY_PATH environment
> : +  # variable, so FFI machinery can find and load it.
> : +  set(LD_LIBRARY_PATH "${CMAKE_CURRENT_BINARY_DIR}:${LD_LIBRARY_PATH}"
> : PARENT_SCOPE)
> : +endmacro()
> : +
> : +add_subdirectory(gh-4427-ffi-sandwich)
> : +add_subdirectory(lj-flush-on-trace)
> : +add_subdirectory(misclib-getmetrics-capi)
> 
> I liked you introduced globs for test files addition (blow), 
> but unfortunately you didn't complete this with subdirectory addition

I have thought about it for some time, and I have a strong rationale (at
least for me) to not introducing such change: this doesn't work whether
there are directories inside containing no tests. Furthermore, we're
going to re-implement several C tests, so I would like to leave
everything as it is (if you don't mind) and return to this place later.

> 
> Please see my proposed patch (with reworded comments and new macro) here https://gist.github.com/tsafin/6c7505c0c764ab2b474667bf0d65fb45.
> 

<snipped>

> 
> Regards,
> Timur
> 

-- 
Best regards,
IM

  reply	other threads:[~2021-02-08 16:29 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-02 20:57 [Tarantool-patches] [PATCH luajit 0/5] Self-sufficient LuaJIT testing environment Igor Munkin via Tarantool-patches
2021-02-02 20:57 ` [Tarantool-patches] [PATCH luajit 1/5] build: preserve the original build system Igor Munkin via Tarantool-patches
2021-02-04 22:53   ` Timur Safin via Tarantool-patches
2021-02-08 15:56     ` Igor Munkin via Tarantool-patches
2021-02-09 11:38   ` Sergey Kaplun via Tarantool-patches
2021-02-09 12:47     ` Igor Munkin via Tarantool-patches
2021-02-09 14:45       ` Sergey Kaplun via Tarantool-patches
2021-02-09 15:28         ` Igor Munkin via Tarantool-patches
2021-02-10  9:35           ` Sergey Kaplun via Tarantool-patches
2021-02-02 20:57 ` [Tarantool-patches] [PATCH luajit 2/5] build: replace GNU Make with CMake Igor Munkin via Tarantool-patches
2021-02-04 22:53   ` Timur Safin via Tarantool-patches
2021-02-08 15:56     ` Igor Munkin via Tarantool-patches
2021-02-09 13:55       ` Timur Safin via Tarantool-patches
2021-02-09 15:09         ` Igor Munkin via Tarantool-patches
2021-02-11 19:23   ` Sergey Kaplun via Tarantool-patches
2021-02-16 15:28     ` Igor Munkin via Tarantool-patches
2021-02-18  9:56       ` Sergey Kaplun via Tarantool-patches
2021-02-20 19:18         ` Igor Munkin via Tarantool-patches
2021-02-27 10:48           ` Sergey Kaplun via Tarantool-patches
2021-02-28 18:18             ` Igor Munkin via Tarantool-patches
2021-02-13  3:47   ` Sergey Kaplun via Tarantool-patches
2021-02-16 15:32     ` Igor Munkin via Tarantool-patches
2021-02-02 20:57 ` [Tarantool-patches] [PATCH luajit 3/5] test: run LuaJIT tests via CMake Igor Munkin via Tarantool-patches
2021-02-08 15:05   ` Timur Safin via Tarantool-patches
2021-02-08 16:29     ` Igor Munkin via Tarantool-patches [this message]
2021-02-09  8:16       ` Timur Safin via Tarantool-patches
2021-02-09  8:43         ` Igor Munkin via Tarantool-patches
2021-02-09 13:59           ` Timur Safin via Tarantool-patches
2021-02-09 15:10             ` Igor Munkin via Tarantool-patches
2021-02-14 18:48   ` Sergey Kaplun via Tarantool-patches
2021-02-19 19:04     ` Igor Munkin via Tarantool-patches
2021-02-27 13:50       ` Sergey Kaplun via Tarantool-patches
2021-02-28 18:18         ` Igor Munkin via Tarantool-patches
2021-02-02 20:57 ` [Tarantool-patches] [PATCH luajit 4/5] test: fix warnings found with luacheck in misclib* Igor Munkin via Tarantool-patches
     [not found]   ` <012f01d6fe1a$a2aa6890$e7ff39b0$@tarantool.org>
2021-02-08 15:57     ` Igor Munkin via Tarantool-patches
     [not found]     ` <2c495492-50f4-acfd-ad66-2cb44abb5fa1@tarantool.org>
2021-02-08 15:40       ` Sergey Bronnikov via Tarantool-patches
2021-02-08 15:58       ` Igor Munkin via Tarantool-patches
2021-02-14 19:16   ` Sergey Kaplun via Tarantool-patches
2021-02-16 15:29     ` Igor Munkin via Tarantool-patches
2021-02-16 16:36       ` Sergey Kaplun via Tarantool-patches
2021-02-02 20:57 ` [Tarantool-patches] [PATCH luajit 5/5] test: run luacheck static analysis via CMake Igor Munkin via Tarantool-patches
2021-02-04 22:52   ` Timur Safin via Tarantool-patches
2021-02-08 15:57     ` Igor Munkin via Tarantool-patches
2021-02-14 19:32   ` Sergey Kaplun via Tarantool-patches
2021-02-19 19:14     ` Igor Munkin via Tarantool-patches
2021-02-28 22:04 ` [Tarantool-patches] [PATCH luajit 0/5] Self-sufficient LuaJIT testing environment Igor Munkin via Tarantool-patches

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=20210208162930.GF5448@tarantool.org \
    --to=tarantool-patches@dev.tarantool.org \
    --cc=imun@tarantool.org \
    --cc=tsafin@tarantool.org \
    /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

Tarantool development patches archive

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://lists.tarantool.org/tarantool-patches/0 tarantool-patches/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 tarantool-patches tarantool-patches/ https://lists.tarantool.org/tarantool-patches \
		tarantool-patches@dev.tarantool.org.
	public-inbox-index tarantool-patches

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git