Thanks, Chris,
Looked at the issues and nsk jdb stuff again - may be you are right and
fixing nsk jdb code we can get a bunch of new test issues.
So ok, lets make local fixes for the known issues for now.
LGTM.
--alex
On 09/21/2018 09:12, Chris Plummer wrote:
I don't think Alex actually gave a thumbs up for this change yet. He
just offered a suggestion for an alternate way to fix.
Chris
On 9/21/18 5:18 AM, Gary Adams wrote:
Patch attached.
On 9/20/18, 8:17 PM, Chris Plummer wrote:
Ok, so you're just suggesting that findPrompt() should require that
the prompt be at the end of the line. In fact probably on a line by
itself. Keep in mind that we also have issues with async printing
that tends to result in the prompt appearing in the middle of some
lines. We have most of these situations understood and under control
now, but I'm guessing they still turn up in some places, and would
cause findPrompt() to fail.
Chris
On 9/20/18 4:06 PM, Alex Menkov wrote:
To be detected the output line should ends with "Boolean[1] "
So "Field (nsk.jdb.unwatch.unwatch002.unwatch002a.FS1) is null, will
be instance of java.lang.Boolean[1] (id=706):" does not match.
It seems to me that other bugs Gary is working have similar cases.
--alex
On 09/20/2018 15:27, Chris Plummer wrote:
The regex you give would still detect Boolean[1] as a prompt, which
we don't want.
Chris
On 9/20/18 3:22 PM, Alex Menkov wrote:
May be it would be better to fix Jdb.receiveReplyFor to properly
handle all replies like
Field (nsk.jdb.unwatch.unwatch002.unwatch002a.FS1) is null, will
be instance of java.lang.Boolean[1] (id=706):
jdk/com/sun/jdi tests use the following regexp to detect jdb prompt:
"[a-zA-Z0-9_-][a-zA-Z0-9_-]*\[[1-9][0-9]*\] [ >]*$"
(see test/jdk/com/sun/jdi/lib/jdb/Jdb.java or
test/jdk/com/sun/jdi/ShellScaffold.sh)
AFAIR nsk/../Jdb does not use regexp, but I believe it can be
updated to work the same way.
--alex
On 09/20/2018 14:50, Chris Plummer wrote:
This one is a little different than exclude001 in that we don't
control the name of the thread. We know (at least at the moment)
that it is called "main", but that could always change. In
general I'm fine with this fix, but if you have others like it,
I'd suggest putting the "main" thread name in single place, not
in each test that cares about it.
Chris
On 9/20/18 10:54 AM, Gary Adams wrote:
The corrupted output has been identified due to the "Boolean[1]"
being misrecognized as a compound prompt.
The proposed fix waits for the correct prompt before
advancing to the next command.
Webrev: http://cr.openjdk.java.net/~gadams/8208471/webrev/
Issue: https://bugs.openjdk.java.net/browse/JDK-8208471
Testing is in progress.