Jump to: navigation, search

Difference between revisions of "DD Manual Test Plan"

(IP-XACT Editor)
(IP-XACT Editor)
Line 627: Line 627:
 
** Select the 'Source' tab
 
** Select the 'Source' tab
 
** Reformat the source using Ctrl/Shift/F
 
** Reformat the source using Ctrl/Shift/F
** [[Check:]] The editor window should now contain the XML
+
** [[Check:]] The editor window should now contain the following XML.
 
*** Note: The format may vary, only the content is important.
 
*** Note: The format may vary, only the content is important.
 
<source lang="xml">
 
<source lang="xml">

Revision as of 05:38, 7 April 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
  • Source Display
    • Run a program with multiple source files
    • Set a breakpoint at a function call which is in another source file
    • Run to breakpoint
    • Check: the source file with the breakpoint is displayed
    • Step into the function
    • Check: the new source file is displayed at the start of the new function

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)

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 (DsfBreakpoints)
  • Test 1: Breakpoint setting
    • In the editor, add a new line breakpoint (BP-1)
    • Check: A new breakpoint is inserted and it is enabled
    • In the editor, enable the "Show Full Paths" check box
    • Check: The breakpoint full path is displayed in the view
    • In the editor, disable the "Show Full Paths" check box
    • Check: The breakpoint full path is not displayed in the view
  • 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
    • Terminate the debugging session
    • Start a new debugging session
    • Check: The 4 breakpoints are correctly restored
    • Terminate the debugging session
    • Enable all breakpoints
    • Start a new debugging session
    • Check: The 4 breakpoints are correctly restored (and enabled)
  • Test 7: Breakpoint deletion (multiple)
    • From the GUI, delete BP-1, BP-2, BP-3 and BP-4
    • Check: the 4 breakpoints are removed
  • Test 8: Import/export breakpoints to file
    • 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
    • Export the 4 breakpoints to file
    • Check: The breakpoints file is created
    • Remove all breakpoints
    • Check: The 4 breakpoints are removed
    • Import the breakpoint file
    • Check: The 4 breakpoints are correctly restored
    • Remove all breakpoints
    • Terminate the debugging session
    • Start a new debugging session
    • Check: No breakpoint is installed
    • Import the breakpoint file
    • Check: The 4 breakpoints are correctly restored

Watchpoints

  • Test Setup
    • Launch the Eclipse workbench
    • Start a DSF debug session (DsfBreakpoints)
  • 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 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
    • Terminate the debugging session
    • Start a new debugging session
    • Check: The 4 watchpoints are correctly restored
    • Terminate the debugging session
    • Enable all watchpoints
    • Start a new debugging session
    • Check: The 4 watchpoints are correctly restored (and enabled)
  • Test 7: Watchpoint deletion (multiple)
    • From the GUI, delete WP-1, WP-2, WP-3 and WP-4
    • Check: The 4 watchpoints are removed
  • Test 8: Import/export watchpoints to file
    • 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
    • Export the 4 watchpoints to file
    • Check: The watchpoints file is created
    • Remove all watchpoints
    • Check: The 4 watchpoints are removed
    • Import the watchpoints file
    • Check: The 4 watchpoints are correctly restored
    • Remove all watchpoints
    • Terminate the debugging session
    • Start a new debugging session
    • Check: No watchpoints is installed
    • Import the watchpoints file
    • Check: The 4 watchpoints are correctly restored

