Re: svn commit: r1922086 - /subversion/trunk/CMakeLists.txt

Timofei Zhakov <[email protected]>
Newsgroups gmane.comp.version-control.subversion.svn,gmane.comp.search.solr.devel
Message-ID <CAPD1kXQKv-RqKEKNZJme8QwzhRzBzT3ekCT3ySCutUNk6gLZow@mail.gmail.com>
On Tue, Nov 26, 2024 at 11:11 AM Daniel Sahlberg <
[email protected]> wrote:

> Den mån 25 nov. 2024 kl 15:10 skrev <[email protected]>:
>
>> ### This makes configure step too slow if the option is enabled. Can we
>> ### prevent regeneration of the tests list if these files haven't been
>> ### changed? Probably, I'll look at this a bit more, if we consider this
>> ### as an issue.
>> ###
>> ### However, when I measured the time taken to configure CMake, I got just
>> ### 6.5s with the option enabled, against 0.8s when it has been
>> disabled...
>>
>
> This looks great. I think the slowdown is more than acceptable since:
> - It is off by default so it won't slowdown a non-user.
> - It adds a lot of value to those who use it.
>
> If you find an easy way to recover this lost time it'd be nice but I think
> other things should have higher priority.
>

Going a bit off-topic:

This makes it take a lot of time to run the tests, especially with CMake,
which doesn't support parallel execution. For example, in my environment,
it takes 6.4 min to run only merge_tests.py (it includes 146 subtests). For
instance, I am measuring it with cmake and EXPAND_TESTS option enabled.

However, it's so complicated to implement the parallel execution, because
the Subversion test-suite needs to create repositories and working copies
for sharing between the tests. Usually, it does it when tests are beginning
to run, like when `make check` has been invoked.

So, if a few tests are running at the same time, they will try to create
one working-copy over another, causing a failure.

To try it out, run the tests using `ctest -j 16` command (it will fail).

-- 
Timofei Zhakov
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.