RFR: JDK-8003890: modify test scripts to pass VMOPTIONS

Stuart Marks stuart.marks at oracle.com
Mon Dec 10 23:48:28 UTC 2012

On 12/10/12 3:25 AM, Alan Bateman wrote:
> On 10/12/2012 11:13, Chris Hegarty wrote:
>> Thank you Mark, this is a really useful contribution.
>> I noticed that a few tests (below) specify either -client or -server. If the
>> vmoptions contain either of these arguments, and this seems to be the way our
>> test/Makefile is passing them, then it may result in the test using the wrong
>> vm. I think we should remove TESTVMOPTS from these tests, but then we lose
>> other potential opts, like heap size, etc.
>>   java/rmi/reliability/benchmark/runRmiBench.sh
>>   java/rmi/reliability/benchmark/runSerialBench.sh
>>   sun/management/jmxremote/startstop/JMXStartStopTest.sh
> You're right, this will cause conflict.
> In the case of JMXStartStopTest.sh and runSerialBench.sh then it might be
> better to remove the -server.
> Stuart might have an opinion on runRmiBench.sh but one idea is to change is so
> that when run interactively (TESTJAVA not set) then it works as it does now and
> runs the benchmark twice. If TESTJAVA is not set then it runs the benchmark
> once, with whatever VM options are in use.

For runRmiBench.sh the benchmark actually runs two JVMs, one as the RMI server 
and the other as the RMI client. Note that -client and -server are passed as 
arguments to the bench.rmi.Main start-class, which causes them to behave 
differently. I'm wondering if whoever wrote the script originally confused the 
arguments to Main with the arguments to the JVMs. Or, perhaps some tenuous line 
of reasoning was used, such as "the RMI server is probably running on a server 
and so should be running the server VM, and same for the RMI client."

So, I think that the JVM -server and -client args should be replaced by 
$TESTVMOPTS. But of course please leave -server and -client args to the Main 
class unchanged.

(Note, the runRmiBench.sh test is currently on the problem list so it's not run 
right now anyway.)

For runSerialBench.sh, yes, I think removing -server and adding $TESTVMOPTS is 
the right thing.

* * *

I've looked over the test/java/io/Serializable and the test/java/rmi changes 
and they look fine. I haven't looked at the other changes though. I can look at 
more files too if you need to spread out the reviewing load.


More information about the core-libs-dev mailing list