/* $XConsortium: README /main/5 1996/07/15 14:36:34 drk $ */
6. User Interface Language Tests
This README describes the OSF/Motif User Interface Language
tests. It provides information about the individual tests,
and offers instructions for running and interpreting the
tests and test output.
Note
Throughout this README, we use the path ./tests/uil to
identify the top directory of the User Interface Language
tests. The ./ indicates the testing tree root and is not an
actual path designation. For example, if you installed the
Motif 1.1 release software at /source/Motif, then
./tests/uil translates to /source/Motif/tests/uil at your
site.
6.1 Overview and Directory Structure
The OSF/Motif User Interface Language test directory,
./tests/uil, consists of several files and subdirectories:
* The file Imakefile is used to build Makefile, which in it's turn
is used to build the tests.
* The Callbacks subdirectory contains the test of UIL
multiple callbacks, multC. This test is noninterac-
tive, and prints result messages to the standard out-
put. The script run_multC runs the test and redirects
the output to the file multC.out.
* The EnumVal subdirectory contains tests of Enumerated
Values within UIL. They are designed to be user
interactive, with on-line user instructions for each
part of the test. This test subdirectory contains the
following tests.
EnumVal1 EnumVal3 EnumVal5
EnumVal2 EnumVal4 EnumVal6
* The ForRef subdirectory contains a tests of forward
references within UIL. The test ForRef is not user
interactive, but the tests ForRef2, ForRef3 and ForRef4
are designed to be user interactive, with on-line user
instructions for each part of the test. The results of
the ForRef test is placed in the file for_ref.out.
* The NL subdirectory contains the test of the UIL
national language extensions, NL. This test is nonin-
teractive, and prints result to the standard output.
* The Syntax subdirectory contains tests of general syn-
tax within UIL. They are designed to be user interac-
tive, with on-line user instructions for each part of
the test. This test subdirectory contains the follow-
ing tests.
Case GSyntax2 Names
GSyntax1 Minimal NamesU
* The callUil subdirectory contains a test of the call-
able Uil compiler portion of UIL, Uil. It is designed
to be user interactive, with on-line user instructions
for each part of the test. The test invokes the call-
able Uil compiler on three different uil files; one
with errors, one with warnings, and one that compiles
successfully. The results of the compiles are
presented in the MessageBox used for the instructions.
* The dataStructs subdirectory contains tests of UIL data
structures. These tests are noninteractive, and each
test prints result messages to the standard output.
The script run_all runs all the tests and redirects the
result messages to the file dataStruct.out.
This test subdirectory contains the following tests.
CompoundS Pixmap Simple
Font Tables
* The matrix subdirectory contains a test designed to
test the Widget Meta Language (WML) within UIL Test.
The testing scheme is to add the facility for more
widgets to the currently built UIL and then test all
possible combinations of Motif Resource Manager (MRM)
interfaces and UID files to make sure that the interac-
tions between MRM and UIL are consistent and compati-
ble. For these tests we use newly created widgets: The
Browse widget using the Motif toolkit and the ALabel
widget using the MIT Athena Toolkit. When these new
widgets are added to WML, a new UIL compiler is built
for testing.
* The validator subdirectory contains a test of the UIL
error and warning mechanism. The testing scheme is to
compile a UIL file, validator.uil, with the -v flag to
generate a listing file that also lists errors and
warnings. The listing file is then compared against an
preexisting listing file to show differences.
* The widgets subdirectory contains tests for displaying
all the Motif widgets created with UIL. It it designed
to be user interactive, with on-line user instructions
accompanying each test widget. This test subdirectory
contains the following tests.
BBoard labelGad scaleHorz
BBoardDia listBs scaleVert
arrowBGad listEs scrollLis2
arrowBtn listMs scrollList
cascBGad listSs scrollText
cascBtn menuBar scrollWin
command mesBox scrollbarH
drawArea mesDia scrollbarV
drawnBtn optionMenu selectBox
errorDia panedWin selectDia
form popupMenu textMl
formDia promptDia textSl
frame pulldown toggleBGad
fsBox pushBGad toggleBtn
fsDia pushBtn warningDia
infoDia radioBox workingDia
label rowCol
Each test subdirectory contains the following common files.
Each test subdirectory may not contain all of the different
files. Some test subdirectories may also contain additional
files. These are most commonly used as data for one or more
of the tests.
* The file Imakefile is used to build Makefile, which in it's turn
is used to build the tests.
* The README file, or variants, contains information
specific to that test directory's build and run pro-
cedure. The README file in a test subdirectory
describes any nonstandard build or run procedure.
There should be no information in the README files that
is not in this document.
* The file run_all or run is used to run all the Toolkit
tests in series. In some instances the run_all script
also initializes a test before running it.
* Files with the suffixes .c, .h, and .uil contain source
code for the tests.
* The file displayUid.c contains a MRM interface for
displaying UID files, reporting callbacks.
* The header file reasons.h contains an array of reasons
for reporting callbacks.
* Some directories, such as Widgets, contain .msg files
that contain the text of instructions for the test.
6.2 Compiling the Tests
All the tests, except validator, must be compiled before you
can run them.
* If you used the global build process after installing
the software, the tests should already be built. We do
not recommend building the tests with global build pro-
cess because of the size of the test suite. (This
assumes that you did not move the test suite files
prior to invoking the make commands.)
* If you did not include the test suite files in your
initial global build process, you can build the tests
now using the make all command from the ./tests/uil
directory.
* You can build just the tests in any one test subdirec-
tory, except the matrix test subdirectory, using the
make all command from the specific test subdirectory.
For example, to build the tests in the ForRef subdirec-
tory, enter the make all command from the
./tests/uil/ForRef test subdirectory.
You should not generally build tests by whole subdirectories
in the ./tests/uil test directorie, since there are many
dependencies among files and the testing mechanisms vary
widely among test subdirectories.
Two special compile notes are required here. First, in the
test subdirectory ./tests/uil/Callbacks, part of this test
involves specifying a reason more than once in the same
callback list. This is a valid operation, but will cause
seven informational messages while compiling the file
multC.uil. These messages are expected, and the file
multC.uid is still generated.
Second, in the test subdirectory ./tests/uil/matrix, the
build is accomplished by running the shell script
./tests/uil/matrix/Build instead of using the Makefile.
Also, in order for the MIT Athena Toolkit widget, which is
in the AA directory, to compile correctly, the MIT Athena
widget set, including libraries and header files, must be
installed on your machine. If the Athena widgets are not
installed, testing can only be performed using on the base
tree, and with the WML technology with a new Motif widget
added, which is in the directory MA.
6.3 Running the User Interface Language Tests
The tests in this section fall into two types.
Interactive These include a MessageBox with instruc-
tions for running and interpreting the
test. The instructions describe what you
should see on the screen. You should try
all the actions described in the instruc-
tions. The tests in the test subdirec-
tories EnumVal, ForRef, Syntax, CallUil,
matrix, and widgets are interactive tests.
Noninteractive These run without input from the user and
print their results out to the standard
output or to a file. The tests in the
test subdirectories Callbacks, NL, dataS-
tructs, and validator, and the test ForRef
in the ForRef subdirectory are noninterac-
tive tests.
You should generally run the uil section tests from the run
scripts provided. To have tests appear in the top left
corner of the root window the resource Mwm*clientAutoPlace
should be set to false in you .Xdefaults file.
The matrix tests should be run using the script
./tests/uil/matrix/Test
In the widgets test subdirectory, callbacks are handled by
printing to the name of the callback that has been trig-
gered, and the reason for what callback to the standard out-
put. To find out how to trigger a callback, refer to the
appropriate page in the OSF Motif Programmers Reference
Manual. A callback is active when it is defined as ON in
the message portion of the test.