Design: 06.03/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: Update status of INPUT workstation transformation

CHARACTERISTICS: nnnn

OPERATOR SCRIPT: passive test.

DESIGN:

linwk = list of accessible workstations of category INPUT

if (linwk is empty) then
   message: no INPUT workstations to be tested
   goto done
endif

TEST: #SR 15 20
      "For all workstations of category INPUT, the workstation
       transformation update state should always be NOTPENDING
       and reported as such."

for each iwk in linwk
   <open workstation> iwk
   <Set display update state> to WAIT, NIVE to try to defer
      updates

   <inquire workstation transformation 3> to determine original
      current state:
      ocwin = 3D window
      ocvwp = 3D viewport

   alter workstation transformation:
   <set workstation window 3>   = nwwin = ocwin / 2
   <set workstation viewport 3> = nwvwp = ocvwp / 2

   <inquire workstation transformation 3> to determine new
      current state:
      wtupd = workstation transformation update state
      cuwin = current 3D window
      cuvwp = current 3D viewport
   <close workstation> iwk

   if (wtupd not= NOTPENDING) then
      fail
      message about wtupd
      goto done
   endif

   if ( cuwin = nwwin   and
        cuvwp = nwvwp  )   then
      OK so far
   else
      fail
      message about current values
      goto done
   endif

next iwk
pass

done:

END PROGRAM 4