Daily Test Explained

Requirements for a Daily Test Host

Directories/Files Used

$HOME/snapshots-XXX is where daily tests occur.

Inside snapshots-XXX Directory

       current/�������������������� latest version

       previous/����������������� last released version

       log/�������������������������� log files of most recent tests

       log/OLD/����������������� previous log files

       TestDir/<host>/������� build and test area of machine <host> supporting srcdir build

       allhostfile���������������� holds all test host names

       snaptest.cfg�������������� holds various test configurations

       release_always������� always make snapshot release tarball if all tests pass (implemented for hdf4 daily tests only)

       release_asap����������� make one snapshot release tarball if all tests pass (file is renamed after release)

       release_not�������������� do not make snapshot release tarball even if all tests pass

Steps

This shows steps of the daily tests for HDF5 development version (currenly v1.5).The HDF5 v1.4 and HDF4 are similar.snapshots-XXX here means $HOME/snapshots-hdf5/.

 

  1. �hdfadmin� starts a cron job after midnight in eirene.
  2. Cron job acquires kerberos credential and AFS tokens.
  3. Execute $HOME/.crondir/DailyMaint to start daily maintenance

       CVS updates some documents on websites

       CVS updates $HOME/HDF5/v_1_5/hdf5/�� (the bin/runtest in it is ready to be used innext step)

  1. Execute $HOME/.bin-sys/DailyHDF5Test

       Clean up snapshots-XXX/log area

a.      Purge older files from OLD/

b.     Moves log files from yesterday to OLD/

       cd $HOME/HDF5/v_1_5/hdf5

       Launch �bin/runtest �all� from eirene

  1. bin/runtest �all

       CVS updates $HOME/snapshots-XXX/current (the commands in bin/ are now ready be used in the following steps).

       Executes snapshots-XXX/current/bin/chkmanifest for MANIFEST file.

       Diff current/ and previous/ versions.If no significant differences found, no need to run daily test per hosts.Will not make snapshot release tarball either.

       If significant differences found, prepare to run the daily tests for all hosts.

       Reads allhostfile for test hosts.For each host:

a.      use ping then rsh/ssh to make sure the host is on line and responding

b.     if srcdir is support, fork off the following command for all hosts and wait for them to finish.Otherwise, launch one at a time.

c.      rsh host �cd $HOME/snapshots-XXX/hdf5; bin/runtest� >& #<host>

  1. bin/runtest (one each in multiple hosts)

       Since �-all� is not used, it is for launching the test for this host only.

       Reads snapshots-XXX/snaptest.cfg and looks for configuration entries that are for this host.

       For each configuration, runs snapshots-XXX/bin/snapshot with the configuration.

       Configure, build and test results are stored in log/<host>_YYMMDD_HHMM (e.g., arabica_021024_0019)

  1. Back to �bin/runtest �all� in eirene

       Gather all those #<host> files and other summary report into one daily report (e.g., DailyHDF5Tests-eirene_021024)

       Checks the tail of log/<host>_YYMMDD_HHMM to make sure it does complete properly.

  1. Back to �.bin-sys/DailyHDF5Test�

       Do a snapshot release if
��� test-succeeded &&
��� release-not-is-not-present &&
��� ( today-is-saturday || release-asap-is-requested )

       HDF4 does not know how to create a release tarball.Its release process only renames current/ as previous/ to reduce future test time.It also supports an option of release-always which tells daily test to make a release whenever all tests pass.The release-asap only make the release once and the file is renamed, blocking any future ASAP release until someone turns it on again.

  1. Compose a report and email �hdf5-cvs�

Acknowledgement

Robb Matzke first setup the snapshot directory structure and created pretty complete version of commands snaptest, release and h5ver. The initial version is for testing in one host with the default configuration.I just added more whistles and bells.Jim Barlow helped me how to authenticate a cron task with keytab.

----

First created by Albert Cheng, October 24, 2002.

Revised October 28, 2002.