Many deps are currently missing.
*** Bug 431334 has been marked as a duplicate of this bug. ***
*** Bug 431326 has been marked as a duplicate of this bug. ***
*** Bug 431330 has been marked as a duplicate of this bug. ***
*** Bug 431328 has been marked as a duplicate of this bug. ***
*** Bug 431342 has been marked as a duplicate of this bug. ***
*** Bug 430516 has been marked as a duplicate of this bug. ***
Do you think checking, say tests/auto/corelib (qtcore?), for qt module includes is a good start, or is something more advanced (eg. autodep checking filesystem hits) required?
I'm still not sure how to properly handle the cyclic dependencies. Current ideas are:
1) Disable all tests that require modules that can create a cycle in the depgraph. This means for example disabling all qtcore tests.
2) List every dependency required for running the full test suite, even if they create cycles. This means that, in order to run the tests of some qt5 modules, one will need to first emerge that package with USE=-test, and then again with USE=test.
3) Check in src_test() if the cycle-inducing deps are installed, and if they are not, skip the tests that require them. Sort of automagic deps for tests.
Obviously option #1 and #3 require more work for the maintainer.
What do you guys think?
I don't think there is a good solution.
Creating accurate lists of test -> dependency mappings may prove difficult, not to mention the maintenance required.
Option #2 doesn't really give a good experience, nor is disabling tests a good solution.
Another idea I was given is to check for the required dependencies in src_test and toggle tests dynamically. We could then print some message if the user has tests enabled but the dependency is missing.
Another suggestion from axs was that for qtcore[test] we could build qttest again and use that.
I will check how many other cyclic dependencies there are.
Created attachment 391906 [details]
First attempt at mapping test dependencies.
(In reply to Michael Palimaka (kensington) from comment #11)
> Created attachment 391906 [details]
> First attempt at mapping test dependencies.
Cool! It's quite messy and not all edges are distinguishable unfortunately. Maybe you can suppress transitive deps (i.e. do not draw the edge A->B if the graph already has A->C and C->B). Deps on qttest can also be omitted.
Did you consider optional deps too?
Created attachment 391924 [details]
v2, with deps on qttest removed and edges coloured for clarity.
I haven't considered optional or transitive deps yet.
Can't you just add the necessary dependencies and accepted the circular? It's suboptimal but:
a. it is certainly better than having no tests for 5 years,
b. people are used to dealing with circular test-deps, and this can be solved reasonably easily (merge all without tests, then retry with tests),
c. silently skipping tests is horrible for arch testing (the whole purpose of tests is for me *not* to have to read through detailed logs to see if tests were run).