fix git-annex test -p

test: When limiting tests to run with -p, work around tasty limitation by
automatically including dependent tests.

This fixes a reversion because it didn't used to use dependencies and
forced tasty to run the init tests first. That changed when parallelizing
the test suite.

It will sometimes do a little more work than strictly required,
because it adds init tests deps when limited to eg quickcheck tests,
which don't depend on them. But this only adds a few seconds work.

Sponsored-by: Dartmouth College's Datalad project
This commit is contained in:
Joey Hess 2022-05-23 14:12:24 -04:00
parent 478ed28f98
commit 85f9193167
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
4 changed files with 37 additions and 13 deletions

View file

@ -1,14 +1,19 @@
The changes to make `git-annex test` concurrent have
broken using eg `git-annex test -p 'concurrent get of dup key regression'`
The problem is that tasty is being run with a subset of tests in each
runner, so most of them don't know about the test they're being limited to
perform.
There either needs to be a way to disable concurrency (eg, run all tests
in one runner with -J1), or the code detect when tasty is limited, and
automatically disable concurrency.
Also, it looks like the repo setup test is not being run, even though it's
It looks like the repo setup test is not being run, even though it's
supposed to be a dependency of the test it was limited to.
--[[Joey]]
> Oh, that seems to be a limitation of tasty. From its docs:
If Test B depends on Test A, remember that either of them may be
filtered out using the --pattern option. Collecting the dependency
info happens after filtering. Therefore, if Test A is filtered out,
Test B will run unconditionally, and if Test B is filtered out,
it simply won't run.
> This works: `git-annex test -p '/concurrent get of dup key regression/ || /Init Tests/'`
>
> Ok, I was able to work around this by having git-annex test add the latter
> pattern automatically. [[done]] --[[Joey]]