HDFFV-8107 testh5diff will fail if build/test in HDF5 source tree
Description:
This is sub-task for "HDFFV-8105 testh5diff.sh uses the wrong operator (-a) in an if statement."
From the HDFFV-8105's update, h5diff test failed if build&test is performed in HDF5 source tree because 'cp' try to copy test files to self dir.
It's addressed by skipping if cp's src dir and dest dir is same.
Also this applied for all other tools under src/tools dir.
No change to the CMakeLists.txt files because CMake cautions/demands that in-source builds be avoided.
Merged from HDF5 trunk r22617.
Tested:
jam (linux32-LE), koala (linux64-LE), ostrich (linuxppc64-BE), tejeda (mac32-LE), linew (solaris-BE), some manual tests as well
If a link is specified on the command with the -d option, call the handle_links function on error from the H5Dopen command.
Updated test file results with error stack when link not found.
Tested: trunk
Merge 1.8 and h5dump/tools and tests based on tools library from trunk.
Reduced warnings.
HDFFV-7949:
Remove duplicated functions in h5ls
Tested: local linux,h5committest
Add test case to unix test-script for "HDFFV-2567 - added test for be generated files with at least 9 attributes at root". It's committed previously as r21812 along with Cmake test.
Tested:
jam (linux32-LE), koala (linux64-LE), heiwa (linuxppc64-BE), tejeda (mac32-LE), linew (solaris-BE)
Replace contents of tnofilename.ddl with contents from tnofilename-with-packed-bits.ddl and use tnofilename.ddl in h5dump test scripts
Test local linux: cmake
Work for HDFFV-7602 - HDF5 command tools: Provide framework for reusable
test files among tools
Description:
Merged from HDF5 trunk r21057
Provide framework to share test files among tools for tools test.
Tested:
jam (linux32-LE), koala (linux64-LE), heiwa (linuxppc64-BE), tejeda (mac32-LE), linew (solaris-BE)
hdffv-7514 - GMQS: h5dump - improve effectiveness of testing scripts for handling expected output files
description:
Removed top 3 lines from expected output file and update testing scripts
accordingly. These lines started to become maintainence headaches.
First phase for h5dump test update. Next phase will be for h5ls.
this is prerequisite for 'hdffv-7602 tools - upgrade tools' test scripts to share test files among tools, providing framework for test file re-usability.'
Tested:
jam (linux32-LE), koala (linux64-LE), heiwa (linuxppc64-BE), tejeda (mac32-LE), linew (solaris-BE), cmake (jam)
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.
Fixed HDFFV-4342 : GMQS: h5dump test fails when source directory is read-only
Description:
Merged from HDF5 trunk r20488 and r20490.
Updated h5dump test case script to prevent entire test failure upon
source code directory is read-only.
Tested:
jam (linux32-LE), amani (linux64-LE), heiwa (linuxppc64-BE), tejeda (mac32-LE), linew (solaris-BE), Cmake (jam, windows)
Bug 2182 - h5ls and h5dump: update to use --enable-error-stack among tools, also update related descriptions
Description:
Merged from HDF5 trunk r20378 and r20379
Decided to use --enable-error-stack long option name only to
display error stack messages from HDF5 lib among tools.
Updated to unify option name to '--enable-error-stack' for printing
HDF5 error stack messages for HDF5 tools. h5ls and h5dump for now.
For h5ls, this replaces "-e/--errors" option, which is deprecated.
For h5dump, remove -E from help page and RM , which was added by mistake
before release1.8.7.
Help page and RM got updated.
Updated test case.
Tested:
jam (linux32-LE), amani (linux64-LE), heiwa (linuxppc64-BE), tejeda (mac32-LE), linew (solaris-BE)
Fixing Bug 2092 - h5dump does not display index for a dataset
Description:
Merged from HDF5 trunk r20108 and r20132.
h5dump skip displaying array indices every certain number when the
array type dataset is relatively big. The certain number varies
according to the size of each array.
This checkin fix the skipping array indices problem. This fix also
correct indentation of the dataset data output.
Tested:
jam (linux32-LE), amani (linux64-LE), heiwa (linuxppc64-BE), Cmake - jam
h5dump: add dangling external link test case as part of Chicago project.
Merged from hdf5 trunk r19971.
Tested:
jam (linux32-LE), amani (linux64-LE), heiwa (linuxppc64-BE), linew (solaris-BE)
Bring r19252 & 19253 from trunk to 1.8 branch:
Bring Coverity changes from branch to trunk:
r19161:
Fixed the part for matching the subset info with dataset
r19189:
BZ1646: h5dump does not check number of dimensions for subsetting parameters against the dataset
Changed subset_t structure from holding hsize_t pointers to holding new subset_d pointers, which hold the original hsize_t pointer + len. this len is then checked against dataset ndims in the handle_dataset function of h5dump.
Changed all references to use new data structure.
Added tests for each subset parameter.
r19190:
Added new h5dump ddl files
Tested on:
Mac OS X/32 10.6.4 (amazon) w/debug & production
(h5committested on Coverity branch)
Install packed-bits feature for h5dump.
tools/h5dump/h5dump.c:
Added lots of error checking into parse_mask_list() to catch and
flagged packed-bits argument errors. For now, the packed bits
are limited to 1 byte (8 bits) range.
tools/h5dump/testh5dump.sh.in
Added 10 new packed-bits test to verify normal operation and argument
error detection.
tools/lib/h5tools.h:
tools/lib/h5tools_str.c:
tools/lib/h5tools.c:
Only name changes of the packed-bit global variables to reflect
the nature of the variable better, IMO.
Tested: albertPax (linux)
------------------------------------------------------------------------
Install packed-bits feature for h5dump.
Allen has installed the feature in the NPOESS feature branch.
I ported it back to the v1.8 branch for v1.8.5 release.
tools/h5dump/testh5dump.sh.in:
Added tests for the packed-bits feature.
tools/h5dump/h5dump.c
tools/h5dump/h5dump.h
Added code to parse and handled the packed-bits request.
tools/lib/h5tools.h
tools/lib/h5tools_str.c
tools/lib/h5tools.c
Added code to print packed-bits.
tools/testfiles/tpackedbits2.ddl
tools/testfiles/tnofilename-with-packed-bits.ddl
tools/testfiles/tpackedbits.ddl
Expected output files for packed-bits feature.
Tested:
h5committested the NPOESS branch.
Tested in the linux VM machine in my Dove.
TOOLTEST file_space.ddl -B file_space.h5
by accident (copied from the trunk version).
Removed it.
Tested: jam. (skipped h5committest since it is
a trivial change of removing an action line.
The file_space.ddl and file_space.h5 do not exist
in this branch. (that was how I discovered my mistake.)
1. #1501 (B1) tools bug if dataset is larger than H5TOOLS_BUFSIZE limit.
ISSUE : the tools use the following formula to read by hyperslabs: hyperslab_size[i] = MIN( dim_size[i], H5TOOLS_BUFSIZE / datum_size) where H5TOOLS_BUFSIZE is a constant defined of 1024K. This is OK as long as the datum_size does not exceed 1024K, otherwise we have a hyperslab size of 0 (since 1024K/(greater than 1024K) = 0). This affects h5dump. h5repack, h5diff
SOLUTION: add a check for a 0 size and define as 1 if so.
TEST FOR H5DUMP: Defined a case in the h5dump test generator program of such a type (an array type of doubles with a large array dimension, that was the case the user reported). Since the written file commited in svn would be around 1024K, opted for not writing the data (the part of the code where the hyperslab is defined is executed, since h5dump always reads the files). Defined a macro WRITE_ARRAY to enable such writing if needed. Added a run on the h5dump shell script. Added 2 new files to svn: tools/testfiles/tarray8.ddl, tools/testfiles/tarray8.h5. NOTE: while doing this I thought of adding this dataset case to an existing file, but that would add the large array output to those files (the ddls). The issue is that the file list is increasing.
TEST FOR H5DIFF: for h5diff the check for reading by hyperslabs is H5TOOLS_MALLOCSIZE (128 * H5TOOLS_BUFSIZE) or 128 Mb. This makes it not possible to add such a file to svn, so used the same method as h5dump (only write the dataset if WRITE_ARRAY is defined). As opposed to h5dump, the hyperslab code is NOT executed when the dataset is empty (dataset is not read). Added the new dataset to existing files and shell run (tools/h5diff/testfiles/h5diff_dset1.h5 and tools/h5diff/testfiles/h5diff_dset2.h5 and output in tools/h5diff/testfiles/h5diff_80.txt).
TEST FOR H5REPACK: similar issue as h5diff with the difference that the hyperslab code is run. Added a run to the shell script (with a filter, otherwise the code uses H5Ocopy).
FURTHER ISSUES: the type in question ("double") has a different output cross platforms (e.g on liberty some garbage number is printed at some array locations)
SOLUTION: defined an "int" type for this test. However the printing of such an array has a bogus output at least in one platform (FreeBsd), so eliminated the test run altogether and filed a bug report on this
Introduced a new feature in the tools library regarding command line parsing
In the definition of arguments, an "*" means that the switch can or can not have an optional argument. This "*" is put in the code regarding the letter definition, and it is transparent to the user (e.g b* instead of the previous b: ), where ":" notes a required argument after the letter (and no ":" or "*" notes no argument, mandatory)
Used for the h5dump binary option -b
It can be now
1) -b (defaults to NATIVE)
2) - b NATIVE
3) - b FILE
4) -b LE
5) -b BE
Note: the keyword NATIVE replaces MEMORY
This feature (-b with no argument) was tested with the sequence of h5dump to binary (NATIVE) then h5import to generate an HDF5 file from the binary file and h5diff to compare the 2 HDF5 files
Tested: windows, linux