RFR: 8159523. Fix tests depending on absence of -limitmods in VM arguments.
Alan Bateman
Alan.Bateman at oracle.com
Mon Oct 10 09:54:04 UTC 2016
On 07/10/2016 21:24, Alexandre (Shura) Iline wrote:
> Hi,
>
> Please review a fix for https://bugs.openjdk.java.net/browse/JDK-8159523
>
> To recap what has happened in the past.
>
> 1. An attempt was made to enhance jdk.testlibrary.ProcessTools class to support some filtering java and VM options. That implementation came out really overloaded (check executeModularTest(...) in [1]).
> 2. It was suggested that a builder API could be introduced instead. “toolbox” classes from langtools test library were suggested as a start [2].
> 3. Further on, it was agreed that the classes need to be copied into the JDK test library rather than updated in place or somehow else shared between langtools and jdk test libraries.
>
> I have started porting a few tasks (JavaTask, JavacTask and JarTask) only to realize that there are many questions which may cause design discussions. So, instead, I have rolled back to one class (JavaTask) and the superclasses. If the design is acceptable, more tasks could be added as needed.
>
> The webrev: http://cr.openjdk.java.net/~shurailine/8159523/webrev.01/
>
At a high-level then the approach looks reasonable, just lots of details
to get agreement on before doing a big conversion.
One thing that jumps out is that JavaTask doesn't seem to handle
repeated options, I'll assume that will be fixed.
In the examples then I suspect that "mainClass" be be clearer than
"className". Also "module" might work better than "moduleName". One
thing you could look at for the module method is an overload that takes
2 parameters, the module name and main class. Another suggestion is
methods such as modulepath (modulePath?) should have an overload that
takes a Path for the common cases where tests just specify one path
element - if have those then a lot of calls to toString go away.
One discussion point is whether it should support all options. I note
the usage in one of the examples:
.vmOptions("--upgrade-module-path", UPGRADE_MODS_DIRS.toString())
.modulepath(MODS_DIR.toString())
where
.upgradeModulePath(UPGRADE_MODS)
.modulePath(MODS_DIRS)
would be clearer.
Anyway, these are just some passing comments, I do agree that the tests
using ProcessTools could be more readable.
-Alan.
More information about the jigsaw-dev
mailing list