[comp.lang.ada] Testing hidden subpgms and state data

howell@COMMUNITY-CHEST.MITRE.ORG (05/04/88)

It's me again...  Different question.

How do you test (unit test, CSC, etc) subprograms that are not visible in 
a package spec, and the "state" that they may affect (e.g., variables
declared in the package body)?  The two approaches I've seen most often are

    a) Put test code in the sequence_of_statements part of the package
	body so that the tests run at package body elaboration time.

    b) Add one or more "hooks" into the package spec in order to allow
	test code to access the hidden subprograms.

What other alternatives have you seen?  What are the strengths & weakness
of the various approaches?   Any comments are appreciated,
 
     Chuck Howell
     The MITRE Corporation, Mail Stop Z645
     7525 Colshire Drive, McLean, VA 22102
     NET:  howell@mitre.arpa or 
           howell%community-chest.mitre.org@gateway.mitre.org

crm@duke.cs.duke.edu (Charlie Martin) (05/05/88)

One approach to testing that sort of hidden code I've used is to use a
source-level debugger to force a change in state that then exercises
the piece of code in question.

This was sort of a dreadful hack, but enabled us to test things that
couldn't readily be simulated in normal operation, e.g. error
condition handling during a power fail.

(Example: you have a power fail interrupt, the spec says to do
such-and-such on the power fail.  You *could* test it for real by
installing it, enabling that interrupt, then pulling the plug.  During
unit test, this tends to enrage the other 22 people using the machine.)
-- 
Charlie Martin (crm@cs.duke.edu,mcnc!duke!crm)