This directory contains the scripts that execute the S4 regression tests.

Here are some simple instructions.


Requirements:

  - Usual set of gnu/unix tools (gawk/perl/cvs/mailx) must be in your path
  - scripts called scvs and ssvn in your path that points to the sourcecode
    repository.  A typical implementation of scvs would look like
    this:

  export CVS_RSH='/usr/dist/exe/ssh' 
  cvs -z3 -d:ext:lamere@cvs.cmusphinx.sourceforge.net:/cvsroot/cmusphinx $*

    Look at other examples of ssvn and scvs under sphinx4/scripts

    Since the regression tests access the repository, you will need to setup 
    your public keys properly so that no password is required to checkin or
    checkout. For more details, check
    http://sourceforge.net/docman/display_doc.php?docid=761&group_id=1

    For retrieving the code, svn does not require a public key.

 - To add or remove a test from the regression tests, edit the
   'runAllTests' script

 - To add or remove people from the email notification list edit the
   'mailReport' script.

 - whatsNew is a perl script used from the cgi-bin directory on the 
   cmusphinx project shell space. It makes use of a history file, 
   generated automatically. The file creation occurs at sf.net via a cron
   job. The crontab and the script that creates the history file are also
   located in the cgi-bin directory.

 - To setup a nightly regression test, run the script 'regressionTest' 
   from a crontab job. Make sure that paths are setup properly.  Here
   is an example entry:

   0 22 * * * (. $HOME/.profile ; ./regressionTest)

 - Here is the associated profile. Make sure that path is exported


PATH=$PATH:"$HOME/bin:/lab/speech/bin:/usr/dist/exe:/pkg/gnu/bin:/lab/speech/java/j2sdk1.4.0/bin::/lab/speech/bin:/usr/bin:/usr/ucb:/lab/speech/java/j2sdk1.4.0/bin:."
export PATH



There are a number of scripts associated with the regression tests.
Here is a summary of them and what they do.


ConnectedDigitsResults.list - list of make targets for ConnectedDigits tests.
IsolatedDigitsResults.list - the list of make targets for IsolatedDigits tests.
README - this file 
SmallVocabResults.list - the list of make targets for SmallVocab tests
collectMetrics - collects the source metrics
cvs_history - collects the cvs history
debris_weekly_test_schedule.crontab - weekly schedule for debris.
dummyTests - a set of dummy tets
executeRegressionTest - the main test program
finalizeLog - updates the regressionResults/regression.log file and upload it to the cvs tree.
getHostname - gets the current hostname, up to the first dot
getTime  - gets the time in seconds since the epoch
mailReport - mails a summary report to the mailing list
makeReport - creates the test summary report
makeTestDetailReport - creates the detailed test test tables
makeTestReports - creates all detailed and summary reports
makeTestSummaryReport - creates the summary test tables 
makeWebpage - creates the regression_report summary web page
mangueira_weekly_test_schedule.crontab - crontab entries for mangueira
parseS4Output - generates a regressionResults/regression.log entry from s4 output
profile - example ".profile" to be placed in the user's home directory.
pushAllTestReports - publishes all test reports to the web
pushChanges - publishes the 'what has changed' pages to the web
pushReport - publishes the regression report summary web page
pushTestReports - pushes a set of test reports to the web
regressionResults/regression.log - the test log database
regressionTest - the toplevel test, performs minimal work then calls
executeRegressionTest
runTest - runs a single test
runTests_friday - runs a set of tests
runTests_monday - runs a set of tests
runTests_nightly - runs a set of tests
runTests_quick - runs a set of tests
runTests_live - runs a the live tests
runTests_saturday - runs a set of tests
runTests_sunday - runs a set of tests
runTests_thursday - runs a set of tests
runTests_tuesday - runs a set of tests
runTests_wednesday - runs a set of tests
s4_align - prepares log files to run NIST's align
s4_align_sum - runs and extracts the relevant info from NIST's align program.
updateLog - updates the regressionResults/regression.log in CVS
updateTestReport - updates the test pages without running experiments
waitForFile - waits for the current file to appear
whatsNew - generates the 'what has changed' web pages

