RFR: 8355211: nsk/jdi/EventRequest/disable/disable001.java should use JDIBase superclass
Leonid Mesnik
lmesnik at openjdk.org
Wed Apr 23 18:13:56 UTC 2025
On Wed, 23 Apr 2025 03:14:52 GMT, Chris Plummer <cjplummer at openjdk.org> wrote:
> There is an nsk/jdi superclass called JDIBase that many tests inherit from. It provides common functionality like log support, basic event handling, support for setting a breakpoint, and support for the communication breakpoint that the debugger and debuggee use to synchronize with. disable001 does not inherit from JDIBase and instead implements all this functionality in the test. The reason is because it provides a slightly modified version of the JDIBase.settingBreakpoint() method. The main change is the presence of the following in settingBreakpoint():
>
>
> // this is only for this test to get Location object
> location = lineLocation;
>
>
> And then in the test:
>
>
> case 11:
> log2(".....setting up BreakpointRequest");
> eventRequest1 = eventRManager.createBreakpointRequest(location);
> break;
>
>
> However, now JDIBase.settingBreakpoint() now contains:
>
>
> lineLocation = (Location) alllineLocations.get(n);
> breakpLocation = lineLocation;
>
>
> So the test can just use breakpLocation instead. This pattern is already replicated in a large number of tests.
>
> The other difference in the disable001 version of settingBreakpoint() is that is uses SUSPEND_ALL rather than SUSPEND_EVENT_THREAD. This is easily fixed after setting up the breakpoint request:
>
> BreakpointRequest bpRequest = settingBreakpoint(mainThread,
> debuggeeClass,
> bPointMethod, lineForComm, "zero");
> bpRequest.setSuspendPolicy(EventRequest.SUSPEND_ALL);
>
> The test uses JDIBase now and all the code replicated from JDIBase has been stripped out. It is also updated to use the new JDIBase.setupBreakpointForCommunication() method.
Marked as reviewed by lmesnik (Reviewer).
-------------
PR Review: https://git.openjdk.org/jdk/pull/24811#pullrequestreview-2788312319
More information about the serviceability-dev
mailing list