Hi Igor,

I'm coping Jon as it needs Jon's comments.


Thank you for doing such a great refactoring, I believe it will make tests run more stable.

I saw you are adding explicit @build to lots of test, are you going to clean up all tests to add explicit @build? If the answer is "yes", then I have a possible simple solution for you to consider.

Steps:

1. refactor all test library classes in unnamed packages to named package.

2. just need to add explicit @build for every "import x.y.z;" in a test, means you only need to add @build for every test lib class directly used by your test, lib classes' dependency is not needed. e.g. there is a test containing only "import jdk.test.lib.process.ProcessTools;", then only need to add "@build jdk.test.lib.process.ProcessTools", and no @build is needed to be added for jdk.test.lib.process.StreamPumper, jdk.test.lib.JDKToolFinder and jdk.test.lib.Utils and further dependency if they have.

This solution is based on the situation that all tests will be added @build for all test lib classes they directly used, that means no test is allow to just add "@library xxx".

The advantage of this solution is:

1. the rule is simple to follow, reduce the pain for engineer writing the tests.

2. it might be possible to do it automatically, and have a tool to monitor all checked-in test code by this rule;

3. no need to refactor the test lib too much, e.g. no need to remove the dependency between test lib packages;


Of course, Jon's original strict solution is absolutely correct: to add @build for all test lib classes even if for the implicitly dependent classes. Jon's strict solution is for a more complicated situation where some tests are using explicit @build, but others are not, in this mixed situation my solution will *NOT* work. But as you're cleaning up all the tests, I think it's not necessary to follow such a strict rule.


I might miss something, please correct me then.


Thank you

-Hamlin


On 2017/6/8 15:20, Igor Ignatyev wrote:
http://cr.openjdk.java.net/~iignatyev//8181761/webrev.00/index.html
432 lines changed: 404 ins; 1 del; 27 mod;
Hi all,

could you please review this changeset which adds explicit @build actions to 
tier2 jdk tests? other tests will be updated by the corresponding sub-tasks of 
8181758[1].

webrev: http://cr.openjdk.java.net/~iignatyev//8181761/webrev.00/index.html
jbs: https://bugs.openjdk.java.net/browse/JDK-8181761
testing: :tier2 (in progress)

[1] https://bugs.openjdk.java.net/browse/JDK-8181758

Thanks,
-- Igor

Reply via email to