RFR(M): JDK-8165805 - [TESTBUG] CDS needs to support JVMTI CFLH - test development
serguei.spitsyn at oracle.com
serguei.spitsyn at oracle.com
Tue Sep 13 02:03:21 UTC 2016
Hi Misha,
The tests are nicely organized.
Just minor comments now:
The patterns must be defined only once as static final strings:
static final String BeforePattern = "this-should-be-transformed ";
static final String AfterPattern = "this-has-been--transformed";
Not sure yet, where to define it better.
It seems, the TransformUtil class can be a good place.
Then the 'from' and 'to' parameters in the TransformUtil.replace() can
be deleted.
It is if it is not important to keep this method universal.
http://cr.openjdk.java.net/~mseledtsov/8165805.00/test/runtime/SharedArchiveFile/serviceability/TransformUtil.java.html
21 for (int i=0; i<max; ) {
33 for (int x=0; x<f.length; x++) {
38 for (int x=0; x<f.length; x++) {
46 for (int i=0; i<b.length; i++) {
Need spaces around the '=' and '<' signs.
24 numReplaced ++;
Unneeded space.
http://cr.openjdk.java.net/~mseledtsov/8165805.00/test/runtime/SharedArchiveFile/serviceability/TransformerAgent.java.html
12 // This is a test ulitilty class used to transform
13 // specified classes via initial transformation (CFLH)
14 // Names of classes to be transformed are supplied as arguments,
Need a dot at the end of L13.
http://cr.openjdk.java.net/~mseledtsov/8165805.00/test/runtime/SharedArchiveFile/serviceability/transformRelatedClasses/TransformTestCommon.java.html
24 if(entry.transformParent && entry.transformChild)
26 if(entry.transformParent)
28 if(entry.transformChild)
53 if(entry.isParentExpectedShared)
58 if(entry.isChildExpectedShared)
Space is needed after 'if'.
71 out.shouldContain("TransformerAgent: SimpleTransformer
called for: " + child + "@1");
72 out.shouldContain("TransformerAgent: SimpleTransformer
called for: " + parent + "@1");
73
74 out.shouldNotContain("TransformerAgent: SimpleTransformer
called for: " + child + "@2");
75 out.shouldNotContain("TransformerAgent: SimpleTransformer
called for: " + parent + "@2");
Can be simplified:
String patternBase = "TransformerAgent: SimpleTransformer
called for: ";
out.shouldContain(patternBase + child + "@1");
out.shouldContain(patternBase + parent + "@1");
out.shouldNotContain(patternBase + child + "@2");
out.shouldNotContain(patternBase + parent + "@2");
92 checkSharingByClass(entry,out, parent, child);
Space is missed before 'out'.
Thanks,
Serguei
On 9/9/16 19:31, Mikhailo Seledtsov wrote:
> Please review the tests that accompany the changes for
> "JDK-8078644 - CDS needs to support JVMTI CFLH"
>
> The tests include several test cases that are produced by combination
> of transforming related classes: super/sub class and
> interface/implementor.
> The classes reside in CDS archive. Tests check to ensure that correct
> transformation is performed, classes are loaded from the archive
> only when appropriate,
> and that test process using the archive completes w/o errors/crashes.
>
>
> Details:
>
> The main class is TransformRelatedClasses.java; start review with
> this class.
> Other classes are:
> - TransformSuperAndSubClasses.java,
> TransformInterfaceAndImplementor.java
> the "actual tests", but really just test headers calling into
> TransformRelatedClasses.java
>
> - TransformTestCommon.java - common methods for transformation
> tests
>
> - TestEntry.java - an entry into combinatorial test table
> representing a single test case
>
> - CDSTestUtils.java, TransformUtil.java - utility classes that
> are common CDS
> tests
>
> - TransformerAgent.java - agent that performs transformation
> (comes with .mf file)
>
>
> JBS: https://bugs.openjdk.java.net/browse/JDK-8165805
> Webrev: http://cr.openjdk.java.net/~mseledtsov/8165805.00/
> Testing:
> Ran these tests on a standard set of platforms thru automated
> test system.
>
> Thank you,
> Misha
>
More information about the hotspot-runtime-dev
mailing list