Module #02.01.03.01 : Change structure identifier

All PVT documentation can be found under PHIGS Validation Tests - Overview. You may also return to the hierarchical table of topics covered by the PVT. For an explanation of the format of the individual module documentation, please see section 2.5 of the User's Guide.


DESCRIPTION:
This module tests the effects of changing the identifier of a
structure contained in the CSS.  Changes which occur to the original
structure, the resulting structure and the state of the CSS are
examined.

The following truth table applies when the original and resulting
identifier are different.  The information regarding changes to the
CSS network may be derived from the "Org Cont", "Rst Cont" and
NON-EXIST of the resulting state of the truth table.

          INITIAL STATE                 | |        RESULTING STATE
----------------------------------------| |-----------------------------------
TC# |Org  | Org |Org  : Res  | Res |Res | |Org  | Org |Org  : Res  | Res |Res
    |Stat | Ref |Post : Stat | Ref |Post| |Stat | Cont|Post : Stat | Cont|Post
----------------------------------------| |-----------------------------------
1   | NON-EXIST       : NON-EXIST       | |  NON-EXIST      : clos | emp | npt
2   | NON-EXIST       : clos | nrf | npt| |  NON-EXIST      : clos | emp | npt
3   | NON-EXIST       : clos | nrf | pst| |  NON-EXIST      : clos | emp | pst
4   | NON-EXIST       : clos | ref | npt| |  NON-EXIST      : clos | emp | npt
5   | NON-EXIST       : clos | ref | pst| |  NON-EXIST      : clos | emp | pst
6   | NON-EXIST       : open | nrf | npt| |  NON-EXIST      : open | emp | npt
7   | NON-EXIST       : open | nrf | pst| |  NON-EXIST      : open | emp | pst
8   | NON-EXIST       : open | ref | npt| |  NON-EXIST      : open | emp | npt
9   | NON-EXIST       : open | ref | pst| |  NON-EXIST      : open | emp | pst
                                        | |
10  |clos | nrf | npt :  NON-EXIST      | |  NON-EXIST      : clos | org | npt
11  |clos | nrf | npt : clos | nrf | npt| |  NON-EXIST      : clos | org | npt
12  |clos | nrf | npt : clos | nrf | pst| |  NON-EXIST      : clos | org | pst
13  |clos | nrf | npt : clos | ref | npt| |  NON-EXIST      : clos | org | npt
14  |clos | nrf | npt : clos | ref | pst| |  NON-EXIST      : clos | org | pst
15  |clos | nrf | npt : open | nrf | npt| |  NON-EXIST      : open | org | npt
16  |clos | nrf | npt : open | nrf | pst| |  NON-EXIST      : open | org | pst
17  |clos | nrf | npt : open | ref | npt| |  NON-EXIST      : open | org | npt
18  |clos | nrf | npt : open | ref | pst| |  NON-EXIST      : open | org | pst
                                        | |
19  |clos | nrf | pst :  NON-EXIST      | |clos | emp | pst : clos | org | npt
20  |clos | nrf | pst : clos | nrf | npt| |clos | emp | pst : clos | org | npt
21  |clos | nrf | pst : clos | nrf | pst| |clos | emp | pst : clos | org | pst
22  |clos | nrf | pst : clos | ref | npt| |clos | emp | pst : clos | org | npt
23  |clos | nrf | pst : clos | ref | pst| |clos | emp | pst : clos | org | pst
24  |clos | nrf | pst : open | nrf | npt| |clos | emp | pst : open | org | npt
25  |clos | nrf | pst : open | nrf | pst| |clos | emp | pst : open | org | pst
26  |clos | nrf | pst : open | ref | npt| |clos | emp | pst : open | org | npt
27  |clos | nrf | pst : open | ref | pst| |clos | emp | pst : open | org | pst
                                        | |
28  |clos | ref | npt :  NON-EXIST      | |clos | emp | npt : clos | org | npt
29  |clos | ref | npt : clos | nrf | npt| |clos | emp | npt : clos | org | npt
30  |clos | ref | npt : clos | nrf | pst| |clos | emp | npt : clos | org | pst
31  |clos | ref | npt : clos | ref | npt| |clos | emp | npt : clos | org | npt
32  |clos | ref | npt : clos | ref | pst| |clos | emp | npt : clos | org | pst
33  |clos | ref | npt : open | nrf | npt| |clos | emp | npt : open | org | npt
34  |clos | ref | npt : open | nrf | pst| |clos | emp | npt : open | org | pst
35  |clos | ref | npt : open | ref | npt| |clos | emp | npt : open | org | npt
36  |clos | ref | npt : open | ref | pst| |clos | emp | npt : open | org | pst
                                        | |
37  |clos | ref | pst :  NON-EXIST      | |clos | emp | pst : clos | org | npt
38  |clos | ref | pst : clos | nrf | npt| |clos | emp | pst : clos | org | npt
39  |clos | ref | pst : clos | nrf | pst| |clos | emp | pst : clos | org | pst
40  |clos | ref | pst : clos | ref | npt| |clos | emp | pst : clos | org | npt
41  |clos | ref | pst : clos | ref | pst| |clos | emp | pst : clos | org | pst
42  |clos | ref | pst : open | nrf | npt| |clos | emp | pst : open | org | npt
43  |clos | ref | pst : open | nrf | pst| |clos | emp | pst : open | org | pst
44  |clos | ref | pst : open | ref | npt| |clos | emp | pst : open | org | npt
45  |clos | ref | pst : open | ref | pst| |clos | emp | pst : open | org | pst
                                        | |
