On Tue, Nov 26, 2024 at 6:45 AM Nathan Hartman <hartman.nat...@gmail.com>
wrote:

> On Tue, Nov 26, 2024 at 6:27 AM Timofei Zhakov <t...@chemodax.net> wrote:
>
>> On Tue, Nov 26, 2024 at 11:11 AM Daniel Sahlberg <
>> daniel.l.sahlb...@gmail.com> wrote:
>>
>>> Den mån 25 nov. 2024 kl 15:10 skrev <rin...@apache.org>:
>>>
>>>> ### 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
>>
>
> The first idea that comes to my mind is to somehow uniquify the test repos
> and working copies, perhaps by putting them in a subdirectory named for the
> test, so (just picking something by random) merge test #123 might have its
> test data in ....../merge_tests/123/.... Then if multiple tests run
> simultaneously they shouldn't bother each other.
>
> Of course, how that would happen is another matter. Perhaps the test
> driver could record which test it is about to run and the repo and wc
> creation could use that information?
>

(hit send too soon)

I meant record it in a variable, not on disk obviously or else that
information would get clobbered by parallel running tests!!

Cheers,
> Nathan
>

Reply via email to