bugzilla 1754: h5diff: support comparing through links.
(original check-in svn revision #18164)
Description:
fix the hang issue in parallel mode when compare external-link.
add --no-dangling-links option.
add test cases (#450-#459) relate to the new option.
improve test script to check exit code.
update --help relate to the new options.
correct some indentations.
Tested:
h5committest (jam, amani and linew)
Add a feature to compare through links. Relate to bugzilla report 1754.
Description:
Currently, h5diff command only compares the name(path) of target object
not the actual data. With this feature, h5diff will go through the link(s)
and figure out the actual object at the end of the link and compare data
if exist. Internally we have hard-link, soft-link, external-link (as part
of user_defined-link). This feature will provide a user transparent
experience when comparing link objects as the user can specify any of
those 3 type of links to be compared in any combination.
Tested on Jam.
" Use "--use-system-epsilon" for system EPSILON
" Use "-p" or "-d" for whatever user's choice of epsilon
" Use "-p 0" or "-d 0" for strict equality (same as default)
Remove another call to H5E_clear_stack() from within the library.
Clean up lots of compiler warnings.
Tested on:
Mac OS X/32 10.5.6 (amazon)
(followup on other platforms forthcoming)
-N, --nan Avoid NaNs detection
Note: there is no shell script run for datasets with NaN because the output is non portable (different results and NaN strings for different systems)
Tested: windows, linux
Remove trailing whitespace from C/C++ source files, with the following
script:
foreach f (*.[ch] *.cpp)
sed 's/[[:blank:]]*$//' $f > sed.out && mv sed.out $f
end
Tested on:
Mac OS X/32 10.5.5 (amazon)
No need for h5committest, just whitespace changes...
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
Tested platform:
Kagiso only since it is only a comment block change. If it works in one
machine, it should work in all, I hope. Still need to check the parallel
build on copper.
fixed warning
../../../hdf5/tools/h5diff/h5diff_common.c: In function `usage':
../../../hdf5/tools/h5diff/h5diff_common.c:346: warning: function might be possible candidate for attribute `noreturn'
Cleaned warnings
h5diff_array.c:804: warning: passing arg 1 of `fabs' as floating rather
than integer due to prototype
introduced double precision arithmetic when possible instead of single
precision
1) added a new parameter to the h5diff function diff_array that contains
the beginning position of the hyperslab, so that the total position in
the array is printed correctly when reading by hyperslabs.
2) added a new test to h5diff that reads and diffs by hyperslabs. The
test reads a 1GB dataset, from which a 1KB hyperslab was written with
differences .
3) added the generation of 2 files to the generator program to test the
h5diff hyperslab read.
4) changed the h5diff binary pre-generated file names to be more
descriptive (e.g, instead of file1.h5, made it h5diff_basic1.h5)
5) changed the name of the h5repack options text file to info.h5repack
Code cleanup
Description:
Trim trailing whitespace in Makefile.am and C/C++ source files to make
diffing changes easier.
Platforms tested:
None necessary, whitespace only change
bug fix
Description:
the percent error calculation in h5diff using double precision floating point were causing different results
on the release and debug versions of Visual Studio version 6, due to a compiler bug
Solution:
used single precision (float)
Platforms tested:
windows
linux
solaris
AIX
Misc. update:
bug fix
Description:
1) added a more explainative usage message
2) the percent relative error for the integer type (division) was being done using integer arythmetic; use floating point arythmetic instead
3) added a new test for integer percent
Solution:
Platforms tested:
linux (32,64)
AIX
solaris
Misc. update:
Code cleanup
Description:
Check in some of the code cleanups from working on the external link
support. (This doesn't include any of the external link features)
Platforms tested:
FreeBSD 4.11 (sleipnir)
Mac OSX.4 (amazon)
Linux 2.4
h5diff new feature
Description:
a user asked for the message
"Some objects are not comparable"
to be more noticeable
Solution:
--------------------------------
Some objects are not comparable
--------------------------------
Platforms tested:
linux
Misc. update:
Code cleanup
Description:
Trim trailing whitespace, which is making 'diff'ing the two branches
difficult.
Solution:
Ran this script in each directory:
foreach f (*.[ch] *.cpp)
sed 's/[[:blank:]]*$//' $f > sed.out && mv sed.out $f
end
Platforms tested:
FreeBSD 4.11 (sleipnir)
Too minor to require h5committest
Bug fix & code cleanup
Description:
Fix another bug in the file mounting code and refactor the unmount
code that it is simpler.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Linux 2.4
Too minor to require h5committest
Bug fix for parallel case for new "Some objects were not comparable" patch to h5diff.
Description:
The parallel h5diff wouldn't print out "Some objects were not comparable" because the worker
tasks were not communicating the not_cmp flag of the diff_opt_t struct back to the manager, who ultimately
prints everything.
Also, some miscellaneous fixes for error printing. Some errors were printed out with printf instead of fprintf(stderr,...).
In parallel environments, this can result in output getting lost.
Solution:
Had the worker tasks pass along the not_cmp flag to the manager when they sent along
the number of differences they found.
Platforms tested:
heping (pp), sol (pp)
Misc. update:
bug fix
Description:
when 2 objects were not comparable, the final print information for the non verbose mode printed "0 differences found"
Solution:
replaced instead with a Summary message that says
"Some objects were not comparable"
Platforms tested:
linux
solaris
Misc. update:
Bug fix
Description:
The GASS VFL driver header file was bringing in the <string.h> header file,
which several other source code modules needed also, but weren't including
explicitly themselves.
Solution:
Add includes for <string.h> to files which actually need them.
Platforms tested:
FreeBSD 4.11 (sleipnir) w/C++ as CC
Configuration not tested by h5committest...
bug fix/new feature.
Description:
(committing changes made by Leon.)
ph5diff now is a real program by itself. It has its
own main (ph5diff_main.c).
Codes common to h5diff and ph5diff are in h5diff_common.c.
Removed the hack that hide failures from testh5diff.sh.
Platforms tested:
heping(serial, pp), sol (pp), copper(pp).
Misc. update: