feature
Description:
Another revamp of the test interface.
TestInit: is used to register Test Program name, test program specific
Usage and option parsing routines.
TestUsage: will invoke extra usage routine if provided.
TestParseCmdLine: will invoke extra option parsing routine if provided.
GetTestSummary() and GetTestCleanup() replaces the previous Summary and
CleanUp arguments of TestParseCmdLine.
test/testhdf5, test/ttsafe.c, testpar/t_mpi.c, testpar/testphdf5.c:
All have been updated to use the new Test Routines.
testpar/t_mpi.c:
Also a fix of a compiler optimization bug when pgcc in Linux is
used to compile it. Changed buf[] and expected to unsigned char
type to avoid a bug that failed to do sign-extension.
Platforms tested:
"h5committested"
Also tested thread-safe option in eirene.
Purpose:
bug fix
Description:
1. The IF-block of skipping collective chunk IO tests when the number of
processes is greater than some number essentially skipped all parallel tests.
2. John tested at copper with the number of processor = 64 and collective
chunk IO tests passed, so we increase the number of precessor =24 to 64 for
skipping the test.
Solution:
1. change the IF block flow so that it only skips collective chunk IO tests when
the number of process is greater than 64.
Platforms tested:
copper(only change a bit of parallel test code, no needs to test on other platforms).
Misc. update:
Correction of the previous check.
Description:
forget moving "debug #if macro" out of this file.
Solution:
remove that "#if 0 #endif" macro block.
Platforms tested:
Compile at eirene
Too trivial to test
Misc. update:
Better collective chunk IO test arrangements
Description:
collective chunk IO tests have been verified with the number of process greater than 24 and
the test is very slow with big number of process.
That may cause confusions to users who run collective chunk IO tests.
Solution:
To avoid possible confusions, A if-block will be used to check whether the number of process
is greater than 24. If yes, the collective chunk tests will be skipped and a message will be printed out.
Platforms tested:
linux 2.4
(too trivial to use h5committest)
Misc. update:
Make collective chunk IO test more general
Description:
Previously collective chunk IO test is only fit for processor =4 with
the dimension size to be set small; sometimes people would like to test
with more than 4 processors(5,6 or more), the test therefore failed.
Solution:
To make the test case more general, dimensional size of the data is set to be large(right now 288 for each dimension), the disjoint hyperslab selection is re-calculated. Now the test cases should pass with 5,6 or 12 processors. Note, there is nothing wrong with the implementation of the library, it is the test case that causes the failure with the number of processor greater than 4.
Platforms tested:
Only at eirene, since only the test code is modified a little and it is very slow to test the parallel case.
Misc. update:
Cleanup and bug fix.
Description:
Bug fix:
the checking of dobig test was done in the wrong place
such that tests added after it would be run even for the -b option.
Moved the dobig test checking to AFTER all tests are added.
Cleanup:
Removed old code now that the new way is working fine.
Platforms tested:
Tested in Eirene parallel only.
Misc. update:
Feature
Description:
Added a feature such that if the test name starts with '-', do not run it
by default.
Platforms tested:
Eirene both serial and parallel.
Misc. update:
Code cleanup
Description:
Fix another batch of minor differences between the development and release
branches.
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel
Too minor to require h5committest
Code cleanup
Description:
Clean up collective chunking code a bit.
Also, add '--enable-instrument' configure flag to have a mechanism for
determining that optimized operations happened correctly in the library (instead
of just the "normal" way) by allowing 'flag' properties to be set outside the
library and set when the "right" thing happens. This is mainly for debugging
and regression checks, so we make certain we don't break optimized I/O by
accident. It's enabled by default when --enable-debug is on (which is on by
default in the development branch and off by default in the release branch),
but can also be independently controlled with its own configure flag.
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel
IBM p690 (copper) w/parallel
To test collective chunk IO properly.
Description:
See the previous message.
Solution:
See the previous message.
Platforms tested:
arabica(Sol 2.7), eirene(Linux), copper(AIX)
Misc. update:
To add collective chunk IO tests.
Description:
three tests are added.
1. Only one hyperslab for each process, and this hyperslab is fit in exactly one chunk.
2. non-contiguous hyperslabs in each process, these hyperslabs are fit in one chunk.
3. Single hyperslab for each process, smaller chunk is assigned. Number of chunks for
every process is equal.
Solution:
the dataset size is set to be very small, will enlarge later.
Platforms tested:
AIX 5.1(copper)
Misc. update:
Bug fix
Description:
Fix error in chunked dataset I/O where data written out wasn't read
correctly from a chunked, extendible dataset after the dataset was extended.
Also, fix parallel I/O tests to gather error results from all processes,
in order to detect errors that only occur on one process.
Solution:
Bypass chunk cache for reads as well as writes, if parallel I/O driver is
used and file is opened for writing.
Platforms tested:
FreeBSD 4.10 (sleipnir) w/parallel
Too minor to require h5committest
Improvement
Description:
The MPI atomicity and file_sync tests may hang if a filesystem
is not able to support the operation. This will block the
whole tests. PHDF5 is not using either features. So, removed
them from the default tests.
Platforms tested:
Only in eirene using pp. Copper is still down.
Bug fix.
Description:
The data verification code didn't work. Also numerous minor bugs.
Solution:
Re-wrote data write and verification code. In particular, I
modified the verification code so it actually verifies data.
In the future, this test should be modified so it exercises
object deletes and chunk I/O.
Platforms tested:
h5committested
Code cleanup
Description:
Clean up lots of warnings based on those reported from the SGI compilers
as well as gcc.
Platforms tested:
SGI O3900, IRIX64 6.5 (Cheryl's SGI machine)
FreeBSD 4.9 (sleipnir) w/ & w/o parallel
h5committest
feature
Description:
Change testphdf5 to use the common test program syntax.
Needed to change the protocols of all test programs to
fit the requirement of the common test syntax.
Platforms tested:
"h5committested".
Also tested in sol with PP mode.
Bug fix
Description:
make check without doing make first would fail to build testphdf5.
Solution:
Put the testphdf5 back in the target of TEST_PROG_PP and removed
the "testphdf" without any parameter from testph5.sh.
Platforms tested:
copper parallel. This is not relevant to non-parallel cases.
Misc. update:
Improvement
Description:
Changed parsing of verbose level by the common test library routine.
Change t_mpi.c to use the Verbose control better.
Platforms tested:
verena (pp).
Misc. update:
Improvement.
Description:
Complete change of the verbose control to use the routines provided by
the test/libh5test.a.
Also put in a temporary fix for the H5Eset_auto() and H5Eget_auto()
so that the Compat code are isolated in one place rather than all over
the source file.
Platforms tested:
Tested in Eirene (parallel).
Misc. update:
Added a test of fill value before any data is written to a dataset.
Rename short_dataset() as dataset_fillvalue() as it reflects better
the tests. Also removed the option of -S since the fill value test
will be tested always.
Platforms tested:
"h5committested"
Misc. update:
Code cleanup.
Description:
The H5Eclear() in the VRFY and INFO macros are not needed.
After removing them, there is no need to have a separate
v1.6 Compat version.
Platforms tested:
"h5committested"
Misc. update:
Code cleanup, bug fixes
Description:
Wrap up rest of changes necessary for fixing the "short" MPI-I/O read
problem that Robb reported.
Platforms tested:
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
Feature.
Description:
Added the short_dataset test (was in v1.6 first.)
Platforms tested:
Tested in eirene (pp) only since these have been tested in v1.6 already.
Misc. update:
Bug fix
Description:
Clean up a couple more 1.6 compat bugs that showed up when the library
was compiled with parallel support.
Platforms tested:
FreeBSD 4.9 (sleipnir) w/parallel & 1.6 compat
config not tested with h5committest
Update
Description:
This completes Phase I of the FPHDF5 testing. This test does the
following:
- Creates a file
- Creates multiple non-root groups
- For each process:
For each non-root group:
Create multiple datasets
Access all datasets created above
Write to all datasets created above
- Close the file
- Reopen the file and verify the data is correct
Platforms tested:
AIX (w/ FPHDF5)
Linux (w/ FPHDF5)
Solaris (w/ Fortran & C++)
Misc. update:
new feature.
Description:
Added tests of 1wMr with options to apply Atomicity or File_sync.
Platforms tested:
only tested in eirene and Teragrid as this is just an MPI test.
Misc. update:
Update
Description:
Extensive reworking of the code. More modular now. Tests for almost
all of "Phase 1"s requirements. Need to check that data is correct
after reopening the file.
Platforms tested:
Linux (w/ FPHDF5)
AIX (w/ and w/o FPHDF5)
FPHDF5-specific fixes...No need for H5committest
Misc. update:
new test.
Description:
Added test_mpio_1wMr test which verify if the file system can support
1 process writes, many processes read.
Platforms tested:
h5committested.
Misc. update:
Update
Description:
The FPHDF5 test now writes data simultaneously from all processes to
all created datasets. It's wicked cool!
Platforms tested:
Linux (w/ FPHDF5)
Copper (w/ FPHDF5 & w/o Parallel)
FPHDF5-specific, so no h5committest
Misc. update:
Update
Description:
Modified the FPHDF5 test so that a single process creates multiple
datasets in a non-root group then all of the processes (sans the SAP)
access it.
Modularized the code a bit more to make it easy to perform the above
tests.
Changed the code a bit so that >3 processes can (theoretically) be
used to test this.
Platforms tested:
Linux (FPHDF5 specific change)
Misc. update:
Update
Description:
Expanded the FPHDF5 test to include creating multiple datasets by one
process in a non-root group.
Cleaned up the code a bit more to make it more modular and easier to
work with.
Platforms tested:
Linux (FPHDF5 specific)
Misc. update:
Update
Description:
Added test for FPHDF5 to the testpar/ directory. If you specify
--enable-fphdf5 during configuration, it'll run this test during a
"make check".
Platforms tested:
Linux (FPHDF5 specific).
Misc. update:
Feature, sort of.
Description:
Reactivated the big dataset test. Changed it
to default off, can be turned on via -b.
Platforms tested:
Only in Copper which is the only local machine safe to run
mulitple GB size files.
Misc. update:
Bug/feature fix.
Description:
Relax restriction on parallel writing to compact datasets to allow partial
I/O.
Updates to reference manual mentioning the issues involved are delayed until
reference manual 'lock' is removed later this week.
Platforms tested:
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
Disable "big" parallel tests until I get a chance to look into the
problems (probably during/after the workshop).
Platforms tested:
Eyeballed
Too minor to require h5committest
Bug fix
Description:
The MPI_File_set_size() routine on ASCI Red is not able to extend files
so that they are larger than 2GB.
Solution:
Add an extra macro which controls whether MPI_File_set_size() can handle
>2GB offsets or if our "older" way of reading a byte, then writing a byte at
the appropriate offset should be used.
Platforms tested:
FreeBSD 4.9 (sleipnir)
h5committest
Bug fix
Description:
Temporary files were not cleaned out because the definiton of
temporary files had not been updated.
Solution:
Updated it.
Platforms tested:
Tested by hand in Copper while i was testing the MPE change.
Misc. update:
Updated the copyright notice--mostly by rearranging
some text to make them consistent.
Solution:
Platforms tested:
"h5committested"--sol is down, so, no SUn test.
Misc. update:
Compatibility fix
Description:
The H5P[set|get]_fapl_mpiposix calls changed between v1.4.x and v1.5.x.
Solution:
Wrap them in the v1.4 backward compatibility #ifdefs and update tests, etc.
Platforms tested:
FreeBSD 4.8 (sleipnir) w/paralle & v1.4 compatibility
h5committest pointless
Bug fix
Description:
An earlier checkin changed some of the assumptions about single block
hyperslabs, causing them to fail in odd ways.
Solution:
Fix errors with single block hyperslabs by keying off of count==1 instead
of stride==1.
Platforms tested:
FreeBSD 4.8 (sleipnir) w/parallel
h5committested
Add printout to identify when the MPIPOSIX driver is being tested instead
of the MPI-IO driver..
Platforms tested:
Tested in copper in parallel mode only since it was just a simple
print statement in the parallel test code.
Misc. update:
Feature Add
Description:
Added knob so that the programmer can enable or disable GPFS
hints during runtime instead of having it only enabled at
configure/compile time. Some of the public APIs were changed
to add an extra parameter for this option...
Platforms tested:
Blue (LLNL). It only affects the MPI/POSIX driver, so no need
to test it on non-GPFS platforms.
Misc. update:
feature
Description:
added test_fapl_mpiposix_dup to verify the MPIPOSIX is making
duplicates of Communicator correctly.
Platforms tested:
Did not h5committested because these are all MPI code and well protected
by HAVE_PARALLEL.
Tested in eirene and modi4, both parallel mode.
Misc. update:
code cleanup.
Description:
Rename test_comm_info_delete to test_fapl_mpio_dup to better decribe
what it does. Updated the comments to describe more accurate.
Platforms tested:
Did not run h5commmittest since the changes were all in parallel area.
Ran parallel tests on modi4 and eirene.
Misc. update:
simple code cleanup.
Description:
While debug a problem in multiple_group_write(), noticed some returned
values were not checked. Added code to check on all returned code.
Platforms tested:
h5committested.
Misc. update:
bug fix
Description:
The fphdf5.o and similar files are not included in the make clean
target. So, if the same directory is used again for a different
build, the left behind file could cause a problem (e.g., if
the second build is for a different binary format.)
Solution:
Added fphdf5.c to the TEST_SRC list which indirect form the clean
target list.
Platforms tested:
Did not run h5committest tests because they don't verify this
failure. I tested the fix in modi4 pp to verify all files are cleaned.
Misc. update:
Feature
Description:
Test program for the Flexible PHDF5 feature.
Platforms tested:
Tested on modi4 before but the feature is currenly disabled in
configure. Checking this in for future work.
Misc. update:
Bug fixes/API changes
Description:
Previously, the Communicator and Info object arguments supplied
to H5Pset_fapl_mpio() are stored in the property with its handle
values. This meant changes to the communicator or the Info object
after calling H5Pset_fapl_mpio would affect the how the property
list function. This was also the case when H5Fopen/create operated.
They just stored the handle value. This is not according to the
MPI-2 defined behavior of how Info objects should be handled. (MPI-2
defines Info objects must be parsed when called.)
The old design was trying to avoid numerous duplicates of the same
information (e.g., every property object holds one version, every
file opened holds another version, when all of them are referring to
the same original version.) Nevertheless it is safer to implement
it according to MPI-2 definition.
Futhermore, the library often needs to do message passing using the
supplied communicator. Using the same communicator as the application
version may result in some messages mix up.
Solution:
H5Pset_fapl_mpio now stores a duplicate of each of the communicator
and Info object.
H5Pget_fapl_mpio returns a duplicate of its stored communicator and
Info object. It is now the responsibility of the applications to free
those objects when done.
H5Fopen/create also stores a duplicate of the communicator and Info
object supplied by the File Access Property list.
H5Fclose frees those duplicates.
There are a few more internal VFL call back functions that they
follow this "make duplicates" requirement.
Platforms tested:
"h5committested".
What other platforms/configurations were tested?
Eirene (mpicc), sol(mpicc), copper(parallel)
Misc. update:
Need to update MANIFEST for the added t_ph5basic.c which tests the
correctness of duplicated communicator and INFO object.
Update
Description:
Updated (and in some cases added) the copyright statement.
Platforms tested:
Linux (Comment changes...only tested if they compile)
Misc. update:
Purpose:
More test.
Description:
Test independent read of groups and chunked dataset.
Solution:
This test is similar to multiple group test. So just add it in the
testphdf5.c,h.
Platforms tested:
modi4, eirene.
Bug fix (no id, just noticed myself)
Description:
Added a barrier before doing file cleanup to ensure all tests are
completed by then.
Moved the MPI_Finalize to be very end and insert an H5close before
it to ensure all potential MPI activities by HDF5 are done by then.
Platforms tested:
Tested h5committest {arabica (fortran), eirene (fortran, C++)
modi4 (parallel, fortran)}? Yes.
Bug Fix
Description:
Metadata cache in parallel I/O can cause hangs in applications which
perform independent I/O on chunked datasets, because the metadata cache
can attempt to flush out dirty metadata from only a single process, instead
of collectively from all processes.
Solution:
Pass a dataset transfer property list down from every API function which
could possibly trigger metadata I/O.
Then, split the metadata cache into two sets of entries to allow dirty
metadata to be set aside when a hash table collision occurs during
independent I/O.
Platforms tested:
Tested h5committest {arabica (fortran), eirene (fortran, C++)
modi4 (parallel, fortran)}
FreeBSD 4.7 (sleipnir) serial & parallel
Misc. update:
Updated release_docs/RELEASE
bug fix
Description:
Added a barrier to ensure all processes have finished using
the file before cleaning it away.
Added H5close() to ensure all HDF5 stuff are closed before
calling MPI_Finalize.
Platforms tested:
Tested h5committest {arabica (fortran), eirene (fortran, C++)
modi4 (parallel, fortran)}? Yes
New feature
Description:
Add support for scalar dataspaces in parallel I/O.
Platforms tested:
Tested h5committest {arabica (fortran), eirene (fortran, C++)
modi4 (parallel, fortran)}
Also, FreeBSD 4.7 (sleipnir) serial & parallel
Misc. update:
Update release_docs/RELEASE for bug fixes, new features, etc.
Testing fix.
Description:
Correctly detect when one of the parallel tests fails and stop the make
from proceeding.
Platforms tested:
modi4 (parallel), sleipnir (parallel)
API name change
Description:
Change all "space time" references to "alloc time", including API functions
and macro definitions, etc.
Platforms tested:
FreeBSD 4.6 (sleipnir) w/C++
Solaris 2.7 (arabica) w/FORTRAN
IRIX64 6.5 (modi4) w/parallel & FORTRAN
Bug fix
Description:
script did not work for SP system.
Solution:
added "eval" command to launch the mpi execution. This works fine
for SP and is basically a no-op for non-batch systems like workstations.
Also got rid of the wrongle implemented TESTING message since the
result was not printed and the tests output mess up the format already.
Platforms tested:
SP (snow). Did not test more since it has been tested out fine
in the v1.4 checkin.
Additional test
Description:
Add in a fill-value to one of the tests, to make certain that they are
handled correctly.
Platforms tested:
FreeBSD 4.6 (sleipnir) w/serial & parallel
Code cleanup
Description:
Cleaned up some compiler warnings.
Platforms tested:
FreeBSD 4.6 (sleipnir) w/serial & parallel. Will be testing on IRIX64
6.5 (modi4) in serial & parallel shortly.
Purpose:
Design for compact dataset
Description:
Compact dataset is stored in the header message for dataset layout.
Platforms tested:
arabica, eirene.
Bug fix
Description:
t_mpi test program was not being run with the RUNPARALLEL command
Solution:
Put the t_mpi program into the TEST_PROGS_PARA macro instead of the
TEST_PROGS macro
Hopefully this'll fix the daily test problems on arabica, but I can't test
it because I can't get mpirun to work correctly for me.
Platforms tested:
IRIX64 6.5 (modi4) w/parallel
New feature
Description:
Changed parallel I/O tests to use test script instead of just running
testphdf5 executable. This allows the MPI-posix driver to be tested easily.
Platforms tested:
FreeBSD 4.6 (sleipnir) w/parallel and IRIX64 6.5 (modi4) w/parallel
Code cleanup
Description:
Changed ifdef name from "VERBOSE" to "BARRIER_CHECKS", to better describe
what it affects.
Platforms tested:
IRIX64 6.5 (modi4) w/parallel
Tidy up
Description:
Old version showed tons of output even if MPI_Offset is too small
to support multiple GB sized files and destined to fail.
Output is pretty confusing.
Solution:
Prints the signness and size of MPI_Offset for information.
Skipped tests if MPI_Offset is not big enough to support the file
sizes.
Platforms tested:
modi4, eirene, burrwhite (all parallel).
Bug Fix
Description:
Currently, only process 0 is writing attribute data to a file. This is
incorrect, because the raw data for attributes is cached in memory until
the object header is written and other processes are not able to read the
correct attribute information.
Solution:
Have all processes participate in writing the attribute data.
Platforms tested:
IRIX64 6.5 (modi4)
Code cleanup
Description:
Platform dependent code related to the struct stat and fstat
calls polluted source codes. Hard to maintain.
Solution:
Platform dependent code are moved to H5private.h and then internal
code can #include H5private.h. Repeat those macro definition for
the stdio and multi drivers since they area examples for writing
a virtual file driver. They must not use any internal code.
Platforms tested:
eirene (parallel), modi4 (serial including gass driver.)
Users were alarmed by the OFFSET overflow and GB file size tests.
Those tests only checks the limits of the MPI implementation, not
really as an error.
Solution:
Changed the VRFY macro to indicate it is an "ERROR".
Modified the INFO macro to print messages as "REMARK (not an error)"
so that users would not be alarmed.
Added an explanation string in the GB file size write/read.
Platforms tested:
eirene and modi4 (parallel)
New test feature
Description:
Added create_faccess_plist() that create just MPIO or split+MPIO
file-access property list. This in turn can run parallel tests
with just MPIO or with Split-file VFD too.
Added -s option for split-file Plus MPIO tests.
For testphdf5.c: removed a bunch of old debug code that got left
in by mistake.
Platforms tested:
Modi4 and eirene parallel.
But it has uncovered errors in the library. The test program
is correct though. Checking the test program in so that it won't
get lost and can be used for debugging. Also, the -s is not used
by default during test. At least it won't abort "make check".
Code cleanup
Description:
This was "thrown" together in a quick way to test MPIO functionality.
Cleaned out some embrassingly useless declaration to reduce compiler
warnings.
Platforms tested:
modi4-pp and eirene-pp.
More code cleanups
Description:
Wrap up the code cleanups for changing the dataset transfer property lists
over to using the generic property list code.
Platforms tested:
IRIX64 6.5 (modi4)
Purpose:
Added attribute test
Description:
attribute test is added into t_mdset.c. At this moment, testing failed
on SunOS 5.7 and Linux. But I believe the problem is from dataset
collective writing in t_dset.c.
Platforms tested:
SGI MPI, MPICH(IRIX64 N32, IRIX64 64, IRIX, Linux, SunOS).
Multiple-group testing
Description:
Added multiple groups under root group and multiple subgroups of
certain levels. Also writes several datasets in each group in
parallel.
Solution:
Platforms tested:
MPICH(IRIX 6.5, IRIX64 6.5(64), IRIX64 6.5(N32), Linux, SunOS 5.6)
and SGI MPI(IRIX64 6.5).
Purpose:
Multiple-group testing
Description:
Added multiple groups under root group and multiple subgroups of
certain levels. Also writes several datasets in each group in
parallel.
Solution:
Platforms tested:
MPICH(IRIX 6.5, IRIX64 6.5(64), IRIX64 6.5(N32), Linux, SunOS 5.6)
and SGI MPI(IRIX64 6.5).