Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

EDT:Debug Regression Testing

Revision as of 16:03, 5 March 2012 by Unnamed Poltroon (Talk)

The following test scenarios should be run each release.


Common scenarios to be run as part of each of the other sections

Stepping through statements when suspended  

  • Step into
  • Step over
  • Step return

Run to line:

  • "Ctrl + r" with the cursor on the target line
  • Right-click in the editor and select "Run to Line" with the cursor on the target line

Breakpoints

  • Can be set by double-clicking the editor's left margin, or right-click the margin to add
  • Can enable/disable breakpoints, changes take immediate effect

Variables view

  • All variables in scope are listed
  • Value and type for each variable looks correct
  • Values can NOT be changed during debugging (future feature)
  • Test all the supported types (primitives, arrays, records, dictionaries, delegates, handler fields, etc...)

Debug view

  • When suspended, the function stack looks correct
  • Stack frames have correct names and line numbers
  • Clicking on frames updates the variables view to show that frame's variables, and selects the appropraite line in the editor


Batch programs (Java)

Launched by right-clicking a main program source file > Debug As > EGL Java Main Application

Drop to frame

  • Pops off any frames above the target frame
  • Repositions to the beginning of the function
  • Note: Disabled on frames that are directly above native methods, or when a native method is above the target frame (JDT restriction)

Stepping

  • Can step into Java code, such as a user-written external type.

Hot code replace

  • Limited support from JDT, no EGL-specific support
  • Small changes might work, like changing logic
  • Structural changes might not work, like adding new functions or global variables

Type filters

  • When enabled, certain types are automatically run instead of suspending inside them
  • Located in Preferences > EGL > Debug > Java Debugging
  • Can disable filters as a whole
  • Can disable specific filters
  • Can change step type ("step into" will step "through" the code until it reaches an unfiltered type, while "step return" runs much faster)
  • Can define your own custom filters at Preferences > Java > Debug > Step Filtering
  • Quick toggle located in Debug view's toolbar menu (click the downward triangle to the right of the stepping buttons, and expand the "EGL" submenu)


Services (Java) 

To debug a service you will need to write a client that invokes it (see the "Rich UI" section below). You cannot "step into" the service invocation from RUI, so put a breakpoint in the service function. To have RUI run the service in debug mode, either use dedicated services or a workspace:// URI for a REST service.

Everything from the "Batch programs" section above is applicable to services.

Note: You will not be able to drop to the bottom frame because it always sits on top of a native method.


Rich UI Handlers (JavaScript)

Launched by:

  • Right-clicking a Rich UI Handler source file > Debug As > EGL Rich UI Application
  • Selecting a Rich UI Handler file (in Project Explorer or making its editor active) and clicking the Debug icon in the main toolbar

Drop to frame

  • Not supported, button should be disabled

Stepping

  • Can NOT step into non-generated JavaScript code, such as user-written external types.

Hot code replace

  • Not supported, changing source does not affect active debug sessions

Service calls

  • Using dedicated services will cause the test server to run the service (where breakpoints can be set in the service)
  • Using a workspace:// URI for a REST service will also cause the test server to run the service
  • Using any other URI like http:// for a REST service will NOT cause the test server to run the service, and the deployed service will instead be invoked
  • Using the Visual Editor's Preview pane will follow the same rules as the Rich UI debugger for determining whether the test server is used for a service call

Back to the top