Design: 02.01.02.02/P04

This is an abstract, language-independent design. Grim details may be found in the corresponding source code. You may return to the documentation for the module containing this program design, or to the entire hierarchical table of topics covered by the PVT.


PROGRAM 4: Deletion of a structure network with the reference
           flag set to delete and references are made to the
           open specified structure

CHARACTERISTICS: ynnn

OPERATOR SCRIPT: passive test

DESIGN:

Use <open structure> and <execute structure> to set up the CSS
as follows:

                   100
                  /  \
                 /    \
               1/      \2
               /        \
              /          \
          101              102     120   130             140
          | |             / | \     |    /|               |
         1| |2           /  |  \    |   / |              1|
          | |          1/  2|  3\  1|  /1 |2              |
          | |          /    |    \  | /   |               |
          103         /     |     \ |/    |              142
                   104     105     106   107
                   | |       |     |    / /\
                  1| |2     /|\    |   / /  \
                   | |    1/ | \3 1| 1/ /2   \3
                   109    /  |  \  | / /      \
                         /   |   \ |/ /       113
                       110   |    108
                             |     |
                             |     |1
                             |2    |
                             |     |
                             |    111
                             |   / |
                             | 1/  |
                             | /  2|
                             |/    |
                            114   115


The nodes of the graph (100 and above) represent structures, and the
labelled edges are references to invoke (lower) structures.  The
labels (1-3) represent the element position of the <execute structure>
function within the calling structure.

TEST: #SR 1 3 4
      "When the reference handling flag is set to delete and
       the open specified structure is referenced outside the
       structure network the following changes should occur
       to the CSS:
       All closed structures contained in a structure network
       are removed.
       The specified structure is OPEN and EMPTY."

specf = 106
reffg = DELETE
<open structure> specf
<post structure> specf
<delete structure network> using specf, reffg

pass/fail depending on (CSS contents =

                   100
                  /  \
                 /    \
               1/      \2
               /        \
              /          \
          101              102  106   120   130             140
          | |             / |    |     |     |               |
         1| |2           /  |   0|    0|     |              1|
          | |          1/  2|    |     |     |1              |
          | |          /    |                |               |
          103         /     |                |              142
                   104     105              107
                   | |      |                |
                  1| |2    1|                |1
                   | |      |                |
                   109      |                |
                           110              113     )

TEST: #SR 1
      "<Delete structure network> with the reference flag set
       to delete and an open specified structure which
       is referenced outside the structure network should
       cause that structure to exist in the CSS as an open
       structure."

use <inquire open structure> to determine
    stype = the structure status open or close
    strref = structure id

if (stype = OPEN and
    specf = strref) then
    pass
    <close structure>
else
    fail
endif

TEST: #SR 1
      "<Delete structure network> with the reference flag set to
       delete and an open specified structure which is referenced
       outside the structure network should cause that structure
       to exist in the CSS as an empty structure."

use <inquire structure status> on the specified structure to determine
    strsti = structure status identifier

pass/fail depending on (strsti = EMPTY)

TEST: #SR 10
      "<Delete structure network> should cause the open specified structure
       referenced outside the structure network to become unposted from
       the workstation when the reference handling flag is set to delete."

Use inquire posted structures to determine:
   pstnum = number of posted structures

<inquire posted structures> pstnum
pass/fail depending on (pstnum = 0)

END PROGRAM 4