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] graph.png First attempt at mapping test dependencies.
(In reply to Michael Palimaka (kensington) from comment #11) > Created attachment 391906 [details] > graph.png > > 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] graphv2.png 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).
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2d5ab5b4b68554877a566db555c5b8cd471100b8 commit 2d5ab5b4b68554877a566db555c5b8cd471100b8 Author: Ionen Wolkens <ionen@gentoo.org> AuthorDate: 2023-08-19 15:28:22 +0000 Commit: Ionen Wolkens <ionen@gentoo.org> CommitDate: 2023-09-05 13:01:00 +0000 qt6-build.eclass: support+unrestrict tests, export src_test+install Qt5's may be a lost cause at this point wrt bug #457182, but can do this fairly easily for Qt6 going forward (or at least for most components, qtbase, qttools, and qtdeclarative are messier). About src_install, it was defined but not exported. Not an issue before but now we need it for cleanups. Bug: https://bugs.gentoo.org/457182 Signed-off-by: Ionen Wolkens <ionen@gentoo.org> eclass/qt6-build.eclass | 58 ++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 48 insertions(+), 10 deletions(-)
This is fixed, really. We're not going to do it for Qt5.