HDFFV-7594 - GMQS: h5dump shows wrong values for H5T_STD_I8LE dataset on Blue-gene (ppc64 linux BE +@)
Description:
For the STD_I8 type data, updated to use 'signed char' instead of 'char' as
'char' could be defined as unsigned on a certain system, which cause h5dump
to display data values incorrectly.
Tested:
jam (linux32-LE), koala (linux64-LE), heiwa (linuxppc64-BE), tejeda (mac32-LE)
h5dump (and h5stat, h5jam/h5unjam) help option not tested. Added h5dump parse_command_line technique for h5stat and h5jam/unjam and created testfiles.
Tested: local linux
Test scripts sometimes need to filter some system-specific messages from the
actual output so that it can match the correct expected output. These filtering
functions, ususally called "STDOUT_FILTER()" and "STDERR_FILTER()" were being
repeated in individual test scripts. This becomes a maintenance problem and
is error prone.
Solution:
Extract the two filter functions code to bin/output_filter.sh and then each
test script sources it in. This allows reuse of coding and is much easier to
maintain and to add new filtering.
Tested:
LLNL Zeus (linux64 cluster) and Dawndev (Blue-Gene cluster), both for serial
mode only.
--This line, and those below, will be ignored--
M tools/misc/testh5mkgrp.sh
M tools/h5dump/testh5dump.sh.in
M tools/h5diff/testh5diff.sh
M tools/h5copy/testh5copy.sh
M tools/h5ls/testh5ls.sh.in
M MANIFEST
A bin/output_filter.sh
HDFFV-5928 - GMQS: h5diff problem and improvement on comparsing the same objects
Description:
Improved performance by eliminating duplicated action for getting object
information in half from the previous fixe when comparing group vs group.
This is addition to the previous commit r20676.
Tested:
jam (linux32-LE), koala (linux64-LE), heiwa (linuxppc64-BE), tejeda (mac32-LE), linew (solaris-BE), cmake
H5Dread() produces different output for invalid enum type values
on systems of different endiannes. On BE systems, it always
emits -1. On LE systems, the invalid value is emitted. This
difference caused the h5diff test to fail since it tests to
see if different invalid enum values are reported as different
(on BE systems they are not since -1 == -1).
This fix removes the "invalid vs. different invalid" test
while we fix the library bug. HDFFV-7527 will be reopened
in JIRA until the full test passes.
Tested on: jam, heiwa, linew
not represent a valid enum value.
Description:
The h5diff code compares enum values by converting them to strings and
then comparing them. When the enum value is out of range and can't be
converted to an enum string representation, the comparison was skipped.
The code now flags differences when one of the two enum values is out
of range (two out of range values are compared in memory). A test has
been added to the tools test script.
This fixes JIRA HDFFV-7527
Tested on: jam, koala, heiwa (h5committest)
removed option defines and #ifdef/#endif
refactored all printf to HDfprintf in h5dump.c
formatted and indention improvements
synched with 1.8 branch
Tested: local linux
Description:
When closing an object that had two open id's, the library would previously fail
to account for the status of the "holding_file" field, potentially causing the
file's "nopen_objs" field to become inconsistent. This caused problems when
opening the same object twice through an external link using th external file
cache. Modified the library to properly account for the status of the
"holding_file" field when closing an object id, even when the underlying
"shared" object isn't closed.
Tested: jam, koala, heiwa (h5committest)
- HDFFV-5928 - GMQS: h5diff problem and improvement on comparsing the same objects
Description:
Fixed:
1) adding h5tools_is_obj_same() function to check if two given IDs or paths point to the same object. This function can be very useful for other tools and applications.
2) using h5tools_is_obj_same() at h5diff() and diff() in h5diff.c. If two paths point to the same object, there is no need to check the details of the object since we know there is no difference. The fix will increase the performance by skipping the content comparison. It also fixed the problem of reporting difference for some cases of comparing the same file, e.g. empty files or files with incomparable objects the same file.
Test update:
Updat prvious test cases (171, 172, 530) affected by this fix, so they
still perfrom originally intended testing without bypassing.
Tested:
jam (linux32-LE), koala (linux64-LE), heiwa (linuxppc64-BE), tejeda (mac32-LE), linew (solaris-BE), cmake
Bring code contribution from John Biddiscombe into trunk, according to
IP assignment #002 (on file). Checkin message from John is:
This patch includes the changes necessary to compile a Virtual File
Driver outside of the main hdf5 build and still have it link against
the hdf5 core and work correctly at run-time.
Certain MPI-IO related VFD checks were hard-coded in the hdf5 source
and so it was not possible to extend the functionality to new drivers.
Removed IS_H5FD_MPI macros and replaced with H5F_HAS_FEATURE calls with
new keys, H5FD_FEAT_HAS_MPI and H5FD_FEAT_ALLOCATE_EARLY.
Change H5FD cleanup (term_interface) so that file drivers call
terminate when their class types are deleted instead of explicitly
being called from the finalization code. Move the terminate call out
of H5I and put it into the FD class_free call. Remove the now obsolete
check of handles after cleaning types at termination time.
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
FreeBSD/32 8.2 (loyalty) w/gcc4.6, w/C++ & FORTRAN, in debug mode
FreeBSD/64 8.2 (freedom) w/gcc4.6, w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (koala) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, w/threadsafe, in production mode
Linux/PPC 2.6 (heiwa) w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-ia64 2.6 (ember) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Teach the tracing script & routines about the 'unsigned long' and
'unsigned long long' types, so that the H5Pset_fapl_log() API routine gets
tracing information correct.
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
FreeBSD/32 8.2 (loyalty) w/gcc4.6, w/C++ & FORTRAN, in debug mode
FreeBSD/64 8.2 (freedom) w/gcc4.6, w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (koala) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, w/threadsafe, in production mode
Linux/PPC 2.6 (heiwa) w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.6 (amazon) in debug mode
Mac OS X/32 10.6.6 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
Mac OS X/32 10.6.6 (amazon) w/parallel, in debug mode
Switch from using 'pthread_create' to 'pthread_self' when trying to
detect the pthread library, so that the Intel C compiler is happier with the
prototype.
Tested on:
Linux/64 2.6 (koala) w/Intel C
(h5committested on duty, jam & linew)
Correct spelling error in macro. (FUNC_ENTER_NOAPI_NOFUNC_NOINIT ->
FUNC_ENTER_NOAPI_NOINIT_NOFUNC)
Tested on:
Eyeballed only.
(h5committest not required for this branch)
Small improvement to the core VFD's error reporting.
Update FreeBSD information
Tested on:
FreeBSD/32 8.2 (loyalty)
(too minor to require h5committest)
a check for empty attribute in h5dump.c. I also added a check for empty dataset in tools/lib/h5tools.c.
Tested on jam. But I tested the same changes in 1.8 on jam, linew, and amani.