Design: 09.01.10.01/P01

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 1: Error 2000 handled by user

CHARACTERISTICS: ynnn

OPERATOR SCRIPT:
This is a passive test, but take care to invoke it so as to link
in the standard PVT user-defined error handler.  Since this is
the mode in which the non-error-handling tests are executed, this
program should be invoked in the normal way.

DESIGN:
Throughout this program, every time an error is signalled (as noted
by the tag "signals error"), the user-defined error handler saves
the error code, function identifier, and error file identifier in
an error table.

*** *** ***  Generate errors; test absence of side effects  *** *** ***

<open workstation>
<open structure> 101
<redraw all structures> with control flag = 2: signals error
<update workstation> with regenerated flag = -1: signals error
<set display update state> with deferral mode = 5: signals error
<set display update state> with modification mode = 3: signals error
<set text path> with text path = 4: signals error
<set annotation text alignment> with annotation text alignment horizontal=4:
    signals error
<set annotation text alignment> with annotation text alignment vertical=6:
    signals error
<set interior style> with interior style = 5: signals error
<set edge flag> with edge flag = 2: signals error
<set individual asf> with aspect identifier = 18: signals error
<set individual asf> with aspect source flag value = 2: signals error

<set local transformation> with composition type = 3: signals error
TEST: #SR 1
      "If <set local transformation> signals an error because
       enumeration type is out of range, it should not cause any other
       effect."
pass/fail depending on (element pointer = 0)

<set edge representation> bundle #1 with edge flag = POFF
<set edge representation> bundle #1 with edge flag = 2: signals error
TEST: #SR 1
      "If <set edge representation> signals an error because
       enumeration type is out of range, it should not cause any other
       effect."
pass/fail depending on (PHIGS state = open and
                        wkst state = open  and
                        edge bundle #1 unchanged)

<set view representation> with x-y clipping indicator = 2: signals error
<set view transformation input priority> with relative priority = 2:
    signals error
<set edit mode> with edit mode = 2: signals error
<delete structure network> with reference handling flag = 2: signals error
<set conflict resolution> with archival conflict resolution = 3: signale error
<set conflict resolution> with retrieval conflict resulution = 3:
    signals error
<retrieve paths to ancestors> with path order = 2: signals error
<set error handling mode> with error handling mode = 2: signals error

*** *** ***  Results of user-defined error handling  *** *** ***

TEST: #SR 1
      "If <redraw all structures> is called and enumeration type is
       out of range, it should return error code 2000, function
       identifier 004, and the current error file identifier to the
       user defined error handler."
pass/fail depending on (next entry in error table = expected values)

TEST: #SR 1
      "If <update workstation> is called and enumeration type is out
       of range, it should return error code 2000, function identifier
       005, and the current error file identifier to the user defined
       error handler."
pass/fail depending on (next entry in error table = expected values)

TEST: #SR 1
      "If <set display update state> is called and enumeration type is
       out of range, it should return error code 2000, function
       identifier 006, and the current error file identifier to the
       user defined error handler."
pass/fail depending on (next entry in error table = expected values)

TEST: #SR 1
      "If <set display update state> is called and enumeration type is
       out of range, it should return error code 2000, function
       identifier 006, and the current error file identifier to the
       user defined error handler."
pass/fail depending on (next entry in error table = expected values)

TEST: #SR 1
      "If <set text path> is called and enumeration type is out of
       range, it should return error code 2000, function identifier
       042, and the current error file identifier to the user defined
       error handler."
pass/fail depending on (next entry in error table = expected values)

TEST: #SR 1
      "If <set annotation text alignment> is called and enumeration
       type is out of range, it should return error code 2000,
       function identifier 047, and the current error file identifier
       to the user defined error handler."
pass/fail depending on (next entry in error table = expected values)

TEST: #SR 1
      "If <set annotation text alignment> is called and enumeration
       type is out of range, it should return error code 2000,
       function identifier 047, and the current error file identifier
       to the user defined error handler."
pass/fail depending on (next entry in error table = expected values)

TEST: #SR 1
      "If <set interior style> is called and enumeration type is out
       of range, it should return error code 2000, function identifier
       049, and the current error file identifier to the user defined
       error handler."
pass/fail depending on (next entry in error table = expected values)

TEST: #SR 1
      "If <set edge flag> is called and enumeration type is out of
       range, it should return error code 2000, function identifier
       052, and the current error file identifier to the user defined
       error handler."
pass/fail depending on (next entry in error table = expected values)

TEST: #SR 1
      "If <set individual asf> is called and enumeration type is out
       of range, it should return error code 2000, function identifier
       061, and the current error file identifier to the user defined
       error handler."
pass/fail depending on (next entry in error table = expected values)

TEST: #SR 1
      "If <set individual asf> is called and enumeration type is out
       of range, it should return error code 2000, function identifier
       061, and the current error file identifier to the user defined
       error handler."
pass/fail depending on (next entry in error table = expected values)

TEST: #SR 1
      "If <set local transformation> is called and enumeration type is
       out of range, it should return error code 2000, function
       identifier 075, and the current error file identifier to the
       user defined error handler."
pass/fail depending on (next entry in error table = expected values)

TEST: #SR 1
      "If <set edge representation> is called and enumeration type is
       out of range, it should return error code 2000, function
       identifier 066, and the current error file identifier to the
       user defined error handler."
pass/fail depending on (next entry in error table = expected values)

TEST: #SR 1
      "If <set view representation> is called and enumeration type is
       out of range, it should return error code 2000, function
       identifier 084, and the current error file identifier to the
       user defined error handler."
pass/fail depending on (next entry in error table = expected values)

TEST: #SR 1
      "If <set view transformation input priority> is called and
       enumeration type is out of range, it should return error code
       2000, function identifier 085, and the current error file
       identifier to the user defined error handler."
pass/fail depending on (next entry in error table = expected values)

TEST: #SR 1
      "If <set edit mode> is called and enumeration type is out of
       range, it should return error code 2000, function identifier
       096, and the current error file identifier to the user defined
       error handler."
pass/fail depending on (next entry in error table = expected values)

TEST: #SR 1
      "If <delete structure network> is called and enumeration type is
       out of range, it should return error code 2000, function
       identifier 106, and the current error file identifier to the
       user defined error handler."
pass/fail depending on (next entry in error table = expected values)

TEST: #SR 1
      "If <set conflict resolution> is called and enumeration type is
       out of range, it should return error code 2000, function
       identifier 119, and the current error file identifier to the
       user defined error handler."
pass/fail depending on (next entry in error table = expected values)

TEST: #SR 1
      "If <set conflict resolution> is called and enumeration type is
       out of range, it should return error code 2000, function
       identifier 119, and the current error file identifier to the
       user defined error handler."
pass/fail depending on (next entry in error table = expected values)

TEST: #SR 1
      "If <retrieve paths to ancestors> is called and enumeration type
       is out of range, it should return error code 2000, function
       identifier 124, and the current error file identifier to the
       user defined error handler."
pass/fail depending on (next entry in error table = expected values)

TEST: #SR 1
      "If <set error handling mode> is called and enumeration type is
       out of range, it should return error code 2000, function
       identifier 179, and the current error file identifier to the
       user defined error handler."
pass/fail depending on (next entry in error table = expected values)

END PROGRAM 1