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 "DD Manual Test Plan"
(→Breakpoints (CDT)) |
(→Breakpoints (CDT)) |
||
Line 152: | Line 152: | ||
=== Breakpoints (CDT) === | === Breakpoints (CDT) === | ||
− | * | + | ==== Before you start... ==== |
+ | |||
+ | * To avoid stack overflow, set memory to 512M | ||
** In the launch configuration, Arguments tab, VM arguments section: -Xmx512M | ** 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 at 3 ways: |
** Back-end activities with GDB/MI traces | ** Back-end activities with GDB/MI traces | ||
** Back-end breakpoint status with "info break" at the console | ** Back-end breakpoint status with "info break" at the console | ||
Line 162: | Line 164: | ||
==== Breakpoints ==== | ==== Breakpoints ==== | ||
− | * Test Setup | + | * '''Test Setup''' |
** Launch the Eclipse workbench | ** Launch the Eclipse workbench | ||
** Start a DSF debug session (Threads) | ** Start a DSF debug session (Threads) | ||
− | * Test 1: Breakpoint setting | + | * '''Test 1: Breakpoint setting''' |
** In the editor, add a new line breakpoint (BP-1) | ** In the editor, add a new line breakpoint (BP-1) | ||
− | ** Check: A new breakpoint is inserted and it is enabled | + | ** [[Check:]] A new breakpoint is inserted and it is enabled |
− | * Test 2: Breakpoint activation | + | * '''Test 2: Breakpoint activation''' |
** In the editor, disable BP-1 | ** In the editor, disable BP-1 | ||
− | ** Check: BP-1 is disabled | + | ** [[Check:]] BP-1 is disabled |
** In the editor, enable BP-1 | ** In the editor, enable BP-1 | ||
− | ** Check: BP-1 is enabled | + | ** [[Check:]] BP-1 is enabled |
** From the breakpoint context menu, disable BP-1 | ** From the breakpoint context menu, disable BP-1 | ||
− | ** Check: BP-1 is disabled | + | ** [[Check:]] BP-1 is disabled |
** From the breakpoint context menu, enable BP-1 | ** From the breakpoint context menu, enable BP-1 | ||
− | ** Check: BP-1 is enabled | + | ** [[Check:]] BP-1 is enabled |
− | * Test 3: Breakpoint condition | + | * '''Test 3: Breakpoint condition''' |
** Set an invalid condition on BP-1 | ** Set an invalid condition on BP-1 | ||
− | ** Check: The update is rejected and BP-1 is not changed | + | ** [[Check:]] The update is rejected and BP-1 is not changed |
** Set a valid condition on BP-1 | ** Set a valid condition on BP-1 | ||
− | ** Check: The update is accepted and BP-1 has the new condition | + | ** [[Check:]] The update is accepted and BP-1 has the new condition |
** Set an invalid condition on BP-1 | ** Set an invalid condition on BP-1 | ||
− | ** Check: The update is rejected and BP-1 kept the valid condition | + | ** [[Check:]] The update is rejected and BP-1 kept the valid condition |
** Clear the BP-1 condition | ** Clear the BP-1 condition | ||
− | ** Check: The update is accepted and BP-1 no longer has a condition | + | ** [[Check:]] The update is accepted and BP-1 no longer has a condition |
− | * Test 4: Breakpoint ignore count | + | * '''Test 4: Breakpoint ignore count''' |
** Set an ignore count on BP-1 | ** Set an ignore count on BP-1 | ||
− | ** Check: The update is accepted and BP-1 has the new ignore count | + | ** [[Check:]] The update is accepted and BP-1 has the new ignore count |
** Reset an ignore count on BP-1 (set to 0) | ** Reset an ignore count on BP-1 (set to 0) | ||
− | ** Check: The update is accepted and BP-1 has no ignore count | + | ** [[Check:]] The update is accepted and BP-1 has no ignore count |
− | * Test 5: Breakpoint persistence | + | * '''Test 5: Breakpoint persistence''' |
** Create 4 breakpoints with the following characteristics: | ** Create 4 breakpoints with the following characteristics: | ||
*** BP-1: enabled, no condition, no ignore count | *** BP-1: enabled, no condition, no ignore count | ||
Line 202: | Line 204: | ||
*** BP-3: disabled, no condition, with ignore count | *** BP-3: disabled, no condition, with ignore count | ||
*** BP-4: enabled, with condition, with ignore count | *** BP-4: enabled, with condition, with ignore count | ||
− | ** Check: The 4 breakpoints are correctly created | + | ** [[Check:]] The 4 breakpoints are correctly created |
** Stop the debugging session | ** Stop the debugging session | ||
** Start a new debugging session | ** Start a new debugging session | ||
− | ** Check: The 4 breakpoints are correctly restored | + | ** [[Check:]] The 4 breakpoints are correctly restored |
** Stop the debugging session | ** Stop the debugging session | ||
** Enable all breakpoints | ** Enable all breakpoints | ||
** Start a new debugging session | ** Start a new debugging session | ||
− | ** Check: The 4 breakpoints are correctly restored (and enabled) | + | ** [[Check:]] The 4 breakpoints are correctly restored (and enabled) |
==== Watchpoints ==== | ==== Watchpoints ==== | ||
− | * Test Setup | + | * '''Test Setup''' |
** Launch the Eclipse workbench | ** Launch the Eclipse workbench | ||
** Start a DSF debug session (Threads) | ** Start a DSF debug session (Threads) | ||
− | * Test 1: Watchpoint setting | + | * '''Test 1: Watchpoint setting''' |
** In the Breakpoint View, add a new watchpoint (WP-1) | ** In the Breakpoint View, add a new watchpoint (WP-1) | ||
− | ** Check: A new watchpoint is inserted and it is enabled | + | ** [[Check:]] A new watchpoint is inserted and it is enabled |
− | * Test 2: Watchpoint activation | + | * '''Test 2: Watchpoint activation''' |
** From the watchpoint context menu. disable WP-1 | ** From the watchpoint context menu. disable WP-1 | ||
− | ** Check: WP-1 is disabled | + | ** [[Check:]] WP-1 is disabled |
** From the watchpoint context menu, enable WP-1 | ** From the watchpoint context menu, enable WP-1 | ||
− | ** Check: WP-1 is enabled | + | ** [[Check:]] WP-1 is enabled |
− | * Test 3: Watchpoint condition | + | * '''Test 3: Watchpoint condition''' |
** Set an invalid condition on WP-1 | ** Set an invalid condition on WP-1 | ||
− | ** Check: The update is rejected and WP-1 is not changed | + | ** [[Check:]] The update is rejected and WP-1 is not changed |
** Set a valid condition on WP-1 | ** Set a valid condition on WP-1 | ||
− | ** Check: The update is accepted and WP-1 has the new condition | + | ** [[Check:]] The update is accepted and WP-1 has the new condition |
** Set an invalid condition on WP-1 | ** Set an invalid condition on WP-1 | ||
− | ** Check: The update is rejected and WP-1 kept the valid condition | + | ** [[Check:]] The update is rejected and WP-1 kept the valid condition |
** Clear the WP-1 condition | ** Clear the WP-1 condition | ||
− | ** Check: The update is accepted and WP-1 no longer has a condition | + | ** [[Check:]] The update is accepted and WP-1 no longer has a condition |
− | * Test 4: Watchpoint ignore count | + | * '''Test 4: Watchpoint ignore count''' |
** Set an ignore count on WP-1 | ** Set an ignore count on WP-1 | ||
− | ** Check: The update is accepted and WP-1 has the new ignore count | + | ** [[Check:]] The update is accepted and WP-1 has the new ignore count |
** Reset an ignore count on WP-1 (set to 0) | ** Reset an ignore count on WP-1 (set to 0) | ||
− | ** Check: The update is accepted and WP-1 has no ignore count | + | ** [[Check:]] The update is accepted and WP-1 has no ignore count |
− | * Test 5: Watchpoint persistence | + | * '''Test 5: Watchpoint persistence''' |
** Create 4 watchpoints with the following characteristics: | ** Create 4 watchpoints with the following characteristics: | ||
*** WP-1 enabled, write, no condition, no ignore count | *** WP-1 enabled, write, no condition, no ignore count | ||
Line 249: | Line 251: | ||
*** WP-3 disabled, read/write, no condition, with ignore count | *** WP-3 disabled, read/write, no condition, with ignore count | ||
*** WP-4 enabled, no read/no write, with condition, with ignore count | *** WP-4 enabled, no read/no write, with condition, with ignore count | ||
− | ** Check: The 4 watchpoints are correctly created | + | ** [[Check:]] The 4 watchpoints are correctly created |
** Stop the debugging session | ** Stop the debugging session | ||
** Start a new debugging session | ** Start a new debugging session | ||
− | ** Check: The 4 watchpoints are correctly restored | + | ** [[Check:]] The 4 watchpoints are correctly restored |
** Stop the debugging session | ** Stop the debugging session | ||
** Enable all watchpoints | ** Enable all watchpoints | ||
** Start a new debugging session | ** Start a new debugging session | ||
− | ** Check: The 4 watchpoints are correctly restored (and enabled) | + | ** [[Check:]] The 4 watchpoints are correctly restored (and enabled) |
==== Thread Filters ==== | ==== Thread Filters ==== | ||
− | * Test Setup | + | * '''Test Setup''' |
** Launch the Eclipse workbench | ** Launch the Eclipse workbench | ||
** Create a breakpoint on the return statement of the printMsg function ("return NULL") | ** Create a breakpoint on the return statement of the printMsg function ("return NULL") | ||
** Start a DSF debug session (Threads) | ** Start a DSF debug session (Threads) | ||
− | ** Check: Breakpoint is created and enabled | + | ** [[Check:]] Breakpoint is created and enabled |
** Run to breakpoint | ** Run to breakpoint | ||
** Check that there are 3 threads (1, 2 and 3) | ** Check that there are 3 threads (1, 2 and 3) | ||
− | * Test 1: Filter out a thread | + | * '''Test 1: Filter out a thread''' |
** Set filter for threads 1, 2 | ** Set filter for threads 1, 2 | ||
− | ** Check: Old breakpoint is removed | + | ** [[Check:]] Old breakpoint is removed |
− | ** Check: 2 similar breakpoints are created, one for each thread selected | + | ** [[Check:]] 2 similar breakpoints are created, one for each thread selected |
− | * Test 2: Filtered thread substitution | + | * '''Test 2: Filtered thread substitution''' |
** Change filter for threads 1, 3 | ** Change filter for threads 1, 3 | ||
− | ** Check: 2 old breakpoints are removed | + | ** [[Check:]] 2 old breakpoints are removed |
− | ** Check: 2 similar breakpoints are created, one for each thread selected | + | ** [[Check:]] 2 similar breakpoints are created, one for each thread selected |
− | * Test 3: Remove a filtered thread | + | * '''Test 3: Remove a filtered thread''' |
** Change filter for thread 2 only | ** Change filter for thread 2 only | ||
− | ** Check: 2 old breakpoints are removed | + | ** [[Check:]] 2 old breakpoints are removed |
− | ** Check: A new breakpoints is created for thread 2 | + | ** [[Check:]] A new breakpoints is created for thread 2 |
− | * Test 4: Add a filtered thread | + | * '''Test 4: Add a filtered thread''' |
** Change filter for thread 2, 3 | ** Change filter for thread 2, 3 | ||
− | ** Check: Old breakpoint is removed | + | ** [[Check:]] Old breakpoint is removed |
− | ** Check: 2 new breakpoints are created, one for each thread selected | + | ** [[Check:]] 2 new breakpoints are created, one for each thread selected |
− | * Test 5: Remove thread filters | + | * '''Test 5: Remove thread filters''' |
** Remove filter | ** Remove filter | ||
− | ** Check: 2 old breakpoints are removed | + | ** [[Check:]] 2 old breakpoints are removed |
− | ** Check: A new breakpoints is set with no thread filter | + | ** [[Check:]] A new breakpoints is set with no thread filter |
− | * Test 6: Initial condition propagation | + | * '''Test 6: Initial condition propagation''' |
** Add a valid condition to the breakpoint | ** Add a valid condition to the breakpoint | ||
** Add filter for threads 1, 2 | ** Add filter for threads 1, 2 | ||
− | ** Check: Old breakpoint is removed | + | ** [[Check:]] Old breakpoint is removed |
− | ** Check: 2 new breakpoints are set with condition | + | ** [[Check:]] 2 new breakpoints are set with condition |
− | * Test 7: Invalid condition propagation | + | * '''Test 7: Invalid condition propagation''' |
** Change to an invalid condition | ** Change to an invalid condition | ||
− | ** Check: Updates failed | + | ** [[Check:]] Updates failed |
− | ** Check: Breakpoints aren't changed (previous condition is kept) | + | ** [[Check:]] Breakpoints aren't changed (previous condition is kept) |
− | * Test 8: Valid condition propagation | + | * '''Test 8: Valid condition propagation''' |
** Add a valid condition | ** Add a valid condition | ||
− | ** Check: Condition is properly set for both breakpoints | + | ** [[Check:]] Condition is properly set for both breakpoints |
− | * Test 9: Condition removal propagation | + | * '''Test 9: Condition removal propagation''' |
** Remove condition | ** Remove condition | ||
− | ** Check: Condition is removed from both breakpoints | + | ** [[Check:]] Condition is removed from both breakpoints |
− | * Test 10: Condition persistence | + | * '''Test 10: Condition persistence''' |
** Add a valid condition | ** Add a valid condition | ||
− | ** Check: Condition is properly set for both breakpoints | + | ** [[Check:]] Condition is properly set for both breakpoints |
** Remove thread filter | ** Remove thread filter | ||
− | ** Check: 2 old breakpoints are removed | + | ** [[Check:]] 2 old breakpoints are removed |
− | ** Check: A new breakpoint is set with condition and no thread filter | + | ** [[Check:]] A new breakpoint is set with condition and no thread filter |
− | * Test 11: Ignore count propagation | + | * '''Test 11: Ignore count propagation''' |
** Add an ignore count to the breakpoint | ** Add an ignore count to the breakpoint | ||
** Add filter for threads 1, 2 | ** Add filter for threads 1, 2 | ||
− | ** Check: Old breakpoint is removed | + | ** [[Check:]] Old breakpoint is removed |
− | ** Check: 2 new breakpoints are set with proper ignore count | + | ** [[Check:]] 2 new breakpoints are set with proper ignore count |
− | * Test 12: Ignore count removal propagation | + | * '''Test 12: Ignore count removal propagation''' |
** Remove ignore count (set to 0) | ** Remove ignore count (set to 0) | ||
− | ** Check: Both breakpoints are updated with no ignore count | + | ** [[Check:]] Both breakpoints are updated with no ignore count |
− | * Test 13: Ignore count update propagation | + | * '''Test 13: Ignore count update propagation''' |
** Set an ignore count | ** Set an ignore count | ||
− | ** Check: Both breakpoints are updated with ignore count | + | ** [[Check:]] Both breakpoints are updated with ignore count |
− | * Test 14: Ignore count persistence | + | * '''Test 14: Ignore count persistence''' |
** Remove thread filter | ** Remove thread filter | ||
− | ** Check: 2 old breakpoints are removed | + | ** [[Check:]] 2 old breakpoints are removed |
− | ** Check: A new breakpoint is set with ignore count | + | ** [[Check:]] A new breakpoint is set with ignore count |
− | * Test 15: Simultaneous update of thread filter, condition and ignore count | + | * '''Test 15: Simultaneous update of thread filter, condition and ignore count''' |
** Add filter for threads 1, 2, a valid condition and an ignore count | ** Add filter for threads 1, 2, a valid condition and an ignore count | ||
− | ** Check: Old breakpoint is removed | + | ** [[Check:]] Old breakpoint is removed |
− | ** Check: 2 new breakpoints are set with proper ignore count, condition | + | ** [[Check:]] 2 new breakpoints are set with proper ignore count, condition |
− | * Test 16: Removal of thread filter, persistence of condition, ignore count | + | * '''Test 16: Removal of thread filter, persistence of condition, ignore count''' |
** Remove thread filter | ** Remove thread filter | ||
− | ** Check: 2 old breakpoints are removed | + | ** [[Check:]] 2 old breakpoints are removed |
− | ** Check: A new breakpoint is set with ignore count, condition | + | ** [[Check:]] A new breakpoint is set with ignore count, condition |
− | * Test 17: Addition of thread filter, invalid condition and ignore count | + | * '''Test 17: Addition of thread filter, invalid condition and ignore count''' |
** Add filter for threads 1, 2, [[invalid]] condition,ignore count | ** Add filter for threads 1, 2, [[invalid]] condition,ignore count | ||
− | ** Check: Old breakpoint is removed | + | ** [[Check:]] Old breakpoint is removed |
− | ** Check: 2 new breakpoints are set with proper ignore count and old condition | + | ** [[Check:]] 2 new breakpoints are set with proper ignore count and old condition |
− | * Test 18: Filter out a thread | + | * '''Test 18: Filter out a thread''' |
** Set filter for thread 1 | ** Set filter for thread 1 | ||
− | ** Check: 2 old breakpoints are removed | + | ** [[Check:]] 2 old breakpoints are removed |
− | ** Check: A new breakpoint is set with proper ignore count, condition | + | ** [[Check:]] A new breakpoint is set with proper ignore count, condition |
− | * Test 19: Substituting filtered thread | + | * '''Test 19: Substituting filtered thread''' |
** Add filter for thread 2 | ** Add filter for thread 2 | ||
− | ** Check: Old breakpoint is removed | + | ** [[Check:]] Old breakpoint is removed |
− | ** Check: A new breakpoint is set with proper ignore count, condition | + | ** [[Check:]] A new breakpoint is set with proper ignore count, condition |
− | * Test 20: Removing thread filter | + | * '''Test 20: Removing thread filter''' |
** Remove thread filter | ** Remove thread filter | ||
− | ** Check: Old breakpoint is removed | + | ** [[Check:]] Old breakpoint is removed |
− | ** Check: A new breakpoint is set with ignore count, condition | + | ** [[Check:]] A new breakpoint is set with ignore count, condition |
==== Skip All Button ==== | ==== Skip All Button ==== | ||
− | * Test 1: Simple ON/OFF | + | * '''Test Setup''' |
− | ** Toggle the | + | ** Launch the Eclipse workbench |
− | ** Check: BPs 1, 2, 3 are disabled | + | ** Create 3 line breakpoints (anything will do) |
+ | ** Start a DSF debug session (Threads) | ||
+ | ** [[Check:]] Breakpoints are created and enabled | ||
+ | |||
+ | * '''Test 1: Simple ON'''/OFF | ||
+ | ** Toggle the 'Skip All Button' SAB to ON | ||
+ | ** [[Check:]] BPs 1, 2, 3 are disabled | ||
** Toggle the SAB to OFF | ** Toggle the SAB to OFF | ||
− | ** Check: BPs 1, 2, 3 are enabled | + | ** [[Check:]] BPs 1, 2, 3 are enabled |
− | * Test 2: ON/OFF with some disabled BPs | + | * '''Test 2: ON'''/OFF with some disabled BPs |
** Disable BP 2 | ** Disable BP 2 | ||
** Toggle the SAB to ON | ** Toggle the SAB to ON | ||
− | ** Check: BPs 1, 3 are disabled | + | ** [[Check:]] BPs 1, 3 are disabled |
** Toggle the SAB to OFF | ** Toggle the SAB to OFF | ||
− | ** Check: BPs 1, 3 are enabled | + | ** [[Check:]] BPs 1, 3 are enabled |
** Disable BP 1 and 3 | ** Disable BP 1 and 3 | ||
** Enable BP 2 | ** Enable BP 2 | ||
** Toggle the SAB to ON | ** Toggle the SAB to ON | ||
− | ** Check: BP 2 is disabled | + | ** [[Check:]] BP 2 is disabled |
** Toggle the SAB to OFF | ** Toggle the SAB to OFF | ||
− | ** Check: BP 2 is disabled | + | ** [[Check:]] BP 2 is disabled |
− | * Test 3: ON/OFF with all BPs disabled | + | * '''Test 3: ON'''/OFF with all BPs disabled |
** Disable BPs 1, 2, 3 | ** Disable BPs 1, 2, 3 | ||
** Toggle the SAB to ON | ** Toggle the SAB to ON | ||
− | ** Check: Nothing happens | + | ** [[Check:]] Nothing happens |
** Toggle the SAB to OFF | ** Toggle the SAB to OFF | ||
− | ** Check: Nothing happens | + | ** [[Check:]] Nothing happens |
− | * Test 4: Change BPs state while OFF | + | * '''Test 4: Change BPs state while OFF''' |
** Enable BP 2 | ** Enable BP 2 | ||
** Disable BPs 1, 3 | ** Disable BPs 1, 3 | ||
** Toggle the SAB to ON | ** Toggle the SAB to ON | ||
− | ** Check: BP 2 is disabled | + | ** [[Check:]] BP 2 is disabled |
** Enable BP 1 | ** Enable BP 1 | ||
− | ** Check: Nothing happens | + | ** [[Check:]] Nothing happens |
** Disable BP 2 | ** Disable BP 2 | ||
− | ** Check: Nothing happens | + | ** [[Check:]] Nothing happens |
** Toggle the SAB to OFF | ** Toggle the SAB to OFF | ||
− | ** Check: BP 1 is enabled | + | ** [[Check:]] BP 1 is enabled |
− | * Test 6: Startup | + | * '''Test 6: Startup''' |
** Stop DSF debug session | ** Stop DSF debug session | ||
** Enable BPs 1, 2, 3 | ** Enable BPs 1, 2, 3 | ||
** Toggle the SAB to ON | ** Toggle the SAB to ON | ||
** Start DSF debug session | ** Start DSF debug session | ||
− | ** Check: BPs 1, 2, 3 are created and disabled | + | ** [[Check:]] BPs 1, 2, 3 are created and disabled |
** Toggle the SAB to OFF | ** Toggle the SAB to OFF | ||
− | ** Check: BPs 1, 2, 3 are enabled | + | ** [[Check:]] BPs 1, 2, 3 are enabled |
== Traditional Memory Rendering == | == Traditional Memory Rendering == | ||
== IP-XACT Editor == | == IP-XACT Editor == |
Revision as of 14:49, 22 January 2008
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 at 3 ways:
- 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 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:
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 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, no read/no 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:
Thread Filters
- Test Setup
- Launch the Eclipse workbench
- Create a breakpoint on the return statement of the printMsg function ("return NULL")
- Start a DSF debug session (Threads)
- Check: Breakpoint is created and enabled
- Run to breakpoint
- Check that there are 3 threads (1, 2 and 3)
- 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