On 2024/09/22 22:55, Timofei Zhakov wrote:
> On Sun, Sep 22, 2024 at 2:02 AM Jun Omae <jun6...@gmail.com> wrote:
>>
>> On 2024/09/21 5:50, Timofei Zhakov wrote:
>>> On Fri, Sep 20, 2024 at 11:30 AM Jun Omae <jun6...@gmail.com> wrote:
>>>>
>>>> Hi,
>>>>
>>>> On 2024/09/16 21:41, rin...@apache.org wrote:
>>>>> Author: rinrab
>>>>> Date: Mon Sep 16 12:41:13 2024
>>>>> New Revision: 1920717
>>>>>
>>>>> URL: http://svn.apache.org/viewvc?rev=1920717&view=rev
>>>>> Log:
>>>>> Merge the `cmake` branch to trunk.
>>>>
>>>> I encounter the following error on all of cmdline.* tests with Visual 
>>>> Studio
>>>> as cmake generator.
>>>>
>>>> [[[
>>> [...]
>>>> ]]]
>>>>
>>>> The exception is raised when launching <build-dir>/svnadmin.exe because the
>>>> file is actually located in <build-dir>/Release/svnadmin.exe. It is not 
>>>> raised
>>>> when cmake with Ninja is used because <build-dir>/svnadmin.exe is located.
>>>>
>>>> I think we could use $<TARGET_FILE_DIR:target> instead of
>>>> ${CMAKE_CURRENT_BINARY_DIR} as a workaround.
>>>>
>>>> [[[
>>>> Index: CMakeLists.txt
>>>> ===================================================================
>>>> --- CMakeLists.txt      (revision 1920797)
>>>> +++ CMakeLists.txt      (working copy)
>>>> @@ -671,13 +671,13 @@
>>>>            "cmdline.${py_test_name}"
>>>>          COMMAND
>>>>            "${Python3_EXECUTABLE}" 
>>>> "${CMAKE_CURRENT_SOURCE_DIR}/build/run_tests.py"
>>>> -          --bin ${CMAKE_CURRENT_BINARY_DIR}
>>>> -          --tools-bin ${CMAKE_CURRENT_BINARY_DIR}
>>>> +          --bin $<TARGET_FILE_DIR:svnadmin>
>>>> +          --tools-bin $<TARGET_FILE_DIR:entries-dump>
>>>>            --verbose
>>>>            --log-to-stdout
>>>>            --set-log-level=WARNING
>>>>            ${CMAKE_CURRENT_SOURCE_DIR}
>>>> -          ${CMAKE_CURRENT_BINARY_DIR}
>>>> +          $<TARGET_FILE_DIR:svnadmin>
>>>>            ${py_test_path}
>>>>        )
>>>>      endif()
>>>> ]]]
>>>
>>> Oh, I didn't notice this problem, because I am using a single config
>>> generator. I think the suggested code is great for resolving the
>>> issue, because I think there is no generator expression to get the
>>> target dir in the current config without a specific target. However, I
>>> think it's better to use svn's target dir since it's the main
>>> executable and maybe the same for tools (?). It actually should be the
>>> same for all targets, so it doesn't meter.
>>>
>>> Also, I think we should add some multi-config generator tests to the
>>> GitHub Actions workflow, to prevent similar problems in future.
>>>
>>
>> I use "svnadmin" for target directory because we use "svnadmin" to create a
>> test repository before using "svn" to check out the repository. Well, using
>> "svn" is okay to me.
> 
> Okay.
> 
>> Revised the proposed patch, in addition, added use of VS2022 to the matrix:
>> cmake-test-build-dir.v2.patch.txt (attached).
> 
> Would this be better to separate this patch by two different commits,
> with tests and GitHub actions?

Yeah. Separated the commit to two commits:

 - 
https://github.com/apache/subversion/commit/5dff28422740659ea9031d7287ce33785cd08a4b
 - 
https://github.com/apache/subversion/commit/c456dfd0311201baab3f3eaf94573ed8b1ba408a

>> However, the same issue occurs on ra-test. I think the issue should be 
>> occurred
>> also when Ninja is used with build directory being outside of source tree 
>> (e.g.
>> %TMP%\svn-out). Because "../../svnserve/svnserve.exe" and "svnserve.exe" are
>> searched.
>>
>> [[[
>> 40: Test command: D:\a\subversion\subversion\out\Release\ra-test.exe 
>> "--srcdir" "D:/a/subversion/subversion/subversion/tests/libsvn_ra"
>> 40: Working Directory: D:/a/subversion/subversion/out
>> 40: Test timeout computed to be: 10000000
>> 40: PASS:  ra-test 1: test svn_ra_get_location_segments
>> 40: PASS:  ra-test 2: test ra_svn tunnel callback check
>> 40: svn_tests: E170013: Unable to connect to a repository at URL 
>> 'svn+test://localhost/test-repo-tunnel'
>> 40: svn_tests: E200006: Could not find svnserve. Checked paths:
>> 40:   D:\a\subversion\svnserve\svnserve.exe
>> 40:   D:\a\subversion\subversion\out\svnserve.exe
>> 40: FAIL:  ra-test 3: test ra_svn tunnel creation callbacks
>> 40: PASS:  ra-test 4: lock multiple paths
>> 40: PASS:  ra-test 5: test ra_get_dir2
>> ...
>> ]]]
> 
> I think changing the working directory of where the tests are running
> to the build directory in the current config.
> 
> See 'svn-cmake-ctest-working-directory.patch.txt' in the attachments.

Thanks for the patch. However, after the patch, tests with both ninja and
vs2022 failed. See 
https://github.com/jun66j5/subversion/actions/runs/10987698238

I don't think `--srcdir` option should be changed. Reverting the changes
for the option, jobs except ubuntu successed.

 - 
https://github.com/apache/subversion/compare/trunk...jun66j5:subversion:cmake-pytests-build-dir
 - https://github.com/jun66j5/subversion/actions/runs/10988627279

-- 
Jun Omae <jun6...@gmail.com> (大前 潤)

Reply via email to