Design: 02.01.02.02/P12
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 12: Deletion of a structure network with the reference
flag set to keep and references are made to the
open non-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
|2 |1
| |
| |
| 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 6 7 8
"When the reference handling flag is set to keep and the open
non-specified structure is referenced outside the structure network
the following changes should occur to the CSS:
The specified and all closed non-specified structures all of
whose maximal ancestor paths contain the specified structure
are removed. All non-specified opened or closed structures
one of whose maximal ancestor path does not contain the
specified structure remain AS IS."
specf = 100
nospec = 108
reffg = KEEP
<open structure> nospec
<post structure> specf
<post structure> nospec
<delete structure network> using specf, reffg
pass/fail depending on (CSS contents =
120 130 140
| /| |
| / | 1|
1| /1 |2 |
| / | |
|/ | 142
106 107
| / /\
| / / \
1| 1/ /2 \3
| / / \
|/ / 113
108
|
|1
|
|
111
/ |
/ |
1/ 2|
/ |
114 115 )
TEST: #SR 6
"<Delete structure network> with the reference flag set to keep and
an open non-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
nospec = strref) then
pass
<close structure>
else
fail
endif
TEST: #SR 10
"<Delete structure network> should cause the open posted non-specified
structure referenced outside the structure network to remain posted
and the closed posted specified to become unposted from the workstation
when the reference handling flag is set to keep."
Use inquire posted structures to determine:
pstnum = number of posted structuresi
strid = Nth identifier of the posted structure
<inquire posted structures> pstnum
pass/fail depending on (pstnum = 1 and strid = nospec)
END PROGRAM 12