46  |open | nrf | npt :  NON-EXIST      | |open | emp | npt : clos | org | npt
47  |open | nrf | npt : clos | nrf | npt| |open | emp | npt : clos | org | npt
48  |open | nrf | npt : clos | nrf | pst| |open | emp | npt : clos | org | pst
49  |open | nrf | npt : clos | ref | npt| |open | emp | npt : clos | org | npt
50  |open | nrf | npt : clos | ref | pst| |open | emp | npt : clos | org | pst
                                        | |
51  |open | nrf | pst :  NON-EXIST      | |open | emp | pst : clos | org | npt
52  |open | nrf | pst : clos | nrf | npt| |open | emp | pst : clos | org | npt
53  |open | nrf | pst : clos | nrf | pst| |open | emp | pst : clos | org | pst
54  |open | nrf | pst : clos | ref | npt| |open | emp | pst : clos | org | npt
55  |open | nrf | pst : clos | ref | pst| |open | emp | pst : clos | org | pst
                                        | |
56  |open | ref | npt :  NON-EXIST      | |open | emp | npt : clos | org | npt
57  |open | ref | npt : clos | nrf | npt| |open | emp | npt : clos | org | npt
58  |open | ref | npt : clos | nrf | pst| |open | emp | npt : clos | org | pst
59  |open | ref | npt : clos | ref | npt| |open | emp | npt : clos | org | npt
60  |open | ref | npt : clos | ref | pst| |open | emp | npt : clos | org | pst
                                        | |
61  |open | ref | pst :  NON-EXIST      | |open | emp | pst : clos | org | npt
62  |open | ref | pst : clos | nrf | npt| |open | emp | pst : clos | org | npt
63  |open | ref | pst : clos | nrf | pst| |open | emp | pst : clos | org | pst
64  |open | ref | pst : clos | ref | npt| |open | emp | pst : clos | org | npt
65  |open | ref | pst : clos | ref | pst| |open | emp | pst : clos | org | pst


Explanation of columns:

TC#              Test case number

INITIAL STATE    Indicates the state of the original and resulting
                 structure before the execution of the <change structure
                 identifier> function.

   NON-EXIST        The original or resulting structure does not
                    exist in the CSS at the time the <change structure
                    identifier> is executed.

   Org or Res Stat  open  The structure is open at the time the <change
                          structure identifier> function is executed.
                    clos  The structure is closed at the time the <change
                          structure identifier> function is executed.

   Org or Res Ref   ref   Another structure in the CSS contains an execute
                          structure element referring to the designated
                          structure at the time the <change structure
                          identifier> function is executed.

                    nrf   No other structure in the CSS contains an execute
                          structure element referring to the designated
                          structure at the time the <change structure
                          identifier> function is executed.

   Org or Res Post  pst   The structure is posted to some workstation
                          at the time the <change structure identifer>
                          function is executed.
                    npt   The structure is not posted to any workstation
                          at the time the <change structure identifier>
                          function is executed.


RESULTING STATE  Indicates the state of the original and resulting
                 structure after the execution of the <change structure
                 identifier> function.

   NON-EXIST        No structure exists with the original identifier
                    in the CSS after the <change structure identifier>
                    function is executed.

   Org Stat    open  The structure with the original structure
                     identifier is open after the <change structure
                     identifier> function is executed.
               clos  The structure with the original structure
                     identifier is closed after the <change structure
                     identifier> function is executed.

   Org Cont    emp   The structure with the original identifier is
                     empty after the <change structure identifier>
                     function is executed.

   Org Post    pst   The original structure identifier is posted to
                     the same workstation(s) after the <change structure
                     identifer> function is executed as it was before.
               npt   The original structure identifier is not posted to
                     any workstation after the <change structure
                     identifier> function is executed.

   --------------------------------------------------------------

   Res Stat    open  The structure with the resulting structure
                     identifier is open after the <change structure
                     identifier> function is executed.
               clos  The structure with the resulting structure
                     identifier is closed after the <change structure
                     identifier> function is executed.

   Res Cont    org   The contents, if any, of the resulting structure
                     are replaced by the contents of original structure
                     after the <change structure identifier> function
                     is executed.
               emp   The structure with the resulting structure
                     identifier is empty after the <change structure
                     identifer> function is executed.

   Res Post    pst   The resulting structure identifier is posted to
                     the same workstation(s) after the <change structure
                     identifier> function is executed as it was before.
               npt   The resulting structure identifier is not posted
                     to the any workstation after the <change structure
                     identifier> function is executed.

SEMANTIC REQUIREMENTS:


