This directory contains scripts for testing based on the xlab program by
Marc Vertes.  Xlab is an X11 event recorder/player which can be used to
first record and then replay a series of events in another application.

To use these scripts, first get the latest version of xlab from:

   http://www.alphalink.com.au/~mvertes/download/xlab-980917.tar.gz 

Untar the file and apply the patch file xlab.patch. The patch adds a "-e"
flag to xlab to tell it to automatically exit when the client does, and a
"-T" tolerance flag so that if we're off by a few pixels we'll still be ok.

Configure, make, and install xlab.  NOTE: Xlab currently doesn't work with
the MIT-MAGIC-COOKIE authentication scheme. If you're trying to get xlab to
work on a RedHat 5.x or other system which uses this authentication,
you'll have to disable the cookies as follows:

     1) Set "DisplayManager.*.authorize: false" in the xdm-config file,
	(/etc/X11/xdm/xdm-config on RH 5.1, but locations can vary).

     2) Kill and restart xdm.  Removing your ~/.Xauthority file may be
	necessary as well.

Now you're ready to try out the tests.  These tests have been integrated
into the dejagnu test framework so that we can have a set of "standard"
recordings that we can play back and see if we broke anything.  For now,
however, I'll just demonstrate how to manually record a Motif session and
compare it to a LessTif session.

Recording a Motif session:

  1)  cd to your favorite test directory, e.g. Xm/arrowbg/
  2)  make test1.motif 
  3)  ../Xlab/RecordSession test1 motif
  4) Play with the test program a little.  Try to exercise all of its
     behavior.  When you're done kill the test program with the window
     manager, or via an exit button.  Don't press ^C in the shell you
     invoked the program from, because this will prevent the log files
     from being written properly.

Comparing the LessTif version:

  1)  make test1
  2)  ../Xlab/PlaySession -T 2 test1
  3)  Watch the session you recorded play itself back, and be illuminated
      by the results.
  4)  You can clean up after testing by running "make clean".

The files generated by the scripts are:

Recording: (.r extensions)
	./xlab/testXX.xcalls --> the recorded xcalls from xlab (also used
				 for playback)

	./xlab/testXX.rxlog ---> xlab's text output log from recording;
				 you can probably ignore this unless
				 there's an error.
	./xlab/testXX.rlog  -->  the text output of the program
	

Playback: (.p extensions)
	
	./xlab/testXX.pxlog ---> xlab's text output log from playback.
				 This should also sent to stdout during
				 playback, but it's not at the moment.

	./xlab/testXX.plog  -->  the text output of the program

