EDT:Debug Regression Testing
The following test scenarios should be run each release.
Common scenarios to be run as part of each of the other scenarios
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
- 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
- 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...)
- 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)
- 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
- 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)
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.