Skip to main content
Jump to: navigation, search

DD Manual Test Plan

Revision as of 00:53, 9 February 2008 by Fchouinard.gmail.com (Talk | contribs) (Breakpoints)

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

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

  1. Check out and build the sanity test project from /cvsroot/dsdp/org.eclipse.dd.dsf/tests/SanityTest
  2. Launch the DSF debugger with break at main
  3. 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
    • In the editor, disable BP-1
    • Check: BP-1 is disabled
    • In the editor, enable BP-1
    • Check: BP-1 is enabled
    • From the breakpoint context menu, disable BP-1
    • Check: BP-1 is disabled
    • From the breakpoint context menu, enable BP-1
    • Check: BP-1 is enabled
  • 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
    • Set an ignore count on BP-1
    • Check: The update is accepted and BP-1 has the new ignore count
    • Reset an ignore count on BP-1 (set to 0)
    • Check: The update is accepted and BP-1 has no 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)

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
    • From the watchpoint context menu. disable WP-1
    • Check: WP-1 is disabled
    • From the watchpoint context menu, enable WP-1
    • Check: WP-1 is enabled
  • 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
    • Set an ignore count on WP-1
    • Check: The update is accepted and WP-1 has the new ignore count
    • Reset an ignore count on WP-1 (set to 0)
    • Check: The update is accepted and WP-1 has no 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)

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
    • Set filter for threads 1, 2
    • Check: Old breakpoint is removed
    • Check: 2 similar breakpoints are created, one for each thread selected
  • Test 2: Filtered thread substitution
    • Change filter for threads 1, 3
    • Check: 2 old breakpoints are removed
    • Check: 2 similar breakpoints are created, one for each thread selected
  • Test 3: Remove a filtered thread
    • Change filter for thread 2 only
    • Check: 2 old breakpoints are removed
    • Check: A new breakpoints is created for thread 2
  • Test 4: Add a filtered thread
    • Change filter for thread 2, 3
    • Check: Old breakpoint is removed
    • Check: 2 new breakpoints are created, one for each thread selected
  • Test 5: Remove thread filters
    • Remove filter
    • Check: 2 old breakpoints are removed
    • Check: A new breakpoints is set with no thread filter
  • Test 6: Initial condition propagation
    • Add a valid condition to the breakpoint
    • Add filter for threads 1, 2
    • Check: Old breakpoint is removed
    • Check: 2 new breakpoints are set with condition
  • Test 7: Invalid condition propagation
    • Change to an invalid condition
    • Check: Updates failed
    • Check: Breakpoints aren't changed (previous condition is kept)
  • 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
    • Add a valid condition
    • Check: Condition is properly set for both breakpoints
    • Remove thread filter
    • Check: 2 old breakpoints are removed
    • Check: A new breakpoint is set with condition and no thread filter
  • Test 11: Ignore count propagation
    • Add an ignore count to the breakpoint
    • Add filter for threads 1, 2
    • Check: Old breakpoint is removed
    • Check: 2 new breakpoints are set with proper ignore count
  • 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
    • Remove thread filter
    • Check: 2 old breakpoints are removed
    • Check: A new breakpoint is set with 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
    • Check: Old breakpoint is removed
    • Check: 2 new breakpoints are set with proper ignore count, condition
  • Test 16: Removal of thread filter, persistence of condition, ignore count
    • Remove thread filter
    • Check: 2 old breakpoints are removed
    • Check: A new breakpoint is set with ignore count, condition
  • Test 17: Addition of thread filter, invalid condition and ignore count
    • Add filter for threads 1, 2, invalid condition,ignore count
    • Check: Old breakpoint is removed
    • Check: 2 new breakpoints are set with proper ignore count and old condition
  • Test 18: Filter out a thread
    • Set filter for thread 1
    • Check: 2 old breakpoints are removed
    • Check: A new breakpoint is set with proper ignore count, condition
  • Test 19: Substituting filtered thread
    • Add filter for thread 2
    • Check: Old breakpoint is removed
    • Check: A new breakpoint is set with proper ignore count, condition
  • Test 20: Removing thread filter
    • Remove thread filter
    • Check: Old breakpoint is removed
    • Check: A new breakpoint is set with ignore count, condition

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
    • Toggle the 'Skip All Button' SAB to ON
    • Check: BPs 1, 2, 3 are disabled
    • Toggle the SAB to OFF
    • Check: BPs 1, 2, 3 are enabled
  • Test 2: ON/OFF with some disabled BPs
    • Disable BP 2
    • Toggle the SAB to ON
    • Check: BPs 1, 3 are disabled
    • Toggle the SAB to OFF
    • Check: BPs 1, 3 are enabled
    • Disable BP 1 and 3
    • Enable BP 2
    • Toggle the SAB to ON
    • Check: BP 2 is disabled
    • Toggle the SAB to OFF
    • Check: BP 2 is disabled
  • Test 3: ON/OFF with all BPs disabled
    • Disable BPs 1, 2, 3
    • Toggle the SAB to ON
    • Check: Nothing happens
    • Toggle the SAB to OFF
    • Check: Nothing happens
  • Test 4: Change BPs state while OFF
    • Enable BP 2
    • Disable BPs 1, 3
    • Toggle the SAB to ON
    • Check: BP 2 is disabled
    • Enable BP 1
    • Check: Nothing happens
    • Disable BP 2
    • Check: Nothing happens
    • Toggle the SAB to OFF
    • Check: BP 1 is enabled
  • Test 6: Startup
    • Stop DSF debug session
    • Enable BPs 1, 2, 3
    • Toggle the SAB to ON
    • Start DSF debug session
    • Check: BPs 1, 2, 3 are created and disabled
    • Toggle the SAB to OFF
    • Check: BPs 1, 2, 3 are enabled

Traditional Memory Rendering

IP-XACT Editor

Back to the top