The tests in this directory are intended primarily in checking the Icon program library for distribution and not for use by installers. They are included in the distribution, however, since they might be helpful if unexpected problems arise and they may give some insight into the library. There are three sections of tests: programs, procedures, and C functions. The first two are done by make Prog make Proc or by make All which does both. The program tests are in two parts. This is because some programs require command-line arguments or produce data other than to standard output. The first part, done by the shell script Prog1test, handles those programs that can be tested with a data file in standard input. The second part, done by the shell script Prog2test, handles the rest. These shell scripts work from .tlist files, which contain program names. In the case of Prog2test, the names correspond to shell scripts, which have tailored tests. The programs that test the procedure libraries include link directives to access the ucode for the libraries (in ../ilib). All of these tests work from standard input to standard output. The C functions are tested as part of the personalized interpreter test and are not done via the Makefile here. The shell script used is Functest. These tests are far from exhaustive -- they are only intended to verify that the programs are at least functional. The tests, like the others in the Icon Version 5.9 distribution, compare locally generated output in local/*.out with corresponding "standard" output in distr/*.out. The standard output was produced on a VAX-11/780 running 4.2bsd. The library includes programs, procedures, and functions that are machine- and system-dependent. Discrepancies between local and distr output should be examined to determine if they are due to such a dependency. The library also uses both the sets and experimental extensions in Version 5.9 (see TR 84-10). If these extensions are not included in the local installation, some of the tests will fail prematurely. There are two programs that probably will produce output locally that is different from the standard: farb and loadmap. The program farb produces output that depends on the time of day. The output of loadmap depends on the details of local software. Other than that, the results should be the same. For example, the tests run on a PDP-11/70 under Version 7 are identical to the standard ones, except for farb and loadmap.