Ping: RFR: JDK-8209604: [TEST] rewrite com/sun/jdi shell tests to java version - step2

Alex Menkov alexey.menkov at oracle.com
Tue Aug 28 23:55:31 UTC 2018


Hi Jc,

The coding conventions say:
Constant names in upper-case or mixed-case are tolerated, according to 
historical necessity.
I didn't find special rule for enums.

The values are converted to string by using Enum.toString, so lowercase 
enum values are used to get lowercase strings.
I don't see much sense to use extra toLowerCase();

--alex

On 08/28/2018 15:03, JC Beyler wrote:
> Hi Alexey,
> 
> I noticed:
> http://cr.openjdk.java.net/~amenkov/sh2java/step2/webrev.01/test/jdk/com/sun/jdi/lib/jdb/JdbCommand.java.udiff.html 
> <http://cr.openjdk.java.net/%7Eamenkov/sh2java/step2/webrev.01/test/jdk/com/sun/jdi/lib/jdb/JdbCommand.java.udiff.html>
> 
> - Should the enum types be in lower case? Other exampes in the 
> vmTestBase  and in jdk/com/sun seem to put them in upper case, no?
> 
> Apart from that, it looks good to me,
> Jc
> 
> On Tue, Aug 28, 2018 at 2:03 PM Alex Menkov <alexey.menkov at oracle.com 
> <mailto:alexey.menkov at oracle.com>> wrote:
> 
>     Need one more reviewer for the fix.
> 
>     --alex
> 
>     On 08/22/2018 10:18, serguei.spitsyn at oracle.com
>     <mailto:serguei.spitsyn at oracle.com> wrote:
>      > Hi Alex,
>      >
>      > This looks good.
>      > Thank you for the update!
>      >
>      > Thanks,
>      > Serguei
>      >
>      >
>      > On 8/21/18 17:10, Alex Menkov wrote:
>      >> Hi guys,
>      >>
>      >> Updated webrev:
>      >> http://cr.openjdk.java.net/~amenkov/sh2java/step2/webrev.01/
>     <http://cr.openjdk.java.net/%7Eamenkov/sh2java/step2/webrev.01/>
>      >>
>      >> changes (vs initial fix):
>      >> - Eval*.java tests are updated, common methods are moved into
>     JdbTest;
>      >> - $classname substitution is dropped in EvalArgs.java;
>      >> - comment are reintroduced;
>      >> - line separator logic was dropped from JdbCommand (it's not
>     needed as
>      >> JdbCommand contains static factory methods to create commands).
>      >>
>      >> Update of String.split to use "\\R" is done in other fix:
>      >> JDK-8209605: com/sun/jdi/BreakpointWithFullGC.java fails with ZGC
>      >>
>      >> --alex
>      >>
>      >> On 08/20/2018 19:12, David Holmes wrote:
>      >>> Picking up on one point ...
>      >>>
>      >>> On 21/08/2018 9:40 AM, serguei.spitsyn at oracle.com
>     <mailto:serguei.spitsyn at oracle.com> wrote:
>      >>>> Hi Alex,
>      >>>>
>      >>>> It looks good in general.
>      >>>> Some minor comments below.
>      >>>>
>      >>>>
>      >>>>
>     http://cr.openjdk.java.net/~amenkov/sh2java/step2/webrev/test/jdk/com/sun/jdi/lib/jdb/JdbCommand.java.frames.html
>     <http://cr.openjdk.java.net/%7Eamenkov/sh2java/step2/webrev/test/jdk/com/sun/jdi/lib/jdb/JdbCommand.java.frames.html>
> 
>      >>>>
>      >>>>
>      >>>>   132     private static final String ls =
>      >>>> System.getProperty("line.separator");
>      >>>>
>      >>>>    Minor: Replace variable name "ls" with "LINE_SEP" (in upper
>     case
>      >>>> as it is a static final).
>      >>>
>      >>> There have been bugs in the past where tests use the wrong
>      >>> line-separator because there is confusion as to which output comes
>      >>> via the OS (and so has platform line-separators) and which
>     comes more
>      >>> directly (e.g. via socket) and so has the language line-separator.
>      >>> Are we sure we will always be dealing with the platform
>      >>> line-separator here?
>      >>>
>      >>> For String.split use of the regex \\R for the line-separators
>     seems
>      >>> the best solution.
>      >>>
>      >>> Thanks,
>      >>> David
>      >>>
>      >>>>
>      >>>>
>      >>>>
>     http://cr.openjdk.java.net/~amenkov/sh2java/step2/webrev/test/jdk/com/sun/jdi/EvalArgs.java.frames.html
>     <http://cr.openjdk.java.net/%7Eamenkov/sh2java/step2/webrev/test/jdk/com/sun/jdi/EvalArgs.java.frames.html>
> 
>      >>>>
>      >>>>
>      >>>>
>      >>>>    Just wanted to double-check that this check:
>      >>>> 262 jdbFailIfPresent "Arguments match no method"
>      >>>>
>      >>>>    works in each call of the verifyNoArgumentsMatchMethod()
>      >>>>    instead of just once as it was originally.
>      >>>>
>      >>>> 214 private void verifyNoArgumentsMatchMethod(String expr) {
>      >>>> 215 List<String> reply =
>      >>>> jdb.command(JdbCommand.eval(expr.replace("$classname",
>      >>>> DEBUGGEE_CLASS)));
>      >>>> 216 new
>      >>>>
>     OutputAnalyzer(reply.stream().collect(Collectors.joining(lineSeparator)))
> 
>      >>>>
>      >>>> 217 .shouldNotContain("Arguments match no method");
>      >>>> 218 }
>      >>>>
>      >>>>   Minor: It feels like the method name need a tweak.
>      >>>>          Something like: verifyNoArgumentsMatchNoMethod
>      >>>>
>      >>>>
>      >>>> 292 // These overload calls should fail because ther Minor: A
>      >>>> suggestion is to fix a typo at the end of comment.
>      >>>>
>      >>>>
>      >>>>
>     http://cr.openjdk.java.net/~amenkov/sh2java/step2/webrev/test/jdk/com/sun/jdi/EvalArraysAsList.java.frames.html
>     <http://cr.openjdk.java.net/%7Eamenkov/sh2java/step2/webrev/test/jdk/com/sun/jdi/EvalArraysAsList.java.frames.html>
> 
>      >>>>
>      >>>>
>      >>>>    The comment was not converted:
>      >>>>
>      >>>> 31 # The test checks if evaluation of the expression
>      >>>> java.util.Arrays.asList(null, "a")
>      >>>> 32 # works normally and does not throw an
>     IllegalArgumentException.
>      >>>>
>      >>>>
>      >>>>
>      >>>>
>     http://cr.openjdk.java.net/~amenkov/sh2java/step2/webrev/test/jdk/com/sun/jdi/EvalInterfaceStatic.java.frames.html
>     <http://cr.openjdk.java.net/%7Eamenkov/sh2java/step2/webrev/test/jdk/com/sun/jdi/EvalInterfaceStatic.java.frames.html>
> 
>      >>>>
>      >>>>
>      >>>>    The comment was not converted:
>      >>>>
>      >>>> 33 # The test exercises the ability to invoke static methods on
>      >>>> interfaces.
>      >>>> 34 # Static interface methods are a new feature added in JDK8.
>      >>>> 35 #
>      >>>> 36 # The test makes sure that it is, at all, possible to
>     invoke an
>      >>>> interface
>      >>>> 37 # static method and that the static methods are not
>     inherited by
>      >>>> extending
>      >>>> 38 # interfaces.
>      >>>>
>      >>>>
>      >>>>
>      >>>> Thanks,
>      >>>> Serguei
>      >>>>
>      >>>>
>      >>>>
>      >>>> On 8/16/18 14:13, Alex Menkov wrote:
>      >>>>> Hi all,
>      >>>>>
>      >>>>> Please review next chunk of shell->java test conversion.
>      >>>>> jira: https://bugs.openjdk.java.net/browse/JDK-8209604
>      >>>>> webrev:
>     http://cr.openjdk.java.net/~amenkov/sh2java/step2/webrev/
>     <http://cr.openjdk.java.net/%7Eamenkov/sh2java/step2/webrev/>
>      >>>>>
>      >>>>> The fix contains some changes in library classes:
>      >>>>> Jdb.java - timeouts are updated (as per Dan note in one of
>     previous
>      >>>>> review, timeouts should respect timeout factor,
>     Utils.adjustTimeout
>      >>>>> implements the functionality);
>      >>>>> JdbCommand.java - new jdb commands (required by tests) are added.
>      >>>>>
>      >>>>> --alex
>      >>>>
>      >
> 
> 
> 
> -- 
> 
> Thanks,
> Jc


More information about the serviceability-dev mailing list