Skip All Button

  • Test Setup
    • Launch the Eclipse workbench
    • Create 3 line breakpoints (anything will do)
    • Start a DSF debug session (DsfBreakpoints)
    • 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
    • Check: Only BP-2 is disabled
    • Toggle the SAB to ON
    • Check: All breakpoints are disabled
    • Toggle the SAB to OFF
    • Check: BPs 1, 3 are enabled
    • Disable BP 1 and 3
    • Enable BP 2
    • Check: Only BP-2 is enabled
    • Toggle the SAB to ON
    • Check: All breakpoints are disabled
    • Toggle the SAB to OFF
    • Check: Only BP-2 is enabled
  • 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
    • Terminate 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

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

  • Perspective
    • In Preferences->Run/Debug->Perspectives, make sure that at least one perspective change option is set to prompt.
    • Set the java or c++ perspective
    • Launch a DSF program
    • Verify that there is a prompt to switch perspective to Debug, Answer yes
    • Verify the perspective switches
  • Expanding after launch
    • Verify from the above test that the Debug view has a selection to the top-most thread
    • Close Debug view
    • Open Debug view
    • Verify that the Debug view has a selection to the top-most thread
  • Break on main
    • Set a valid break-on-main symbol, and launch.
    • Check: the program breaks at the correct location.
    • Set an invalid break-on-main symbol, and launch.
    • Check: the launch should fail with an error from creating the break-on-main breakpoint
    • Set a break-on-main symbol that is not reachable by the program, but the program continues running, and launch.
    • Check: the launch should complete as if there was no break-on-main symbol set.
    • Set a break-on-main symbol that is not reachable by the program, but and the program exits quickly.
    • Check: the launch should complete and the program should run and terminate normally.
  • Remote Launch
    • Start a gdbserver session with the binary of the eclipse C++ project
    • Use the DSF Remote launch to connect to that gdbserver
    • Verify that the debugging session is the same as a local debugging session

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)

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 (DsfThreads)
    • Check: Breakpoint is created and enabled
    • Run to breakpoint
    • Check: There are 3 threads (1, 2 and 3) in the Debug View
  • Test 1: Filter out a thread
    • Set filter for threads 1, 2
    • Check: The original breakpoint is removed
    • Check: 2 identical breakpoints are installed, one for each thread selected
  • Test 2: Filtered thread substitution
    • Change filter for threads 1, 3
    • Check: The breakpoint for thread 2 is removed
    • Check: 2 identical breakpoints are installed, one for each thread selected
  • Test 3: Remove a filtered thread
    • Change filter for thread 2 only
    • Check: The breakpoints for threads 1, 3 are removed
    • Check: A breakpoint is installed for thread 2
  • Test 4: Add a filtered thread
    • Change filter for thread 2, 3
    • Check: 2 identical breakpoints are installed, one for each thread selected
  • Test 5: Remove thread filters
    • Remove filter
    • Check: The breakpoints for threads 2, 3 are removed
    • Check: A new breakpoint is set with no thread filter
  • Test 6: Initial state propagation
    • Add a valid condition and ignore count to the breakpoint
    • Check: The breakpoint is updated
    • Add filter for threads 1, 2
    • Check: The original breakpoint is removed
    • Check: 2 new breakpoints are set with the correct condition, ignore count, one for each thread selected
  • Test 7: Invalid condition propagation
    • Change to an invalid condition
    • Check: Updates failed
    • Check: Breakpoints aren't changed (previous valid condition is kept)
  • Test 8: Valid condition propagation
    • Add a valid condition
    • Check: Condition is properly set for both breakpoints
  • Test 9: Condition/Ignore count removal propagation
    • Remove condition and ignore count
    • Check: Condition and ignore count are removed from both breakpoints
  • Test 10: State persistence
    • Add a valid condition, ignore count
    • Check: Condition/Ignore count are properly set for both breakpoints
    • Remove thread filter
    • Check: The breakpoints for threads 1, 2 are removed
    • Check: A new breakpoint is set with the correct condition, ignore count and no thread filter
  • Test 11: Simultaneous update of state and thread filter
    • Add filter for threads 1, 2, a valid condition and an ignore count
    • Check: The original breakpoint is removed
    • Check: 2 new breakpoints are set with proper ignore count, condition
    • Remove thread filter
    • Check: The breakpoints for threads 1, 2 are removed
    • Check: A new breakpoint is set with the correct condition, ignore count and no thread filter
  • Test 12: Addition of thread filter, invalid condition and ignore count
    • Add filter for threads 1, 2, invalid condition, ignore count
    • Check: The original breakpoint is removed
    • Check: 2 new breakpoints are set with proper ignore count and old (valid) condition
    • Remove thread filter
    • Check: The breakpoints for threads 1, 2 are removed
    • Check: A new breakpoint is set with the correct condition, ignore count and no thread filter
  • Test 13: Enable, disable breakpoints
    • Disable the breakpoint
    • Check: The breakpoint is disabled
    • Add filter for threads 1, 2
    • Check: The original breakpoint is removed
    • Check: 2 new disabled breakpoints are set with proper ignore count, condition
    • Enable the breakpoint
    • Check: Both back-end breakpoints are enabled
    • Remove thread filter
    • Check: The breakpoints for threads 1, 2 are removed
    • Check: A new (enabled) breakpoint is set with the correct condition, ignore count and no thread filter

