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.
DD Manual Test Plan
Nav: DSDP/DD | DSDP/DD/Testing | DD Test Instructions | DD Known Issues and Workarounds | DD Manual Test Plan
DSF Features
Debug view
- Launch
- Check: debug perspective activated on launch
- Check: debug view activated on launch
- Check: stack frame selected on break on main after launch
- Target
- Check: process name shown in label
- Expand process to show threads.
- Select the target
- Check: resume/suspend operations are enabled
- Try resuming suspending
- Check: all threads should resume/suspend
- Check: stepping operations should be disabled
- Terminating the target
- Check: Terminated target should remain in the view with a "<terminated>" label prefix a terminated target icon.
- Run program to the completion,
- Check: target should change state to terminated.
- Threads
- Check: thread label shows thread ID and the current status.
- Select a thread.
- Check: resume/suspend operations should be enabled
- Check: step operations should also be enabled
- Try resuming/suspending/stepping
- Try stepping fast by holding down the F5 key
- Run a multi-threaded program
- Check: new threads should be added to the bottom of the thread list as they are created
- Check: exited threads are removed from the thread list
- Expand threads to show stack traces
- Check: When stepping a thread, other threads should remain collapsed/expanded as they were
- Stack frames
- Check: frame label should contain:
- Stack frame number
- Function name if known
- File and line
- Current program counter
- Select a stack frame
- Check: source editor is opened and positioned to the location of the PC
- Check: run control operations should be the same as when a thread is selected
- Check: when a thread hits a breakpoint, that thread's stack frame is automatically selected
- Check: frame label should contain:
Variables view
- Stop a debugged program when it has at least two stack levels
- Open variables view
- Check that all variables of the current stack are shown
- Check that all values are shown
- Check that the layout menu behaves as expected
- Check that complex variables have a little arrow on the left
- Check that the arrow can be expanded to show children
- Select different variables in the view and check that the details pane shows the different formats
- Scroll down in the variable view
- Check that newly displayed variables are correct
- Change the stack frame in the debug view
- Check that the variables view properly shows the variables for the selected stack frame
- Go back to the previous stack frame in the debug view
- Check that the variables view properly shows the variables for the selected stack frame
- Step the program
- Check that variable changes are reflected in the view and highlighted in color
- Select a variable and change its value in the variables view
- Check that the value is shown in the view
- Step the program
- Check that the value for the changed variable is still correct
Registers view
Expressions view
- Stop a debugged program when it has at least two stack levels
- Open expressions view
- Create two or tree expressions including some of children of variables
- Check that an expression can be added with the "Add new expression" line
- Check that an expression can be added with "Add Watch Expression" context menu
- Check that the created expressions are shown
- Check that expressions values are shown
- Check that the layout menu works as expected
- Check that complex expressions have a little arrow on the left
- Check that the arrow can be expanded to show children
- Select different expressions in the view and check that the details pane shows the different formats
- Add expressions to allow to scroll down in the expressions view
- Check that newly displayed expressions are correct
- Change the stack frame in the debug view
- Check that the expressions view properly shows the expressions for the selected stack frame
- Go back to the previous stack frame in the debug view
- Check that the expressions view properly shows the expressions for the selected stack frame
- Step the program
- Check that expressions changes are reflected in the view and highlighted in color
- Select a expressions and change its value in the expressions view
- Check that the value is shown in the view
- Step the program
- Check that the value for the changed expression is still correct
- Remove an expression using the context menu
- Check that the expression is removed
- Check that the same expression can be added again
- Remove all expressions using the context menu "Remove all..." command
- Check that all expressions are removed
- Check that expressions can be added again
- Modify an expression directly in the view
- Check that the expression changes and its value and type correspond to the new expression
Modules view
- Start a debug session and open the Modules view.
- Select the process in Debug view
- Check that the list of modules is shown in the Modules view.
- Select a thread then a stack frame in Debug view.
- Check that the Modules view still shows a list of loaded modules.
- Select a module in the modules view.
- Check that the detailed module info (type, symbols loaded, file, base address, size) are shown.
Number formats detail pane
Update modes
Breakpoints (General)
- Set a breakpoint in a method that is called at least 3 times
- Check that breakpoint is visible in editor and in breakpoint view
- Start program and press the resume button
- Check that program stops at the breakpoint
- Set another breakpoint, right before the current one
- Disable the old breakpoint in the breakpoint view and press resume twice
- check that the disable breakpoint is white in the editor
- check that the disable breakpoint did not cause the program to stop
- Re-enable breakpoint from the view and resume
- Check that re-enabled breakpoint does stop the program
- Check that "show full paths" in the breakpoints view does work
- Check that double-clicking on a breakpoints in the view takes us to the breakpoint in file
- Check that "Go to file" button in the view takes us to the breakpoint in file
- Disable and then enable breakpoint from the editor
- check that the view shows the proper state
- Add and then remove breakpoint from the editor
- check that the view shows and then removes the breakpoint
- Disable and then enable breakpoint from the view
- check that the editor shows the proper state
- Remove breakpoint from the view
- check that the editor removes the breakpoint
- Remove all breakpoint from the view
- check that the editor removes all breakpoints
- Click the button "Skip all breakpoints" in the view and resume
- Check that the program completes without stopping at any breakpoint
GDB Features
GDB Basic Sanity Test
- Check out and build the sanity test project from /cvsroot/dsdp/org.eclipse.dd.dsf/tests/SanityTest
- Launch the DSF debugger with break at main
- Follow instructions in the test.
Launching
Breakpoints (CDT)
Before you start...
- To avoid stack overflow, set memory to 512M
- In the launch configuration, Arguments tab, VM arguments section: -Xmx512M
- To ensure integrity between the UI and the back-end, all verifications (Check:) are performed from 3 points:
- Back-end activities with GDB/MI traces
- Back-end breakpoint status with "info break" at the console
- Platform breakpoint status in Breakpoint View (with Breakpoint Properties)
Breakpoints
- Test Setup
- Launch the Eclipse workbench
- Start a DSF debug session (Threads)
- Test 1: Breakpoint setting
- In the editor, add a new line breakpoint (BP-1)
- Check: A new breakpoint is inserted and it is enabled
- Test 2: Breakpoint activation
- Test 3: Breakpoint condition
- Set an invalid condition on BP-1
- Check: The update is rejected and BP-1 is not changed
- Set a valid condition on BP-1
- Check: The update is accepted and BP-1 has the new condition
- Set an invalid condition on BP-1
- Check: The update is rejected and BP-1 kept the valid condition
- Clear the BP-1 condition
- Check: The update is accepted and BP-1 no longer has a condition
- Test 4: Breakpoint ignore count
- Test 5: Breakpoint deletion (simple)
- From the GUI, delete BP-1
- Check: BP-1 is removed
- Test 6: Breakpoint persistence
- Create 4 breakpoints with the following characteristics:
- BP-1: enabled, no condition, no ignore count
- BP-2: disabled, with condition, no ignore count
- BP-3: disabled, no condition, with ignore count
- BP-4: enabled, with condition, with ignore count
- Check: The 4 breakpoints are correctly created
- Stop the debugging session
- Start a new debugging session
- Check: The 4 breakpoints are correctly restored
- Stop the debugging session
- Enable all breakpoints
- Start a new debugging session
- Check: The 4 breakpoints are correctly restored (and enabled)
- Create 4 breakpoints with the following characteristics:
- Test 7: Breakpoint deletion (multiple)
- From the GUI, delete BP-1, BP-2, BP-3 and BP-4
- Check: the 4 breakpoints are removed
Watchpoints
- Test Setup
- Launch the Eclipse workbench
- Start a DSF debug session (Threads)
- Test 1: Watchpoint setting
- In the Breakpoint View, add a new watchpoint (WP-1)
- Check: A new watchpoint is inserted and it is enabled
- Test 2: Watchpoint activation
- Test 3: Watchpoint condition
- Set an invalid condition on WP-1
- Check: The update is rejected and WP-1 is not changed
- Set a valid condition on WP-1
- Check: The update is accepted and WP-1 has the new condition
- Set an invalid condition on WP-1
- Check: The update is rejected and WP-1 kept the valid condition
- Clear the WP-1 condition
- Check: The update is accepted and WP-1 no longer has a condition
- Test 4: Watchpoint ignore count
- Test 5: Watchpoint deletion (simple)
- From the GUI, delete WP-1
- Check: WP-1 is removed
- Test 6: Watchpoint persistence
- Create 4 watchpoints with the following characteristics:
- WP-1 enabled, write, no condition, no ignore count
- WP-2 disabled, read, with condition, no ignore count
- WP-3 disabled, read/write, no condition, with ignore count
- WP-4 enabled, write, with condition, with ignore count
- Check: The 4 watchpoints are correctly created
- Stop the debugging session
- Start a new debugging session
- Check: The 4 watchpoints are correctly restored
- Stop the debugging session
- Enable all watchpoints
- Start a new debugging session
- Check: The 4 watchpoints are correctly restored (and enabled)
- Create 4 watchpoints with the following characteristics:
- Test 7: Watchpoint deletion (multiple)
- From the GUI, delete WP-1, WP-2, WP-3 and WP-4
- Check: The 4 watchpoints are removed
Thread Filters
- Test Setup
- Test 1: Filter out a thread
- Test 2: Filtered thread substitution
- Test 3: Remove a filtered thread
- Test 4: Add a filtered thread
- Test 5: Remove thread filters
- Test 6: Initial condition propagation
- Test 7: Invalid condition propagation
- Test 8: Valid condition propagation
- Add a valid condition
- Check: Condition is properly set for both breakpoints
- Test 9: Condition removal propagation
- Remove condition
- Check: Condition is removed from both breakpoints
- Test 10: Condition persistence
- Test 11: Ignore count propagation
- Test 12: Ignore count removal propagation
- Remove ignore count (set to 0)
- Check: Both breakpoints are updated with no ignore count
- Test 13: Ignore count update propagation
- Set an ignore count
- Check: Both breakpoints are updated with ignore count
- Test 14: Ignore count persistence
- Test 15: Simultaneous update of thread filter, condition and ignore count
- Test 16: Removal of thread filter, persistence of condition, ignore count
- Test 17: Addition of thread filter, invalid condition and ignore count
- Test 18: Filter out a thread
- Test 19: Substituting filtered thread
- Test 20: Removing thread filter
Skip All Button
- Test Setup
- Launch the Eclipse workbench
- Create 3 line breakpoints (anything will do)
- Start a DSF debug session (Threads)
- Check: Breakpoints are created and enabled
- Test 1: Simple ON/OFF
- Test 2: ON/OFF with some disabled BPs
- Test 3: ON/OFF with all BPs disabled
- Test 4: Change BPs state while OFF
- Test 6: Startup