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.
Difference between revisions of "EDT:Debug Regression Testing"
Line 5: | Line 5: | ||
'''Common scenarios to be run as part of each of the other scenarios''' | '''Common scenarios to be run as part of each of the other scenarios''' | ||
− | Stepping through statements when suspended | + | Stepping through statements when suspended |
*Step into | *Step into | ||
Line 25: | Line 25: | ||
*All variables in scope are listed | *All variables in scope are listed | ||
*Value and type for each variable looks correct | *Value and type for each variable looks correct | ||
− | *Values can NOT be changed during debugging (future feature) | + | *Values can NOT be changed during debugging (future feature) |
+ | *Test all the supported types (primitives, arrays, records, dictionaries, delegates, handler fields, etc...) | ||
Debug view | Debug view | ||
Line 38: | Line 39: | ||
'''Batch programs (Java)''' | '''Batch programs (Java)''' | ||
+ | |||
+ | Launched by right-clicking a main program source file > Debug As > EGL Java Main Application | ||
Drop to frame<br> | Drop to frame<br> | ||
− | *Pops off any frames above the target frame | + | *Pops off any frames above the target frame |
− | *Repositions to the beginning of the function | + | *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) | *Note: Disabled on frames that are directly above native methods, or when a native method is above the target frame (JDT restriction) | ||
− | Stepping | + | Stepping |
− | *Can step into Java code, such as | + | *Can step into Java code, such as a user-written external type. |
− | Hot code replace | + | Hot code replace |
− | *Limited support from JDT, no EGL-specific support | + | *Limited support from JDT, no EGL-specific support |
− | *Small changes might work, like changing logic | + | *Small changes might work, like changing logic |
*Structural changes might not work, like adding new functions or global variables | *Structural changes might not work, like adding new functions or global variables | ||
− | Type filters | + | Type filters |
− | *When enabled, certain types are automatically run instead of suspending inside them | + | *When enabled, certain types are automatically run instead of suspending inside them |
− | *Located in Preferences > EGL > Debug > Java Debugging | + | *Located in Preferences > EGL > Debug > Java Debugging |
− | *Can disable filters as a whole | + | *Can disable filters as a whole |
− | *Can disable specific filters | + | *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 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 | + | *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) | *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) | ||
+ | <br> | ||
+ | '''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. | |
− | |||
− | TBD | + | |
+ | |||
+ | |||
+ | |||
+ | |||
+ | '''Rich UI Handlers (JavaScript)''' | ||
+ | |||
+ | TBD<br> |
Revision as of 15:46, 5 March 2012
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
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)
TBD