User:Kentnl/FEATURES=test enhancements

Following are a list of reasons I think we should abolish the hack of

And Have a "real" Test dependencies scheme.

Test Phase Only USE dependencies
I'm frequently seeing patterns where there are different kinds of tests that can be run and many of them require "optional" dependencies.

Gentoo standard dogma is to either never pull optional dependencies, or always pull optional dependencies

For tests, this is very sub par.

Some packages for instance may contain reverse-dependency regression tests, that is:


 * Consider a library "foo".
 * "foo" uses "bar"
 * "bar" wants to make sure nothing they change breaks "foo"
 * so "bar" contains a test ( or set of tests ) where those tests call "bar" and run it against "foo" in specific ways.
 * So under "normal" conditions, foo -> bar
 * But under test conditions, if the reverse tests are to be run, bar -> foo ( because "bar" could be installed independently for some other thing before "foo" gets installed )
 * ERROR: Circular Deps if you're lucky.
 * Workaround:  ( off by default, encouraged to be on for testers )

Here, this ends up creating a spurious  flag that is seen in every   output, despite the fact toggling that flag without   can never have any effect.

Subsequently, it would be nice if there could be a mechanism to hide useflags that are dependent upon  being enabled.

Opportunity to have USE_EXPAND TEST:
In conjunction with the ability to hide use-flags that are only relevant under, it also allows better test-specific flag naming via USE_EXPAND.

dev-foo/bar examples cgi ruby perl TESTS: regression network

Aaah.