RFR: (small): JDK-8190307: SA: Sanity tests for the clhsdb commands: universe, intconstant, type

David Holmes david.holmes at oracle.com
Thu Nov 16 02:46:53 UTC 2017


On 15/11/2017 3:27 PM, Jini George wrote:
> Thank you, Sharath and David. The revised webrev after addressing the 
> comments are at:
> 
> http://cr.openjdk.java.net/~jgeorge/8190307/webrev.03/

Please put all the informational tags first:

@test
@bug
@summary

You didn't delete the

    int exitValue = p.exitValue();

lines.

No need to see an updated webrev with these fixes.

Thanks,
David


> Thanks,
> Jini.
> 
> On 11/15/2017 7:00 AM, David Holmes wrote:
>> Hi Jini,
>>
>> In addition to Sharath's comments please add @bug and @summary items 
>> to each test header.
>>
>> Thanks,
>> David
>> -----
>>
>> On 15/11/2017 2:31 AM, Sharath Ballal wrote:
>>> Hi Jini,
>>>
>>> Code looks good.  Some nits.
>>>
>>> TestUniverse.java:
>>>
>>> These lines can be removed
>>>     26 import java.io.File;
>>>     33 import jdk.test.lib.process.ProcessTools;
>>>     84         int exitValue = p.exitValue();
>>>
>>> TestType.java:
>>>
>>> These lines can be removed
>>>     32 import jdk.test.lib.process.ProcessTools;
>>>     86         int exitValue = p.exitValue();
>>>
>>> You may want to add few more strings in the defaultOutputStrings.
>>>
>>> TestIntConstant.java
>>>
>>> These lines can be removed
>>>     32 import jdk.test.lib.process.ProcessTools;
>>>     89         int exitValue = p.exitValue();
>>>
>>> You may want to add few more strings in the defaultOutputStrings.
>>>
>>> Thanks,
>>> Sharath (not a reviewer)
>>>
>>>
>>> -----Original Message-----
>>> From: Jini George
>>> Sent: Tuesday, November 14, 2017 2:19 PM
>>> To: David Holmes; serviceability-dev at openjdk.java.net
>>> Subject: Re: RFR: (small): JDK-8190307: SA: Sanity tests for the 
>>> clhsdb commands: universe, intconstant, type
>>>
>>> Thank you very much, David. Here is the revised webrev:
>>>
>>> http://cr.openjdk.java.net/~jgeorge/8190307/webrev.02/
>>>
>>> Have reduced the exitValue checking fragment and included 
>>> p.destroyForcibly(). Also placed the creation of OutputAnalyzer 
>>> before waiting for the jhsdb process exit, to avoid jhsdb hangs due 
>>> to the output stream buffer not being consumed. (Thanks, Sharath!)
>>>
>>> Thanks,
>>> Jini.
>>>
>>> On 11/6/2017 12:58 PM, David Holmes wrote:
>>>> Hi Jini,
>>>>
>>>> On 3/11/2017 8:51 PM, Jini George wrote:
>>>>> Here is the updated webrev:
>>>>>
>>>>> http://cr.openjdk.java.net/~jgeorge/8190307/webrev.01/
>>>>>
>>>>> I have made changes to validate the test results of each command
>>>>> separately, done away with the asserts and have added some more 
>>>>> comments.
>>>>
>>>> This looks much better to me - thanks. This fragment:
>>>>
>>>>             int exitValue = p.exitValue();
>>>>             OutputAnalyzer output = new OutputAnalyzer(p);
>>>>             System.out.println(output.getOutput());
>>>>
>>>>             if (exitValue != 0) {
>>>>                 throw new Error("clhsdb wasn't run successfully.");
>>>>             }
>>>>
>>>> can be reduced to:
>>>>
>>>> OutputAnalyzer output = new OutputAnalyzer(p);
>>>> output.shouldHaveExitValue(0);
>>>>
>>>> There's probably no need to print getOutput() as if anything goes
>>>> wrong it will be printed by OutputAnalyzer anyway. But that's your 
>>>> choice.
>>>>
>>>> It may also be advisable to ensure the process is destroyed if you get
>>>> an exception here:
>>>>
>>>>            try {
>>>>                p.waitFor();
>>>>            } catch (InterruptedException ie) {
>>>> +            p.destroyForcibly();
>>>>                throw new Error("Problem awaiting the child process: " +
>>>> ie, ie);
>>>>            }
>>>>
>>>> similar to how ProcessTools.executeProcess manages things.
>>>>
>>>> Thanks,
>>>> David
>>>> -----
>>>>
>>>>> Thank you,
>>>>> Jini.
>>>>>
>>>>> On 10/31/2017 12:32 PM, Jini George wrote:
>>>>>> Thank you for the quick review, David. My comments inline:
>>>>>>
>>>>>> On 10/30/2017 11:18 AM, David Holmes wrote:
>>>>>>
>>>>>>>> Plus this assumes G1 is being used but Lingered App is started
>>>>>>>> using the test run vmOptions AFAICS so it would use whatever GC
>>>>>>>> were passed through, wouldn't it?
>>>>>>>
>>>>>>> Okay the above are just examples of "int constants" that will be
>>>>>>> printed when you dump all the "int constants". The G1 constant
>>>>>>> doesn't indicate (I presume) that G1 is the active GC.
>>>>>>
>>>>>> Yes, the int constants contain compile time values and there are
>>>>>> entries for all the GC types.
>>>>>>
>>>>>>> As I said to Sharath it would be good to validate the results of
>>>>>>> each command separately rather than collectively.
>>>>>>
>>>>>> Will do.
>>>>>>
>>>>>> Thanks!
>>>>>> - Jini.
>>>>>>
>>>>>>
>>>>>>
>>>>>>> Thanks,
>>>>>>> David
>>>>>>>
>>>>>>>> ---
>>>>>>>>
>>>>>>>> TestType.java
>>>>>>>>
>>>>>>>> The expected output is not quite so strange, but still could do
>>>>>>>> with some commentary.
>>>>>>>>
>>>>>>>>     90         Asserts.assertTrue(output.contains("type
>>>>>>>> G1CollectedHeap CollectedHeap"));
>>>>>>>>
>>>>>>>> Same comment about assuming G1.
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> David
>>>>>>>> ------
>>>>>>>>
>>>>>>>> On 30/10/2017 1:44 PM, Jini George wrote:
>>>>>>>>> Hello,
>>>>>>>>>
>>>>>>>>> We have been working on writing sanity tests for the various
>>>>>>>>> jhsdb clhsdb commands of the SA to improve the robustness of the
>>>>>>>>> SA. As a part of this, here is a webrev for sanity tests for 3 of
>>>>>>>>> the clhsdb commands:
>>>>>>>>>
>>>>>>>>> Bug ID: https://bugs.openjdk.java.net/browse/JDK-8190307
>>>>>>>>> webrev: http://cr.openjdk.java.net/~jgeorge/8190307/webrev.00/
>>>>>>>>>
>>>>>>>>> I would like to request for reviews for this simple addition.
>>>>>>>>>
>>>>>>>>> Thank you,
>>>>>>>>> Jini.


More information about the serviceability-dev mailing list