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.