Improvement.
Description:
Added a command to dump all environment variables at the
beginning of the snapshot test.
Platforms tested:
Attempted to test in eirene but aborted it after seeing the
dumping because it was doing things to the current/ of daily
test directory. *arg!*
Bug fix and feature.
Description:
The setenv was done in runtest but it has the effect will linger
onto the next test. So, if the first test sets $CXX to a certain
value, it lingers on the all following tests of the same host.
This is usually not desired.
Solution:
Move the actual setenv code to snapshot. Runtest now just parses them
and pass along the setenv request to snapshot.
Platforms tested:
no h5comittest which does not really test the change.
Hand tested in eirene with Tg-NCSA.
Misc. update:
cvs checkout often included empty directories the contents of which
are no longer needed.
Added -P to cvs command to prune them.
Platforms tested:
no h5committest which does not test snaptest.
Improvement
Description:
The cvs checkout used the complete path of current/ which is not
accepted by cvs server. Changed it to chdir to the snapshot directory
and then cvs checkout just current/.
Platforms tested:
Not h5committested because it does not test this command.
Tested in tg-ncsa which has no direct access to the CVS directory
and must use the server route.
Misc. update:
Bug fix
Description:
If the base directory (.../snapshot-...) does not exist yet,
the runtest and snapshot will continue on till it bumped into
a "wall".
Solution:
Added verification that the BASEDIR does exist.
bug fix.
Description:
It checked on the CVSROOT setting even when no cvs is needed.
Solution:
Moved the verification inside the checkout code so that the
CVS settings are checked when it is needed.
Platforms tested:
Eirene--this is invoked by bin/runtest. Platform tests do not
apply here.
Misc. update:
Bug fix
Description:
SGI shell treats $0 as function name if used in a function.
Set the name here to avoid that ambiguity and better style too.
Platforms tested:
Just in modi4 and burrwhite since it is a shell script and the
change is machine independent.
New feature
Description:
Added TIMESTAMP and event markers. Easier to tell the chronical events.
Turned of echo mode. Added an option to turn it on.
Platforms tested:
Only in eirene.
feature
Description:
Removed the search of HDF4 library specifically.
Replaced the locate_hdf4 with a more general locate_sw.
Added the search of zlib.
Platforms tested:
eirene and all hdf group machines.
New feature
Description:
"snapshot diff" will just run the diff and exit 0 is no significant
differences found between current and previous versions.
Runtest will try a "snapshot diff" and will skip test if no significant
differences are found.
Platforms tested:
eirene
New feature
Description:
Replacing the hardcoding of default version for snapshot test
to a file, bin/snapshot_version. This way, runtest and snapshot
can be version neutral. Makes maintenance easier.
Platforms tested:
eirene.
Bug fix
Description:
check-install was on the same make line with install. They
got run in parallel.
Run check-install as a separate make action after make install is completed.
Platforms tested:
Eirene
New feature
Description:
The examples have been changed to use the installed h5cc to do
the compiling. Added a step in the "test" part to
"cd examples; gmake check" which will test against the installed
software.
A more proper way is to create a "check-install" target to test
other installed software besides the C API, such as the Fortran
API.
Platforms tested:
eirene
Bug fix
Description:
A a build had occurred in the source tree ($CURRENT) and did not
do a distclean, the left over files would interfere with srcdir
build.
Solution:
Added a "make distclean" in the "checkout" option to clean up
the $CURRENT just in case. Not necessarily the most optimal
spot to do the cleaning but convenient.
Platforms tested:
Eirene.
Bug fix
Description:
Snapshot does "make check" directly, instead of building all
binary first. This means it does not cover code that are not
tested (e.g., example, perform). (That explained why the errors
in the PIO performance code were not reported in daily test but
blew up when people built the library the "normal" way.)
It is done this way so that the snaptest aborts as soon as
the first test failed rather than after all code are compiled.
Solution:
Add "make" (to build all binary) before "make check".
The allows snaptest to fail as soon as the first compiling failure.
If we wish the snaptest to abort on the first test failure, the two
can be swapped as "make check && make ...". (It would appear strange
to run tests then make binary.)
Platforms tested:
Would be tested in the daily test tonight. (I should have tested
it first but I started this commit process already. Sorry.)
feature
Description:
Recognize command line argument in the form of '--*' as
a configure command option by default. Since all normal
configure options are in the form of '--*', this will
simplify the "op-configure <option>" syntax. The latter
syntax is still kept in case one would want to pass in
some configure argument that does not fit this syntax.
Platforms tested:
Eirene.
Improvement
Description:
The DIFF used to keep running after detecting significant code changes.
This was done in order to see all changes but no one seems to look
at the diff any more. So, let it end the DIFF cycle once it determines
there are enough differences for a new test.
Added "install install-doc uninstall uninstall-doc" to the test
cycle.
Platforms tested:
Eirene, gondolin, modi4
Code improvement
Description:
Changed it so that $H5VERSION determines which version of hdf5
code to do cvs checkout and to test, making it easier to handle
new versions.
Platforms tested:
run simple test to make sure it did generate the right command.
Simple twist
Description:
snapshot used to just use whatever `hostname` returns. Often it
is the fully qualified name but sometimes just hostname without the
domain part. Inconsistent.
Solution:
Chopped off any domain part and use just the host name.
Use the 'cut' command rather than the sed with ncsa.uiuc.edu hardcoded.
Applied that to runtest too.
Platforms tested:
Should work. Will find out if the daily tests still work.
option. A system may have several versions of diff (e.g., vendor's
and Gnu's). Added codes to try them all until finding one that supports
it. If found, use it; else stick with plain "diff" and may waste time
when there are no differences besides the ignorable patterns.
Platforms tested:
Solaris 2.7, Redhat 6.2
so that it is the same as the released version and allows easy
appendix of version number. For the development branch, $H5VERSION
is just "hdf5", representing the current version of the main=truck.
srcdirname <dir>:
Use <dir> as the srcdir testing directory if srcdir is choosen.
If <dir> starts with '-', it is append to the default name
E.g., "snapshot srcdir srcdirname -xx" uses hostname-xx
[Default is hostname]
op-configure <option>:
Pass <option> to the configure command
hosts. Below is the help output for srcdir.
srcdir: Use srcdir option (does not imply other commands)"
"snapshot srcdir" is equivalent to "snapshot srcdir all"
"snapshot srcdir checkout" is equivalent to "snapshot checkout"
Also used shell variables to hold directory paths for easier maintenance.
does cvs checkout only. Moved the "make distclean" code from the "test"
to the "release" part. (A distclean should definitely be applied as
part of the release command. Also, test might fail for other silly
reason, like AFS temporary out. The distclean blew away the option
of trying the tests by hand.
two tasks can be done selectively. This is mainly to allow doing the
test without running the release part automatically. After this is
tested out more to work fine, the "cvs checkout" part will be pulled
out also, so that it is possible to stage the cvs checkout during the
daytime when user is around to provide the AFS token. The test part
can be done at night by cron, provided the latest source has been
"staged". Following a successful test, the user can do the release
part by hand later, again with AFS tokens.
Also added options for using different locations of HDF4 library
and the ARCHIVE areas. Making it useful for different machines
setup.
Changes since 19990615
----------------------
./README
Version number synchronized with library.
./bin/h5vers
If the version number of the library is changed then the first
line of the README file is also changed to something like
This is hdf5-1.2.3 currently under development
The `release' script (which also gets run by `snapshot')
changes that line to include the release date but keeps the
version number the same. The net effect is that the version
numbers in README and H5public.h should now always stay
synchronized.
./bin/snapshot
The CVS checkin comment includes the version number for the
snapshot that was just made.
./tools/testh5toh4
Changed `*-SKIP-*' to `-SKIP-' to be consistent with the other
tests.
----------------------
./INSTALL
Added warnings and a disclaimer about GNU, DEC, Irix64, and NT
compilers that generate incorrect machine code.
./configure.in
./src/H5private.h
Detects and includes <sys/param.h> which is needed on FreeBSD
before <sys/proc.h> even though we only really using anything
from <sys/proc.h> on the DEC Alpha.
./config/irix64
Turned off warnings for duplicate definitions from the linker
because -lnsl on irix has the same stuff in it as -lc.
./config/irix6.x
Split up the CC and CFLAGS settings like with irix64 so that
compilers besides `-n32' can be used.
./bin/snapshot
The snapshots are tagged with names like hdf5-1_1_52 which is
similar to the way the releases are tagged (cvs doesn't allow
dots in tags).
./test/dtypes.c
./src/H5private.h
./src/H5Tconv.c
Fixed some alignment violations on the DEC when using high
optimization levels. The DEC incorrectly optimizes certain
memcpy() and memmove() calls when the source argument is not
word aligned if the call looks like it's copying an atomic
data type.
./test/hyperslab
Worked around code generation bugs in the Irix64 Mongoose 7.00
compiler by casting some `unsigned long' values to `unsigned'
in an expression.
./src/H5Ocomp.c
Fixed a place where %d was used to print a size_t.
----------------------
./bin/snapshot
Made same fix as for the release script yesterday.
./src/H5D.c
./src/H5Dprivate.h
./src/H5G.c
./src/H5Gprivate.h
./src/H5Gpublic.h
./src/H5O.c
./src/H5Oprivate.h
./src/H5RA.c
./src/H5RAprivate.h
./src/H5T.c
./src/H5Tprivate.h
Improved object type checking. Instead of determining the
object type by trying to open each of the possible types, we
keep a table of associations between object type number (like
H5G_GROUP, H5G_DATASET, H5D_TYPE, and H5D_RAGGED) and an `isa'
function that returns true if the object header has the right
messages to make the object a particular type. This mechanism
also allows specialization of object types by permitting an
object to satisfy more than one `isa' function.
Added `isa' functions for groups, datasets, ragged arrays, and
committed data types.
./src/H5config.h.in
Added HAVE_STAT_ST_BLOCKS. I thought this had already been
added, but apparently not.
./tools/h5ls.c
Removed system include files since they're already included by
H5private.h and since I wasn't including them portably anyway.
By default, 1-byte integer types are printed as integer values
instead of ASCII characters. However, the `-s' or `--string'
command-line switch causes the data to be interpretted as
ASCII. String data types are always printed as character
data.
Ragged arrays are now identified as ragged arrays and h5ls
doesn't descend into the group automatically. This uses the
new object type specialization stuff.
./tools/h5tools.c
./tools/h5tools.h
Added the ability to print 1-byte integer types as either
ASCII or numeric data instead of always ASCII. The default is
to print as numeric data.
----------------------
./MANIFEST
./bin/release
./bin/snapshot
The format of the MANIFEST file has been relaxed -- comments
and blank lines should no longer confuse the tools that use
it.
As before, this file should contain a list of *all* files that
are part of HDF5, which means all files which are managed by
CVS/SVF. However, files can be marked so they're not part of
a release by adding _DO_NOT_DISTRIBUTE_ after the file name.
I've removed all the *.obj files from the distribution by
adding _DO_NOT_DISTRIBUTE_ after their names. I also removed
the old white-papers that might not apply to the current
version of the library and documentation about chunking
performance since it's wrong now that chunk caching is
implemented. Everyone please check the files you're
responsible for to make sure that they should really be part
of a release.
To get a list of all files use
grep '^\.' MANIFEST | cut -f1
To get a list of files for distribution use:
grep '^\.' MANIFEST | grep -v _DO_NOT_DISTRIBUTE_
(These commands assume tabs in the MANIFEST file. If the file
might contain spaces then run it through `unexpand' or `tr'
first).
./configure.in
./configure
./test/ragged.c
Check for sigaction().
./test/Makefile.in
The `clean' target removes the timing tests.