Design: 05.02/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: Setting and inquiring display update state

CHARACTERISTICS: ynnn

OPERATOR SCRIPT: passive test.

DESIGN:

<open workstation>
TEST: #SR 1 2 5
      "<Inquire default display update state> should report a
       valid default deferral and modification mode."
<inquire default display update state> to determine
   ddef = default deferral mode
   dmod = default modification mode
pass/fail depending on (successful inquire and
                        ddef is valid      and
                        dmod is valid)

opstat = "opening"
open_test:

TEST: #SR 4 8
      "<Inquire display update state> should report the current
       deferral and modification mode to be the same as the
       default after " + opstat + " the workstation, but before
       they are explicitly set."
<inquire display update state> to determine
   adef  = actual deferral mode
   amod  = actual modification mode
   dsurf = display surface
   svr   = state of visual representation
pass/fail depending on (successful inquire and
                        adef = ddef        and
                        amod = dmod)

TEST: #SR 4 9 13
      "Immediately after " + opstat + " the workstation, <inquire
       display update state> should report the display surface as
       EMPTY and the state of visual representation as CORRECT."
pass/fail depending on (successful inquire and
                        dsurf = EMPTY      and
                        svr   = CORRECT)

if (opstat = "opening") then
   if (ddef = ASAP) then
      dm = ASTI
   else
      dm = ASAP
   endif
   if (dmod = UQUM) then
      mm = UWOR
   else
      mm = UQUM
   endif
   <set display update state> dm,mm
   post visible structure to workstation
   <close workstation>
   <open workstation>
   opstat = "re-opening"
   goto open_test
endif

TEST: #SR 1 2 3 4
      "<Set display update state> should be able to set any
       valid deferral and modification mode."

for dm = ASAP, ASTI, BNIL, BNIG, WAIT and
for mm = NIVE, UWOR, UQUM
   <set display update state> dm,mm
   <inquire display update state> to determine
      rdm = reported deferral mode
      rmm = reported modification mode
   if (inquire reports error or
       rdm not= dm           or
       rmm not= mm ) then
      fail
      goto done
   endif
next mm
next dm
pass

done:
<close workstation>

END PROGRAM 1