Review request: JDK-8006753 fix failed for JDK-8002415 White box testing API for HotSpot

Mikael Gerdin mikael.gerdin at oracle.com
Tue Feb 5 11:25:49 PST 2013


Coleen,

On 2013-02-05 20:10, Coleen Phillimore wrote:
>
> I've looked at this.   It seems very reasonable and not hacky to me to
> have the whitebox api built in the jtreg test/library directory.

Right. The hacky bit is not to put the api in that directory, the 
"hacky" bit is:
- * @run compile -J-XX:+UnlockDiagnosticVMOptions -J-XX:+WhiteBoxAPI 
WBApi.java
- * @run main/othervm -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI WBApi
+ * @library /testlibrary /testlibrary/whitebox
+ * @build WBApi
+ * @run main ClassFileDumper sun.hotspot.WhiteBox
+ * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions 
-XX:+WhiteBoxAPI WBApi

that is:
running the class ClassFileDumper to copy the class sun.hotspot.WhiteBox 
to the test execution's current working directory.

/Mikael

>
> Thanks,
> Coleen
>
> On 02/05/2013 01:52 PM, Mikael Gerdin wrote:
>> Thanks Dmitry and Christian for the reviews.
>> Can someone with Reviewer status please have a look at this?
>>
>> /Mikael
>>
>> On 2013-02-04 22:03, Dmitry Samersoff wrote:
>>> Mikael,
>>>
>>> Looks good for me.
>>>
>>> -Dmitry
>>>
>>> On 2013-02-04 17:59, Mikael Gerdin wrote:
>>>> Hi,
>>>>
>>>> Background:
>>>> Even from the beginning of the WhiteBox testing API implementation the
>>>> tests have not worked on builds promoted by release engineering due to
>>>> the fact that the wb.jar file containing the Java classes was not
>>>> imported by the JDK-level makefiles.
>>>> On one level this was ok since we didn't want to ship the classes to
>>>> end
>>>> users and we worked around the complexity of somehow post-processing
>>>> the
>>>> RE bundles to remove them.
>>>>
>>>> The problem is that we aren't able to run the WhiteBox tests in
>>>> promotion testing, or to verify fixes against earlier builds.
>>>>
>>>> Solution:
>>>> The solution suggested here is to put the WhiteBox helper classes in
>>>> the
>>>> testlibrary directory under test/ and
>>>> * tell jtreg to first compile the classes
>>>> * run a special Java program to copy the classes to the test work
>>>> directory
>>>> * run the white box test with -Xbootclasspath/a:. to pick up the copied
>>>> classes.
>>>>
>>>> The solution is kind-of hackish but I've been unable to come up with a
>>>> better solution without performing complex surgery on jtreg.
>>>>
>>>> The changes to the make/ directory should basically revert the makefile
>>>> changes that were added to support this API.
>>>>
>>>> Webrev:
>>>> http://cr.openjdk.java.net/~mgerdin/8006753/webrev.0/
>>>> Bug:
>>>> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8006753
>>>>
>>>> Note about renamed/moved files:
>>>> I will try to make sure that the moved/renamed files will be tracked
>>>> properly by mercurial, but I think that using patch files and MQ breaks
>>>> this so I'll do this after the review is done.
>>>>
>>>> Thanks
>>>> /Mikael
>>>
>>>
>


More information about the hotspot-dev mailing list