Traditional Memory Rendering

IP-XACT Editor

More tests to be added

The following tests are intended to be run sequentially, and later tests depend on things set up in earlier tests.

  • Test 1 - GUI additions
    • Launch Eclipse with IP-XACT editor installed, and an empty workspace.
    • Open or select the Resource perspective.
    • Select View/Open perspective/Other..
    • Check: that the IP-XACT perspective is in the list shown in the dialog box
    • Press cancel
    • Select File/New/Other...
    • Check: that the dialog box contains an entry for IP-XACT, and when this is expanded it contains an entry for IP-XACT file
    • Press cancel
    • Select Window/Preferences...
    • Check: that the left hand side of the dialog box contains an entry for IP-XACT
    • Click on this entry
    • Check: that the IP-XACT preferences window appears and contains two modifiable fields: 'Default Vendor Name' and 'Default Library Name'
    • Expand the IP-XACT menu item in the left subwindow.
    • Check: that it has a sub-entry for 'Document Checker'
    • Click on 'Document Checker' in the left subwindow.
    • Check: that the Document Checker preferences window appears and contains:
      • A 'File Paths Variables' table, with two columns; 'Variable' and 'Value'
      • New, Remove, and Edit buttons associated with this table.
      • A 'Treat System Variables as File Path Variables' check box associated with this table
      • A 'File Paths Roots' table
      • New, Remove, Up, and Down buttons associated with this table.
    • Press cancel


  • Test 2 - IP-XACT perspective
    • Open the IP-XACT perspective
    • Reset the perspective (Window/Reset Perspective)
    • Check: The perspective contains the views shown in the attached image, arranged this way (possibly scaled for Eclipse window size etc.) Perspective.gif
    • Check: The IP-XACT icon on the IP-XACT views matches that shown in the image.
    • Create a new project with New/Project.../General/Project
    • Name the project 'Test'
    • In the navigator window right click on the test project and select 'New'
    • Check: 'IP-XACT file...' appears in the submenu


  • Test 3 - Creating IP-XACT files.
    • Right click on 'Test' in the Navigator window
    • Select New/IP-XACT file...'
    • Check: A wizard starts with title 'Create IP-XACT file'
    • Check: The first page of the wizard is file creation dialog with title 'IP-XACT file name', default folder 'Test' and default name 'NewFile.spirit'
    • Click 'Next'
    • Check: The second page of the wizard has title Select IP-XACT schema standard and a pull down giving the option of 'IP-XACT Standard V1.4' or 'IP-XACT Standard V1.2'
    • Select 'IP-XACT Standard V1.4' and click 'Next'
      • Note: there may be a slight delay before the next page appears.
    • Check: The third page of the wizard appears as shown below:

File:IP-XACTFileWizard3.gif

    • Check: The pull-down menu contains the items:
      • abstractionDefinition
      • abstractor
      • busDefinition
      • component
      • design
      • designConfiguration
      • generatorChain
    • Select 'abstractionDefinition' on the pull-down menu, and leave everything else unchanged. Click Next
    • Check: The fourth page of the wizard appears title 'Set VLNV' and four settable fields:
      • Vendor - initialized to <username>
      • Library - initialized to <username>lib
      • Name - initialized to NewFile
      • Version - initialized to 1.0
    • Change the Vendor to 'example.org', and the Library to 'Test'
    • Click Finish
    • Check:
      • NewFile.spirit appears under Test in the Navigator window, with an IP-XACT icon
      • The IP-XACT editor (with an IP-XACT icon) opens for NewFile.spirit.
      • An outline of NewFile.spirit appears in the outline window
      • A new entry appears for example.org in the IP-XACT library window
        • This does not currently work, see defect 225761. To work round this click on "Refresh Library" in the library window's context menu.
    • Select the Source tab at the bottom of the editor (if not already selected).
    • Check: The following XML should be visible in the editor.
