Blame tests/uil/README

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