Add a userblock to an HDF5 file during the repack. The user gives
give a filename and userblock size as command line parameters to
h5repack and the contents of that file are stored in the
userblock for the HDF5 file created by h5repack.
New flags to handle this -u and -b
Tested : windows, linux
datatype versions are encountered.
Description: The library now recognizes some problems with datatype versions in
H5O_decode_helper(), and, if not performing strict format checks, automatically
corrects them. Framework added for other message decode routines to
automatically correct file errors. Datatype version information added to
h5debug.
Tested: kagiso, smirom, linew (h5committest)
===
The following patch to h5copy.c on or near line 173 makes the
tool substantially more useful...
*flag = (*flag) | fla;
Because the command-line option parsing permits multiple '-f' arguments,
this will have the effect of or'ing the flags together so one can do
someting like....
~/tmp/hdf5-1.8.1/tools/h5copy/h5copy -i multi_ucd3d.h5 -s block5 -o gorfo -d foo -f shallow -f soft
Mark C. Miller, Lawrence Livermore National Laboratory
email: mailto:miller86@llnl.gov
===
Description:
This commit is a major update to the Windows-maintained H5pubconf.h file. This file is statically-distributed because Windows cannot generate it dynamically as other platforms do. Previously, our Windows version contained a minimal subset of the macro definitions required. To update, I've gone through each macro (based on kagiso's output), and tested for the correct value on Windows. This allows us to better target code based on feature flags. It should also be easier to update in the future as changes are made to the configure script.
This commit also contains one small bug fix in h5ls.c. Some Windows-specific code was missing a local variable definition. The bug went unnoticed because Windows didn't define the feature flag correctly.
I've also made changes to the h5vers script. Whenever the version string is incremented (automatically by h5test after a snapshot), the strings in H5pubconf.h will also be updated.
Tested:
VS2005 on WinXP (32- and 64-bit)
VS.NET on WinXP 32-bit
h5vers tested under Cygwin
Summary: when using h5diff to compare the results of h5repack (or other tools that copy one HDF5 file to another), a new option is needed to allow h5diff to make an "absolute" comparison of the 2 files. This is the "contents" mode explained in the usage below.
If this mode is present, objects in both files must match (must be exactly the same). If this does not happen, the tool returns an error code of 1 (instead of the success code of 0)
Changes to the h5repack test script: the call to h5diff was changed to include -c (maintaining the previous -q).
tested: windows, linux, solaris
the parsing of the command line strings for the shared object header message type was not being done correctly (strcmp)
fix: substituted by strncmp
tested: windows, linux
The name of the files are now given by its full name relative to $srcdir
To avoid the printing of the complete full path of the test file, that hides
all the other parameters for long paths, the printing of the command line
is done first in TESTING with the name only of the test file, not its full path
the printing in the expected output that had the file name was removed as well as 3 tests that tested error messages in which the file name was present
tested: linux (in 2 different build directories relative to $srcdir), solaris
for now, the test script just calls the tool binary with the command line parameters, with no special
checking of the accuracy of the output contents (jpeg files)
tested: linux
for now, just added "-ljpeg" to the list of libraries, until a permanent solution is added to configure --with-jpeg= that would allow users to specify their own jpeg libary
tested: linux (kagiso, that has a jpeg library installed)
Description:
As part of our Windows cleanup, we try to remove windows-specific tweaks in the source code. There are many instances where Windows code is introduces via ifdef's. We re-evaluate whether they are still required, and found that many of them are not. Others we change to "feature"-specific code, rather than Windows-specific.
Tested:
VS2005 on WinXP
VS.NET on WinXP
h5committest (kagisopp, smirom, linew)
Description:
In library code, we try not to use system calls directly, but instead use the HD{function} macro instead. This way, we can map special versions of the call on particular systems. Previously, it was all done in H5private.h. However, in an effort to clean up platform-specific definitions, we move all of the Windows macros into a separate file, win32defs.h. This way, we can use the non-Posix versions that Visual Studio sends warnings about.
Some macros are set specifically in the platform-specific header files. Then, any macros left unset will be set by the "default" implementation in H5private.h.
This checkin also cleans up various source files to use the HD* macros when possible.
Tested:
VS2005 on WinXP
VS.NET on WinXP
h5committest (kagiso, linew, smirom)
Fixed bug in h5ls that prevented relative group listings (like
"h5ls foo.h5/bar") from working correctly.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.5.3 (amazon) in debug mode
Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
Finish omnibus chunked dataset I/O refactoring, to separate general
actions on chunked datasets from actions that are specific to using the v1
B-tree index.
Cleaned up a few bugs and added some additional tests also.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.5.2 (amazon) in debug mode
Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
bug fixes.
Description:
Added code to create an empty hdf5 (named h5diff_empty.h5) in order to test
if h5diff compares correctly an empty hdf5 vs. a non-empty one.
Tested:
Tested in kagiso of h5diffgentest itself.
Verified by h5dump that h5diff_empty.h5 was indeed empty.
Then "h5diff h5diff_empty.h5 h5diff_basic1.h5" returned 0 (should have
returned non-zero).
if these are detected this syntax is used, otherwise the one in usage is used
there was another -i option for
-i L2, --indexed=L2 Minimum number of links in the indexed format
That was changed to -d
-d L2, --indexed=L2 Minimum number of links in the indexed format
Tested: windows, linux
Description:
The fortran Makefile.am used HDF_FORTRAN to indicate it is part of the
Fortran API source so that conclude.am will give fortran api prefix in the
test output. The symbox HDF_FORTRAN is also used in configure for a different
purpose (indicated --enable-fortran). They conflicted.
Similar problem for the symbol HDF_CXX.
Solution:
Changed all the involved Makefile.am to use "FORTRAN_API" instead. It is
a more appropriate name. Same for CXX_API.
Along the way, discovered that the Makefile.am of hl/fortran/test and
hl/cxx/test did not have those symbols at all. Added them in.
Platform tested:
Kagiso only. It is a trivia change.