<?xml version="1.0" encoding="UTF-8"?>
<spirit:abstractionDefinition xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1.4 http://www.spiritconsortium.org/XMLSchema/SPIRIT/1.4/index.xsd ">
  <spirit:vendor>example.org</spirit:vendor>
  <spirit:library>Test</spirit:library>
  <spirit:name>NewFile</spirit:name>
  <spirit:version>1.0</spirit:version>
  <spirit:busType spirit:library="Name" spirit:name="NMTOKEN" spirit:vendor="Name" spirit:version="NMTOKEN"/>
  <spirit:ports>
    <spirit:port>
      <spirit:logicalName>Name</spirit:logicalName>
      <spirit:wire/>
    </spirit:port>
  </spirit:ports>
</spirit:abstractionDefinition>


  • Test 4 - Text Editing features
    • Note: This is only a basic sanity check for these features, since the IP-XACT editor is reusing the existing XML editor, and these features should be fully tested by the developers of the XML editor (or of the text editor from which it is derived).
    • In the Test project make a copy of NewFile.spirit, called 'Copy of NewFile.spirit'
    • Double click on 'Copy of NewFile.spirit' to open the IP-XACT editor.
    • Select the source tab in the editor (if not already selected)
    • Check: Type some text into the editor and check that it appears in the window.
    • Check: that you can copy and paste the text correctly using either menu options or keyboard shortcuts.
    • Check: that searches (ctrl/F) work correctly, with and without replacement.
    • Save the file.
    • Close the editor.
    • Reopen the editor.
    • Check: Your changes have been preserved.
    • Delete 'Copy of NewFile.spirit'


  • Test 5 - XML Editing features
    • Note: This is only a basic sanity check for these features, since the IP-XACT editor is reusing the existing XML editor, and these features should be fully tested by the developers of the XML editor.
    • Copy NewFile.spirit to 'Copy of NewFile.spirit'
    • Double click on 'Copy of NewFile.spirit' to open the IP-XACT editor.
    • Select the Design tab in the editor
    • Right click on "abstractionDefinition"
    • Open the Add Child sub-menu
    • Check: This menu should contain:
      • description
      • extends
      • vendorExtensions
      • Comment
      • Add Processing Instruction
    • Select 'description'
    • Check: a new 'spirit:description' entry appears as the last line of the table
    • Select the second (value) field of this table entry and type 'A description', replacing the existing text.
    • Expand the 'spirit:ports' table entry
    • Expand the 'spirit:port' table entry
    • Right click on 'spirit:wire'
    • Check: The menu that appears should contain 'Replace with'
    • Select 'Add child'
    • Select 'onMaster'
    • Right click on 'spirit:onMaster'
    • Select 'Add child' and 'direction'
    • Click on the right hand value field of the new 'spirit:direction' row
    • [[Check:] A pull down menu appears giving the possible value 'in','out', and 'inout'
    • Select 'in'.
    • Select the 'Source' tab
    • Reformat the source using Ctrl/Shift/F
    • Check: The editor window should now contain the following XML.
      • Note: The format may vary, only the content is important.
<?xml version="1.0" encoding="UTF-8"?>
<spirit:abstractionDefinition
	xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1.4"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1.4 http://www.spiritconsortium.org/XMLSchema/SPIRIT/1.4/index.xsd ">
	<spirit:vendor>example.org</spirit:vendor>
	<spirit:library>Test</spirit:library>
	<spirit:name>NewFile</spirit:name>
	<spirit:version>1.0</spirit:version>
	<spirit:busType spirit:library="Name" spirit:name="NMTOKEN"
		spirit:vendor="Name" spirit:version="NMTOKEN" />
	<spirit:ports>
		<spirit:port>
			<spirit:logicalName>Name</spirit:logicalName>
			<spirit:wire>
				<spirit:onMaster>
					<spirit:direction>in</spirit:direction>
				</spirit:onMaster>
			</spirit:wire>
		</spirit:port>
	</spirit:ports>
	<spirit:description>A description</spirit:description>
</spirit:abstractionDefinition>