RFR (L): 8024319: Add regression tests on documented GC-related -XX:+Print* options
bengt.rutisson at oracle.com
Thu Jan 22 07:26:48 UTC 2015
On 2015-01-22 08:20, Bengt Rutisson wrote:
> Hi Denis,
> Not a full review, but I have a question.
> It seems like the AbstractPrintGCTest is kind of duplicating what
> ProcessTools already does. Have you considered using
> ProcessTools.createJavaProcessBuilder(..) instead of the @run commands
> to automatically get the process control and log support instead of
> introducing the AbstractPrintGCTest class?
Here's an example of how I mean that you can use
> On 2015-01-20 16:49, denis kononenko wrote:
>> Hi All,
>> Could you please review new tests on GC-related -XX:Print options.
>> Webrev link:
>> Bug id: https://bugs.openjdk.java.net/browse/JDK-8024319
>> Testing: automated
>> There is a group of new tests to test the following GC options:
>> Each of the tested options has a pair of corresponding tests, one is
>> for testing an enabled option and another for disabled. The tests are
>> simple parsers of GC's logger output and looking for a specific
>> marker corresponding to the tested option. The output is provided by
>> another process which is implemented in GCTask.java. It's necessary
>> because we have to guarantee that GC's log has been completely
>> written and committed to the filesystem before we start analyzing it.
>> The most obvious solution is to politely finish the writing process.
>> Thus the every test spawns an auxiliary process which produces GC's
>> log file, waits for its finish, loads the output and then performs
>> actual testing. These steps are implemented with jtreg's annotations
>> and a helper class which can be found AbstractPrintGCTest.java. This
>> class encapsulates reading GC's log output from the log file and
>> provides that output to the tests.
>> To get GC's logger working GCTask forces the garbage collecting
>> process. It attempts to consume all memory available to the young
>> generation by creating a lot of unreferenced objects. Sooner or later
>> the garbage collector shall be invoked. In favor of performance the
>> task is implemented to be ran with a small memory size less or equal
>> to 128 megabytes. This is excplicitly specified with -Xmx JVM's
>> option in jtreg's annotations.
>> Please note that some options work for specific GCs only. To prevent
>> them from being executed against wrong GC jtreg's annotations and
>> groups are used.
>> Thank you,
More information about the hotspot-gc-dev