$HOME/snapshots-XXX is where daily tests occur.
· 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
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/.
· CVS updates some documents on websites
· CVS updates $HOME/HDF5/v_1_5/hdf5/ (the bin/runtest in it is ready to be used in next step)
· 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
· 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>
· 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)
· 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.
· 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.
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.