> 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.

Chris Plummer has updated the pull request incrementally with one additional 
commit since the last revision:

  Add comment

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/24811/files
  - new: https://git.openjdk.org/jdk/pull/24811/files/4531a969..6376fadc

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=24811&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=24811&range=00-01

  Stats: 2 lines in 1 file changed: 2 ins; 0 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/24811.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/24811/head:pull/24811

PR: https://git.openjdk.org/jdk/pull/24811

Reply via email to