SR1. When the original and resulting structure identifiers differ, <change structure identifier> causes the transition from the initial state to the resulting state as described in the truth table.
#F 129
#D 7 7.1 7.2 7.3.4 1.3 4.2 5.7
#S 4.4.5/30/1
#T P01/1 P01/2 P01/3 P01/4 P01/5 P01/6 P01/7 P01/8 P01/9 P01/10 P01/11
#T P01/12 P01/13 P01/14 P01/15 P01/16 P01/17 P01/18 P01/19 P01/20
#T P01/21 P01/22 P01/23 P01/24 P01/25 P01/26 P01/27 P01/28 P01/29
#T P01/30 P01/31 P01/32 P01/33 P01/34 P01/35 P01/36 P01/37 P01/38
#T P01/39 P01/40 P01/41 P01/42 P01/43 P01/44 P01/45 P01/46 P01/47
#T P01/48 P01/49 P01/50 P01/51 P01/52 P01/53 P01/54 P01/55 P01/56
#T P01/57 P01/58 P01/59 P01/60 P01/61 P01/62 P01/63 P01/64 P01/65
#T P01/66 P01/67 P01/68 P01/69 P01/70 P01/71 P01/72 P01/73 P01/74
#T P01/75 P01/76 P01/77 P01/78 P01/79 P01/80 P01/81 P01/82 P01/83
#T P01/84 P01/85 P01/86 P01/87 P01/88 P01/89 P01/90 P01/91 P01/92
#T P01/93 P01/94 P01/95 P01/96 P01/97 P01/98 P01/99 P01/100 P01/101
#T P01/102 P01/103 P01/104 P01/105 P01/106 P01/107 P01/108 P01/109
#T P01/110 P01/111 P01/112 P01/113 P01/114 P01/115 P01/116 P01/117
#T P01/118 P01/119 P01/120 P01/121 P01/122 P01/123 P01/124 P01/125
#T P01/126 P01/127 P01/128 P01/129 P01/130
#X 05.03


SR2. <Change structure identifier> creates an empty structure when the original and resulting structure identifier are the same and the common structure does not exist.
#F 129
#D 7 7.1
#S 4.4.5/30/1
#T P02/1 P02/2

SR3. When the original and resulting structure identifier are the same and the common structure exists, then no action is performed by execution of <change structure identifier>.
#F 129
#D 7 7.1 7.2 1.3 4.2 5.7
#S 4.4.5/30/1
#T P02/3 P02/4 P02/5 P02/6 P02/7 P02/8 P02/9 P02/10 P02/11 P02/12
#T P02/13 P02/14 P02/15 P02/16 P02/17 P02/18

SR4. When the original and resulting identifier are the same and the existing common structure is open, then the element position of the structure remains as is after execution of <change structure identifier>.
#F 129
#D 4.3
#S
#T P03/1 P03/2

SR5. When the original and resulting structure identifiers differ and the original structure is open after execution of <change structure identifier>, then the element pointer is positioned at 0.
#F 129
#D 4.3
#S
#T P03/3

SR6. When the original and resulting structure identifiers differ and the resulting structure is open after execution of <change structure identifer>, then the element pointer is positioned at the last element (0 if the structure is empty).
#F 129
#D 4.3
#S
#T P03/4 P03/5 P03/6

LOCAL DICTIONARY:

  Functions ---
  129: pcstid  <change structure identifier>
 
  Data Structures ---
  1  ...  operating_state
  1.3  ...  structure_state
  4  ...  phigs_state_list
  4.2  ...  name_of_open_structure
  4.3  ...  element_pointer
  5  ...  workstation_state_list
  5.7  ...  list_of_posted_structures
  7  ...  structure_state_list
  7.1  ...  structure_identifier
  7.2  ...  list_of_workstations_to_which_posted
  7.3  ...  list_of_structure_elements
  7.3.4  ...  execute_structure
 
SEMANTIC CROSS-REFERENCES:
  02.01.01/SR05

LOCAL SUBROUTINES:  The programs in this module use special-purpose
subroutines:

1. TSTCID performs a test case for the <change structure
identifier> function.  Based on the input parameters, it sets up a
test message, executes the function, examines the result, and
issues pass or fail.

2. ELSTR creates a substring consisting of integer pairs to
represent the contents of a structure.  Within each pair, the
first value indicates the element type (execute structure or
label) and the second value indicates the element content.

3. TCSCID returns a substring used in the formulation of the test
message.  The substring indicates the precondition and expected
postcondition of a particular structure.  The structure can be
non-existent, opened or closed, referenced or not referenced,
posted or not posted, and empty or with the contents of original
structure.

4. ACTST returns the actual state of a structure.  The structure
can be non-existent, opened or closed, posted or not posted, and
empty or with the contents of original structure or some other
contents.


Calling structure:

                       TSTCID
                      /   |  \
                     /    |   \
                    /     |    \
                   /      |     \
                ELSTR  TCSCID  ACTST



PROGRAM 1: Changing a structure identifier

You may inspect either the design or code for this program.


PROGRAM 2: Changing a structure identifier when the original and resulting identifier are the same

You may inspect either the design or code for this program.


PROGRAM 3: Effects of <change structure identifier> on the element pointer

You may inspect either the design or code for this program.

End of documentation for 02.01.03.01