Bring sec2 and log VFDs back into agreement. Correct several compiler
warnings. Also add some additional statistics to the log VFD and promote the
parameter for H5Pset_fapl_log from 'unsigned' to 'unsigned long long'.
Tested on:
Mac OS X/32 10.6.6 (amazon) w/debug & production
FreeBSD/32 8.2 (loyalty) w/debug
FreeBSD/64 8.2 (freedom) w/debug
Bring Coverity changes back to trunk:
r19733:
Fix memory leak in h5perf_serial. Global buffer "buffer2" was allocated at the
beginning of do_sio() but never freed. Added call to free() at end of do_sio().
r19734:
Fix memory leak in iopipe. Buffer "the_data" was allocated at the beginning of
main() but never freed. Added call to free() at end of main().
Tested on:
Coverity branch in daily tests & Mac
Description:
When using the scale-offset filter with floating point data or fill values, big
endian machines would save some metadata in the wrong byte order. This caused
such datasets to yield incorrect data when read on little endian machines.
Fixed the scale-offset filter to always save this metadata in the right byte order (i.e. little endian).
Tested: jam, amani, heiwa (h5committedt); fedora, linew
not like it as it may get into a racing condition when "gmake -j N" is used--
two "rm" commands were trying to remove the same file.
Solution:
Rearranged the Makefile.am so that h5perf or h5perf_serial are built only
once, that is through bin_PROGRAMS only.
Bug 2135: h5perf_serial is not installed in --enable-parallel build.
It was because in parallel build, h5perf_serial is not was not in the
bin_PROGRAMS list but it was still being built and tested.
Solution:
Rearranged the Makefile.am code so that h5perf_serial is installed too.
(It is easier to make cleaner code to install it than to build and test
h5perf_serial but not test it.)
Tested: Jam, both serial and parallel.
Did not run h5committest because the changes are in perform/ directory only
and I think Jam has given the changes in Makefile a complete test already.
Clean up tool code.
Remove "h5test.h" from tool code. Currently only in h5repack.
Tested:
jam (linux32-LE), amani (linux64-LE), heiwa (linuxppc64-BE), linew (solaris-BE)
Finish implementing time tracking for read & seek operations in the 'log'
VFD. Also clean up code and track total time during all read/write/seek
operations.
Tested on:
Mac OS X/32 10.6.6 (amazon) w/debug & production
(too minor to require h5committest)
When $HDF5ExpressTest is NOT set or when it is set to 1 or 0, it does not
skip test.
When $HDF5ExpressTest is set other than values above, it may skip tests.
The following message is printed:
Test skipped
when some tests are really skipped.
This is a temporary patch so that v186 can be tested. A more permanent fix
is needed, later.
Tested: h5committest.
h5dump: add dangling external link test case as part of Chicago project.
Tested:
jam (linux32-LE), amani (linux64-LE), heiwa (linuxppc64-BE), tejeda (mac32-LE), linew (solaris-BE)
This continues the previous work and this one breaks the
checker_board_hyperslab_dr_pio_test() into 4 smaller
sub-tests.
Tested: h5committest plus jam serial.
The shape same tests ran too long. Break them into smaller subtests
so that they can finish sub-test in a shorter time. Easier to tell
which one sub-test is taking too much time and/or errors occur in
one fo the sub-tests.
This one breaks the contig_hyperslab_dr_pio_test() into 4 smaller
sub-tests.
Tested: h5committest
error and wanted to exit the test program. This was not good since if only a
subset of processes called MPI_Finalize(), the other processes will likely
hang. That happened in AIX that it would waited till the alarm signal to kill
the processes. Definitely a waste of time.
Solution: Changed it to call MPI_Abort.
That showed another problem. HDF5 has setup atexit post-process to try to close
unclose objects, release resources, etc. But if the MPI processes have
encountered an error and has been aborted, it is not likely any more MPI calls
can function properly. E.g., it would attempt to free some communicators in
the HDF5 MPIO file handle. It would again hang.
Solution: need to call H5dont_atexit() to disable any atexit post-processing.
This must be done early, like before calling H5open. This is added to each
parallel test main program.
testphdf5.h:
Changed macros VRFY and MESG. Added comments too.
testphdf5.c:
t_mpi.c:
t_cache.c:
t_shapesame.c:
Added H5dont_atexit.
Tested: h5committest.
not find t_shapesame in daily test. Turned out the mpiexec launcher is
working like real shell and the daily test signon (hdftest) does not have
"." in its $PATH. So, it could not automatically look for executables in
the current directory.
Solution:
Change the executable to an explicit ./t_shapesame. Now mpiexec can "find"
it.
Tested by hand in Amani.
Moved the two shape same tests from testphdf5 to a separated executables,
named t_shapesame. The shape same tests runs too long for testphdf5.
In a separated executalbe, it will be easier to separate any errors in
testphdf5 sub-tests from the shape same tests.
t_shapesame.c:
Contains the shape same tests (cloned from t_rank_projection.c) plus
a duplicate of "testphdf5.c" for now. After verifying it is correct, more
cleanup is needed.
testphdf5.c:
Removed the two shape same tests (chsssdrpio & cbhsssdrpio).
Makefile.am:
Makefile.in:
Added t_shapesame as a new test executable.
Removed t_rank_projections.c from part of testphdf5.
testph5.sh.in:
Temporary added the "t_shapesame -p" test for testing shape same tests
with MPIO-Posix VFD.
Tested: h5committested, plus serial jam.
A static std::basic_string constructed in the Exception class.
This static isn't one that can be be destructed by H5Library::close(),
but rather gets cleaned up as part of the STL std::basic_string static
destructor when the HDF5 DLL is detached (WINDOWS).
Looking at the rest of the Exception code, the
DEFAULT_MSG doesn't really need to be a std::basic_string.
Remove the static constructor and no destructor required.
Tested: local linux - will wait for Nightly Dailies before bringing to 1.8
Bug 2089 - GMQS: h5diff segfault on a compound dataset with fixed length +
vlen string type order
Description:
This is fix for the segfault when h5diff compares a compound dataset with
combination of fixed length string types and vlen string types in certain
orders. Optimized vlariable length string handling codes. The fix is
referred from h5dump handling vlen strings.
For testing, several compound datasets were added with various combinations.
Previous failed cases:
- Vlen string, Fixed length string, Vlen string, Fixed length string
- Fixed length string, Fixed length string, Vlen string, Vlen string
- Fixed length string, Vlen string, Fixed length string, Vlen string
Tested:
jam (linux32-LE), amani (linux64-LE), heiwa (linuxppc64-BE), tejeda (mac32-LE), linew (solaris-BE)