Re: [PATCH v2 6/7] cmake: use test names instead of full paths
- From
- Phillip Wood <phillip.wood123@gmail.com>
- Date
- Sep 22, 2023, 14:37 UTC
- Message-ID
- <7d1d78c5-5781-4f5e-90f3-c02e74af31b2@gmail.com>
- In-Reply-To
- <41228df1b469d9a79f3278fe8c1ca37082600669.1695070468.git.gitgitgadget@gmail.com>
Hi Johannes
On 18/09/2023 21:54, Johannes Schindelin via GitGitGadget wrote:
Show 16 quoted lines
> From: Johannes Schindelin <johannes.schindelin@gmx.de> > > The primary purpose of Git's CMake definition is to allow developing Git > in Visual Studio. As part of that, the CTest feature allows running > individual test scripts conveniently in Visual Studio's Test Explorer. > > However, this Test Explorer's design targets object-oriented languages > and therefore expects the test names in the form > `<namespace>.<class>.<testname>`. And since we specify the full path > of the test scripts instead, including the ugly `/.././t/` part, these > dots confuse the Test Explorer and it uses a large part of the path as > "namespace". > > Let's just use `t.<name>` instead. This still adds an ugly "Empty > Namespace" layer by default, but at least the ugly absolute path is now > gone.
That does sound like a worthwhile improvement. If we used `git.t.<name>` would that fix the "Empty Namespace" problem? (probably not worth a re-roll on its own)
Best Wishes
Phillip
Show 26 quoted lines
> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
> ---
> contrib/buildsystems/CMakeLists.txt | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/contrib/buildsystems/CMakeLists.txt b/contrib/buildsystems/CMakeLists.txt
> index ad197ea433f..ff1a8cc348f 100644
> --- a/contrib/buildsystems/CMakeLists.txt
> +++ b/contrib/buildsystems/CMakeLists.txt
> @@ -1106,13 +1106,14 @@ file(GLOB test_scripts "${CMAKE_SOURCE_DIR}/t/t[0-9]*.sh")
>
> #test
> foreach(tsh ${test_scripts})
> - add_test(NAME ${tsh}
> + string(REGEX REPLACE ".*/(.*)\\.sh" "\\1" test_name ${tsh})
> + add_test(NAME "t.${test_name}"
> COMMAND ${SH_EXE} ${tsh} --no-bin-wrappers --no-chain-lint -vx
> WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/t)
> endforeach()
>
> # This test script takes an extremely long time and is known to time out even
> # on fast machines because it requires in excess of one hour to run
> -set_tests_properties("${CMAKE_SOURCE_DIR}/t/t7112-reset-submodule.sh" PROPERTIES TIMEOUT 4000)
> +set_tests_properties("t.t7112-reset-submodule" PROPERTIES TIMEOUT 4000)
>
> endif()#BUILD_TESTING